JavaScript语句
2016-05-09 07:21
525 查看
声明语句(var, function)
var和function都是声明语句,分明声明变量和函数。注意,多次声明同一个变量是无所谓的。
使用var的话,只有变量声明提前了—变量的初始化代码依然在原来的位置。
然而使用function的话,函数名称和函数体均提前:脚本中的所有函数和嵌套函数都会提前声明,也就是说,可以在函数声明之前调用它。
和var语句一样,function声明语句创建的变量也是无法删除的。但是这些变量不是只读的,变量值可以重写。
条件语句
case
对每个case的匹配操作使用”===”恒等运算符比较,而不是”==”相等运算符,因此,表达式和case的匹配并不会做任何类型转换。循环
for/in
for/in循环是用来更方便地遍历对象属性成员:for(var p in o) console.log(o[p])
在执行for/in语句时,JavaScript解释器首先计算object表达式。
如果表达式为null或undefined,JavaScript解释器将会跳出循环并执行后续的代码。
如果表达式是一个原始值,这个原始值将会转换为对应的包装对象(wrapper object)。
如果表达式是对象,则依次枚举对象的属性来执行循环。
需要注意的是,只要for/in的左值可以是可赋值的任意表达式:
var o = { x:1, y:2, z:3 }; var a = [], i = 0; for(a[i++] in o) // 使用数组元素做左值 ...
for/in并不会遍历对象的所有属性,只有”可枚举”(enumerable)的属性才会遍历到。
如果for/in的循环删除了还未枚举的属性,那么这个属性不会被枚举到。如果循环体定义了对象的新属性,这些属性也不会被枚举到。
枚举的顺序:主流浏览器都按【先定义的属性先枚举】进行枚举。
跳转
try/catch/finally
当由于return、continue或break语句跳出try语句块时,解释器在执行新的目标代码之前会先执行finally块中的逻辑。如果finally块使用了return、continue、break或者throw语句时,不管是使用程序挂起还是继续执行,解释器都会将其忽略。例如,如果finally抛出一个异常,这个异常将替代正在抛出的异常。如果finally运行到了return语句,尽管已经抛出了异常且这个异常还没有处理,这个方法依然会正常返回。
其他语句
with语句
with (object) statement
这条语句将object添加到作用域链(scope chain)的头部,然后执行statement,最后反作用域链恢复到原始状态。
只有在查找标识符时才会用到作用域链,创建新的变量的时候不会使用,比如:
with(o) x = 1;
如果对象o有一个属性x,那么这行代码给这个属性赋值为1。
如果对象o没有属性x,它给一个局部变量或全局变量x赋值,或者创建全局对象的一个新属性。
with语句只是提供了一个读取属性的快捷方式,并不能创建属性。
with语句的缺点:
在严格模式中是禁止使用with语句的,使用with语句的代码非常难于优化,并且同没有使用with语句的代码相比,它运行得更慢。
debugger语句
在调试模式下,这条语句用来产生一个断点。“use strict”
它只能出现在脚本代码的开始或者函数体的开始、任何实体语句之前。告诉JavaScript解释器使用严格模式。相关文章推荐
- Android Native 绘图方法
- Ruby中case表达式详解
- Cross-Browser Variable Opacity with PNG
- SQL Injection with MySQL 注入分析
- mysql中IFNULL,IF,CASE的区别介绍
- javascript 面向对象编程 function是方法(函数)
- javascript 面向对象编程 function也是类
- ASP.NET MVC @Helper辅助方法和@functons自定义函数的使用方法
- IIS下PHP连接数据库提示mysql undefined function mysql_connect()
- 浅谈Javascript中Object与Function对象
- JavaScript通过function定义对象并给对象添加toString()方法实例分析
- JavaScript中变量声明有var和没var的区别示例介绍
- IE 当eval遇上function的处理
- JavaScript中Object和Function的关系小结
- Javascript 使用function定义构造函数
- 浅谈JavaScript中定义变量时有无var声明的区别
- JavaScript声明变量时为什么要加var关键字
- javascript Object与Function使用
- JavaScript中的Function函数
- Dynamic和Var的区别及dynamic使用详解