严格模式
严格模式是为JS定义了一种不通的解析与执行模型,要在整个脚本中启用严格模式,可以在定不添加如下代码:
“use strict”
也可以指定特定的函数在严格模式下执行:function dosomething(){ "use strict"; //函数体 }
关键词与保留字(P21)
使用var操作符定义变量(P22)
使用var操作符定义的变量将成为定义该变量的作用域的局部变量;省略了var,被定义的变量将变成全局变量(不推荐这样定义全局变量)
typeof是操作符,不是函数,所欲使用时后面的括号不是必须的(P24)
对未初始化和未声明的变量执行typeof操作符都返回undefind值(P25)
养成显式的初始化变量的习惯后,当使用typeof操作符返回“undefined”时,就知道相应的变量是没有声明,而不是尚未初始化了
转型函数Boolean()可以将所有的类型的值转换为布尔值(P26)
数值范围(29)
数值有一定的范围太大或者太小,数值的类型将转换为Infinity值,而不能参与计算;想确定一个数值是不是有穷的可以使用isFinite()函数
数值转换(P30)
把非数值转换为数值的函数有Number()、parseInt()和parseFloat();Number()函数在转换字符串时比较复杂而且不够合理,因此在处理整数的时候通常使用parseInt()函数。
字符字面量(转义序列)(P33)
- toString()可以其他数值转换为字符串(P34)
- object类型每个实例都具有的属性和方法(P35)
- 一元加操作符可以便捷的将不同数据类型转换为数值(P38)
两个逻辑非操作符可以便捷的将一个值转换为与之对应的布尔值,与Boolean()转型函数的作用一样(P44)
label语句
label语句用于给代码添加标签,下面是label的具体用法
var num = 0; for (var i = 0 ; i < 10 ; i++){ for (var j = 0 ; j < 10 ; j++){ if( i == 5 && j == 5 ){ break; } num++; } } alert(num); // 循环在 i 为5,j 为5的时候跳出 j循环,但会继续执行 i 循环,输出 95 对比使用了 Label 之后的程序:(添加 Label 后) var num = 0; outPoint: for (var i = 0 ; i < 10 ; i++){ for (var j = 0 ; j < 10 ; j++){ if( i == 5 && j == 5 ){ break outPoint; } num++; } } alert(num); // 循环在 i 为5,j 为5的时候跳出双循环,返回到outPoint层继续执行,输出 55
大量使用with语句会导致性能下降,同时给代码的调试也带来了困难,所有不建议在大型程序中使用with语句(P60)
JS高级程序设计3-基本概念
最新推荐文章于 2024-01-09 22:20:31 发布