js基础-2

###使用变量名的注意事项

####关键字(reserved word)

在 JavaScript 中已经定义过的字,使用者不能再将这些字作为变量名使用

>>>![](images/identifier_04.bmp)
>
>另外,还有三个词虽然不是保留字,但是因为具有特别含义,也不应该用作标识符:Infinity、NaN、undefined。

###变量提升
----
js运行时候会把所有变量收集,并放在js开头位置。(函数也会提升)
### 标识符
标识符是用来识别具体对象的一个名称。最常见的标识符就是变量名,
以及后面要提到的函数名。JavaScript语言的标识符对大小写敏感,所以a和A是两个不同的标识符。

>标识符有一套命名规则,不符合规则的就是非法标识符。JavaScript引擎遇到非法标识符,就会报错。
>>命名规范:
>- 第一个字符可以是任意Unicode(万国码)字母,以及美元符号($)和下划线(_)。
>- 第二个字符及后面的字符,还可以用数字。

>>中文是合法的标识符,可以用作变量名(这种方式**不推荐**)

###常量 es6

常量就是在程序运行中,不会被改变的量

例:
const PI=3.14;

1,常量是块级作用域,作用域和let一样。
2,不能重新来赋值,也不能被重新定义,会直接报错!
3,在创建时候,常量需要被初始化,也就是赋值,否则会报错!
4,一个常量不能和它所在作用域内的其他变量或函数拥有相同的名称
5,值可以是任何类型,但无法重新赋值。对象属性不在保护范围内
6,没有强制规范命名,为了和变量区分,全部大写。
兼容性:ie 11 谷歌21

###类型之间的转换
####隐式转换

1,当不同数据类型进行相互运算的时候,
2,当对非布尔类型的数据求布尔值的时候

预期为数字的时候:
算术运算的时候,我们的结果 和 运算的数都是数字,数据会转换为数字进行计算(- * / %)

| 类型 | 转换前 | 转换后 |
| ------------- |:-------------:| -----:|
| number | 4 | 4 |
---------------------------------------
| | ‘1‘ | 1 |
| string | ‘abc‘ | NaN |
| | ‘‘ | 0 |
---------------------------------------
| boolean | true | 1 |
| boolean | false | 0 |
---------------------------------------
| undefined | undefined | NaN |
| null | null | 0 |

预期为字符串的时候:

转为字符串 使用+号时候,会自动转换为字符串

预期为布尔的时候:

转换为布尔值,undefined null ‘‘ 0 NaN -->false 其余为 true

####强制类型转换
转换为数值Number(),parseInt(),parseFloat()转换函数

Number 在进行转换时候,遇到不能转换为数值的,就返回数值NaN;能返回浮点数 整体进行转换
parseInt()在进行转换时候,遇到不能转换为数值的,就返回能转换的正整数 单独转换
parseFloat() 能返回浮点数 单独转换 只能解析第一个小数点

前者把值转换成整数,后者把值转换成浮点数。
String类型调用这些方法,这两个函数才能正确运行;如果遇到非数字,返回NaN Not a Number

小技巧:
转换字符串 a=""+数据
转换boolean !!数据类型
转换数值 数据类型*或/1;容易误解

###JavaScript的运算符
- 算术运算
![](images/ys.png)
> - 加法运算符(Addition):x + y
> - 减法运算符(Subtraction): x y
> - 乘法运算符(Multiplication): x * y
> - 除法运算符(Division):x / y
>
> - 余数运算符(Remainder):x % y
> - 自增运算符(Increment):++x 或者 x++
> - 自减运算符(Decrement):--x 或者 x--
> - 求负运算符(Negate):-x

- 赋值运算

- 比较运算
字符编码:计算机里所有的数字,字母和其他符号都有编号。这有利于数据化传输 charCodeAt()
如果是是多个字符,会逐个比较。(字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数)

- 逻辑运算

逻辑非,可以用于任何值。首先会转换为值为布尔值,再取反(也叫取反运算符)
预期为布尔值:undefined null ‘‘ 0 NaN -->false 其余为 true

逻辑与,有两个以上操作数,判断里面两个是否都会返回true

逻辑或,两个以上操作数,判断里面两个是否有一个返回true

逻辑与,逻辑非 也称为短路运算符。
例:
var b_flag=true;
var b_flag2=b_flag&& a;
console.log(b_flag2);

var b_flag=false;
var b_flag2=b_flag&& a;
console.log(b_flag2);

- 条件运算

? :

###运算符的优先级
----
| 优先级 | 运算类型 | 运算符使用 |
19 圆括号 ()
18 new 成员访问 数组访问 . []
17 函数调用 fn
16 后置递增和递减 ++ --
15 逻辑非,前置递增递减 typeof ! ++ --
14 乘除取余 *\%
13 加减 + -
11 大于小于等于 <>=
10 等于全等于不等于不全等 == === != !==
6 逻辑与 &&
5 逻辑或 ||
4 三元运算 ?:
3 赋值 =

