首页 > 代码库 > js之语句的一些需要注意的事情

js之语句的一些需要注意的事情

1.delete运算符是用来删除一个对象的 属性,但有一点需要注意:使用var声明的变量虽为全局变量,单不是全局对象的属性,不可以用delete删除,而为用var直接声明的全局变量为全局对象的属性,是可以用delete删除的;

2.用{}括起来形成语句块,

    (1)语句块的结尾不需要分号,但语句块中的原始语句必须以分号结尾

  注意:定义一个对象是需要;结尾的 

var obj = {x: 1, y: 2, z: 3};

 

    (2)js中没有块级作用域,所以在语句块中声明的变量并不是语句块私有的

  注意:函数声明的{}为块级作用域,在其中用var声明的变量为该函数{}内私有的

    

    {          var a = 10;       }      console.log(a); // 10

 

  

   function ret() {        var a = 10;    }    ret();    console.log(a); // a is not defined

 

 3.善用空循环,有时妙用空循环是很好用的

  

var arr = new Array(7);    var len = arr.length;    for(var i = 0; i < len; arr[i++] = 0);    console.log(arr); //[0, 0, 0, 0, 0, 0, 0]

 

 

4.switch 中的case匹配操作是‘===‘比较,而不是‘==‘比较,所以case匹配不会做任何类型转换

5.for-in 循环用来遍历对象的属性

   for(var prop in obj) {} 

  在for-in语句中 ,js解释器会先计算obj,如果obj为null或者undefined,js解释器 会跳过循环并执行后续代码;如果表达式为一个原始值,这个原始值将被转换为与之对应的包装对象;如果obj为对象,js解释器会依次枚举对象的属性来执行循环,注意:每次循环之前,js会首先计算prop的值,将obj当前遍历的属性名赋值给prop

var obj = {x: 1, y: 2, z: 3};    var arr = [], i = 0;    for (arr[i++] in obj);    console.log(arr); // ["x", "y", "z"]

 

js之语句的一些需要注意的事情