一、标识符:数据结构
标识符,是指变量、函数、属性的名字,或者函数的参数。函数
标识符的命名规则:spa
(1)第一个字符必须是字母、下划线或者美圆符号对象
(2)其余字符能够是字母、下划线、美圆符号和数字。ip
修改变量值的同时能够修改值的类型作用域
二、用var操做符定义的变量将成为定义该变量的做用域中的局部变量,省略var将创建一个全局变量。字符串
三、ECMAScript中有五种简单的数据类型:Undefined、Null、Boolean、Number、String,还有一种复杂的数据结构-Object,它的本质是一组由无序の 名值对组成it
四、typeof是一个操做符而不是函数后台
五、Number类型的八进制的字面值的第一位必须是零,可是八进制在严格模式下是无效的。浮点数的最高精度是17位小数。变量
六、ECMAScript可以表示的最小的数值保存在Number.MIN_VALUE中,最大的数值保存在Number.MAX_VALUE中,要肯定一个数值是否是又穷的,可使用isFinite()
七、任何涉及NaN的操做都会返回NaN;NaN与任何值都不想等,包括NaN自己。
isNaN()函数:
alert(isNaN(NaN)) //true
alert(isNaN(10)) //false
alert(isNaN("10")) //false
alert(isNaN("blue")) //true
alert(isNaN("true")) //false
八、数值转换:三个函数能够将非数值转换为数值:Number(),parseInt()、parseFloat(),其中Number()能够用于任何数据类型,而另外两个函数专门用于把字符串转换为数值。
九、parseInt()已经不具有解析八进制的能力,所以“070”前导的零会被认为是无效的,从而将这个值当作“70”,结果获得十进制的"70"。
十、parseFloat()函数是从第一个字符开始解析每一个字符,并且也是一直解析到字符串末尾,或者解析到碰见一个无效的浮点数字字符为止。,字符串的第一个字符是有效的,而第二个字符是无效的。parseFloat()只解析十进制数。
十一、把一个值转换为一个字符串有两种方式:(1)几乎全部值都有的toString()方法,可是NULL和Undefined没有这个方法,这个函数的括号内能够有一个参数,即:输出数值的基数;(2)在不知道要转换的值是null或者undefined的状况下,还可使用转换类型函数String().
十二、Object类型,对象其实就是一组数据与功能的集合。建立对象:var o=new Object();
1三、位操做符:按位非(~);取返回数值的反码。按位或(|),按位异或(^);左移(<<);有符号的右移(>>);无符号的右移(>>>)
1四、加性操做符:若是一个操做数是字符串,那么就要应用如下的规则:
(1)若是两个操做数都是字符串则将两个操做数链接起来。
(2)若是只有一个操做数的字符串,将另外一个操做数转换为字符串,而后在拼接。
1五、减法操做符:
若是有一个操做数是字符串、布尔值或者null或者undefined,则先在后台调用Number()函数将其转换为数值,而后再根据前面的规则进行减法运算。
若是一个操做数是对象,则调用对象的valueOf()方法取得表示该对象的数值,若是值为NaN,则减法的结果是NaN.若是对象没有valueOf()方法,则调用toString()方法并将获得的字符串转换为数值。
1六、相等和不相等--先转换后比较。 全等和不全等-------仅做比较而不转换
相等和不相等这两个操做符比较时应该遵循的原则:
(1)null和undefined是相等的
(2)要比较相等性以前,不能将null和undefined1转换为任何其余值
(3)若是有一个操做符为NaN,则相等运算符返回false,不相等运算符返回true。NaN不等于NaN
(4)若是两个操做数都是对象,则比较他们是否是都是同一个对象。
1七、注意:null==undefined会返回true,由于它们是相似的值;可是null===undefined会返回false,由于它们是不一样类型的值。
1八、若是表示要迭代的独享的变量值为null或者undefined,for-in语句会抛出错误。,因此要在使用for-in循环前,先检测确认该对象的数值是否是null或者undefined。
1九、switch语句在比较的时候使用的是全等操做符,所以不会发生类型转换(例如字符串"10"不等于数值10)
20、arguments对象的length属性能够获取有多少个参数传递给了函数,arguments对象能够与命名参数一块儿使用。
2一、arguments对象的长度是由传入的参数的个数决定的,不是由定义函数时的命名参数的个数决定的,没有传递值的命名参数将自动被赋予undefined值。