Skip to content
Lixiang Mu edited this page Feb 10, 2014 · 3 revisions

javascript语句语法

####**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.returnbreak都可用于终止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.breakcontinue是javascript中唯一可以使用语句标签的语句

####**13.**当break后面有label时,程序将跳转到这个标签所标识的语句块的结束位置。

####14.break可以跳出任何闭合的语句块,比如退出循环

####**15.**不管break语句带不带标签,它的控制权都无法越过函数的边界,即不能从函数内部通过标签跳转至函数外部。

####**16.**不管continue语句带不带标签,它只能在循环体内使用。在其他地方使用将会报语法错误。

####**17.**javascript的catch中参数e的作用域是块级的,即只在catch的语句块中是有定义的

####**18.**严格模式与非严格模式区别之重要三条

  • 严格模式禁用with
  • 严格模式所有变量均须先声明后使用
  • 严格模式,调用的函数中的this值是undefined