JavaScript语句

JavaScript语句是JS解释器能够解释执行的代码单元,一般用分号分割。有副作用的表达式可以加上分号而构成一个语句。

1、最简单的语句就是能产生副作用的表达式,如:赋值表达式(=,+=等等),自增自减表达式(++,--),加上分号,一般都可以作为语句。

如:i++;i=7;是合法有效的表达式,但是没有副作用的表达式不成为一个语句,如3+5;

2、delete操作符有副作用,也可作为语句,如delete obj.x;

3、函数调用,也可以作为语句。如:alert("hello");window.close();这些客户端函数,可以对客户端产生副作用。没有副作用的函数调用,一般没必要作为语句使用,如Math.cos(12);//没用的语句。

4、复合语句,用{}包含的语句,可以作为单个语句使用,可以使用在任何需要使用单个语句的地方。复合语句的大括号后面不需要分号结束。

5、空语句,单独的一个分号,表示一个空语句。在需要单个语句的地方可以使用。例子:for(var i=0;i<arr.length;arr[i++]=0) ;//初始化一个数组。

6、声明和定义语句,用来声明一个变量,或者定义一个函数。var i;function aa(x){return x*x;}

7、条件,循环,跳转语句:if/else,while,for,for/in,do while,continue,break,label,switch/case,default

8、return语句,throw语句,try/catch/finnally语句

9、三个其他的语句:with语句,debugger语句,use strict语句

1)with语句,作用类似vb中的with,应尽量避免使用。语法with(exp){statement;}

2)debugger;//该语句调试使用,JavaScript解释器执行到该语句的时候,会暂停。

3)"use strict";//确切说不是语句,而是指令。表示使用javaScript代码使用严格模式,该指令可以放在全局代码最前面,或者一个函数体的最前面,分别表示所有代码或者当前函数的代码使用的是严格模式。

严格模式和非严格模式有很多区别(其中最重要的是前面三点):

a.严格模式下,with语句是不允许的。

b.严格模式下,所有变量必须声明。(否则抛出ReferenceError)

c.严格模式下,函数以函数的方式调用的时候(不是以对象的方法调用),this表示的值为undefined,但是在非严格模式下,this表示的是global对象。因此判断代码是否是严格模式可以使用如下方法:

  var hasStrictMode = (function(){"use strict";return this===undefined;}());

d.严格模式下,给你一个不可写的属性赋值,或者给你个不可扩展的对象新建属性,抛出TypeError

e.严格模式下,在eval()里定义的变量和函数的作用范围,在eval结束是,也就消失了。

还有许多其他的区别,不列举了。

 

posted on 2013-09-26 14:05  leungrs  阅读(217)  评论(0编辑  收藏  举报