-
Notifications
You must be signed in to change notification settings - Fork 0
第五章:语句
####**1.**表达式计算出一个值,但语句用来执行以使某件事发生
####**2.**javascript中没有块级作用域,在语句块中声明的变量并不是语句块私有的
####**3.**空语句也是一条语句
javascript需要循环体中至少包含一条语句
例:初始化数组
var a = new Array(6);
for(var i=0; i<a.length; a[i++]=0);
####**4.**函数定义的不同写法
-
函数声明语句
例:在函数声明前可调用,即整体声明提前 function f(){console.log("mlx");}
-
函数定义表达式
例:var f = function(x){ console.log(x);} 变量f的声明提前,但值未初始化,因此得先给f初始化,然后才能使用。 类似变量声明提前,初始化未提前。
####**5.**函数声明语句创建的变量也是无法删除的,但是这些变量不是只读的,变量值可以重写。
####6.else
总是和就近的if
语句匹配
####7.return
和break
都可用于终止switch的case
####8.do/while
循环以分号;
结尾
####9.for循环
中三个表达式的任何一个都可以忽略,但分号不能省
####10.for/in
循环并不会遍历对象的所有属性,只有‘可枚举’的才能遍历到
####11.for/in
循环是用来更方便地遍历对象的属性
例:
for(var p in o){ //将对象o的属性名赋值给变量p
console.log(o[p]); //输出属性值
}
//将对象ob的所有属性复制至一个数组a
var ob = {x:1, y:2};
var a = [], i = 0;
for(a[i++] in ob); //a的结果是["x","y"]
数组是特殊的对象其属性名就是数组的索引下标 即 0,1,2……
####12.break
和continue
是javascript中唯一可以使用语句标签的语句
####**13.**当break
后面有label时,程序将跳转到这个标签所标识的语句块的结束位置。
####14.break
可以跳出任何闭合的语句块,比如退出循环
####**15.**不管break
语句带不带标签,它的控制权都无法越过函数的边界,即不能从函数内部通过标签跳转至函数外部。
####**16.**不管continue
语句带不带标签,它只能在循环体内使用。在其他地方使用将会报语法错误。
####**17.**javascript的catch
中参数e的作用域是块级的,即只在catch
的语句块中是有定义的
####**18.**严格模式与非严格模式区别之重要三条
- 严格模式禁用
with
- 严格模式所有变量均须先声明后使用
- 严格模式,调用的函数中的
this
值是undefined
by @zhulinpinyu 👍