1,善于使用括号运算符
2,记住运算符的优先级

赋值运算很低,先计算右边表达式,再赋值给左边
###程序顺序执行结构
----

顺序结构的程序是严格按照程序中代码的先后执行的;如果有选择结构,就会根据具体条件
执行相应的代码。循环结构中也会有条件判断,会根据不同的情况执行不同的代码的。有的
还有交互技术,会根据使用者的要求或是外界的情况作出响应的。

时间: 2025-01-15 13:14:56

js基础-2的相关文章

【 js 基础 】Javascript “继承”

是时候写一写 "继承"了,为什么加引号,因为当你阅读完这篇文章,你会知道,说是 继承 其实是不准确的. 一.类1.传统的面向类的语言中的类:类/继承 描述了一种代码的组织结构形式.举个例子:"汽车"可以被看作是"交通工具"的一种特例.我们可以定义一个 Vehicle 类和一个 Car 类来对这种关系进行描述.Vehicle 的定义可能包含引擎.载人能力等,也就是 所有交通工具,比如飞机.火车和汽车等都有的通用的功能描述.在对 Car 类进行定义的

js基础--javascript基础概念之语法

掌握一门语言 必须先掌握它的语法! javascript 的语法和C.Java.Perl 的语法有些相似.但是比它们更加宽松. javascript 中的一切都是严格区分大小写的.例如变量: demo 和 Demo 两个变量是完全不同的. javascript 标示符,所谓标示符 是指 变量.函数.属性 的名字或函数的参数.标示符的格式是按照以下规则组合的一个或多个字符. 1.第一个字符必须是字母,下划线,或 $ 符号. 2.其他字符可以是字母.下划线.$ . 或数字. 注意 不能把关键字 保留

js基础知识总结(2016.11.1)

js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避免全局变量和方法(命名空间,闭包,面向对象),模块化(seaJs,requireJs) 常用内部类:Data Array Math String HTML属性,CSS属性HTML:属性.HTML属性="值":CSS:对象.style.CSS属性="值"; class和f

JS基础(超级简单)

1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)        string 3)        boolean 4)        null 5)        undefined 1.1.2   复杂类型 object:date,array,function 1.2 变量 var 变量名=值 变量的作用域:1.全局:以页面为单位.2局部:以函数为单位.

js基础--javascript基础概念之数组(二)

js基础--javascript基础概念之数组 数组栈方法 数组可以像栈一样.栈是一种先进后出的数据结构,最先添加的数据最后一个出来.栈方法添加数据也称为 推入  移除数据称为 弹出. js为数值栈方法提供了 push()   和  pop() ;  两个方法. push() push() 方法接受参数就是你要添加进入到数组的值.push()  方法会将他们逐一添加到数组的末尾  数组的length属性会跟着更新数据. *push(多个数组元素值) 返回的修改后的数组长度 var array =

js基础--javascript基础概念之数组

js基础--javascript基础概念之数组 在ECMAScript 中 ,数组是很常用的数据类型,js中的数组和其他很多语言的数组有明显的区别.js的数组可以保持任何类型的数值,一个数组中可以保存着多个不同类型的数值.js数组大小(长度)是可以调整的.可以随着数据的添加自动增长数组长度. 创建数组: 一.数组字面量 数组字面量由一对包含数组项的方括号[]表示. var array = [ 'kin', 'cheong', 'change', 'hello', 'haha', 'hi' ];

js基础--javascript基础概念之语句(二)

js基础--javascript基础概念之语句(二)label,break,continue.. break .  continue 语句. break  continue 语句用于在循环中精确控制代码的执行,其中break语句会立即退出循环,执行循环后面的语句. continue 则退出循环后返回到再次进入循环中. 如: var num = 0; for(var i = 0; i<=100; i++){ if(i >= 10){ break; } num = i; } alert(num);

JS基础知识回顾:引用类型(一)

在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起,而对象时引用类型的一个实例. 尽管ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构,所以虽然说引用类型与类看起来想死,但他们并不是相同的概念. 不过引用类型有的时候也可以被称为对象定义,因为他们描述的是一类对象所具有的属性和方法. 新对象是使用new操作符后跟一个构造函数来实现的,构造函数本身就是一个函数,只不过该函数时处于创建新对象的目的而定义的. ECMASc

JS基础(一)

01-JS中的变量和输入输出 一.[使用JS的三种方式] 1.在html标签中直接内嵌js.(不提倡使用,不符合w3c关于内容与行为分离的要求) 2.在html页面中使用<script></script>包裹js代码.(Script标签可以放到页面的任何位置) <script type="text/javascript"> js代码 </script> 3.引入外部的js文件,使用script标签 <script type=&quo

js基础知识点收集

js基础知识点收集 js常用基本类型 function show(x) { console.log(typeof(x)); // undefined console.log(typeof(10)); // number console.log(typeof('abc')); // string console.log(typeof(true)); // boolean console.log(typeof([])); // object console.log(typeof(function (