JS 高级程序设计 第三章

一、标识符:数据结构

     标识符,是指变量、函数、属性的名字,或者函数的参数。函数

     标识符的命名规则: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值。

相关文章
相关标签/搜索