用一对花括号定义安全
js没有块级做用域函数
常见错误
code
try
后面必须接一个cath
或finally
语句
发生嵌套时的执行顺序:
红框内部没有catch
,因此会跳到最近的catch
去处理,即外部的catch
异常已经在内部处理,就再也不抛到外部了
cath
再抛异常,内部异常没有处理,抛给外面,外面处理以前,要先执行里面的finally
语句
对象
坑比较多
blog
不建议使用
ip
严格模式是一种特殊的执行模式,它修复了部分语言上的不足(禁用with),向上兼容(有利于编写高质量,健壮性的代码),提供更强的错误检查,并加强安全性(在eval中使用了独立的做用域).作用域
- 非严格模式下,agm[0]和参数a相互绑定,可是当不传参数时,a的值为undefined,此时若修改了agm[0]的值,a仍然是undefined!!!
- 严格模式下,agm和形参无任何关系
- 严格模式下,若是传入的参数是对象,因为js的call by share,修改对象属性时,会相互影响
Javascript语言的一个特色,就是容许"动态绑定",即某些属性和方法到底属于哪个对象,不是在编译时肯定的,而是在运行时(runtime)肯定的。
严格模式对动态绑定作了一些限制。某些状况下,只容许静态绑定。也就是说,属性和方法到底归属哪一个对象,在编译阶段就肯定。这样作有利于编译效率的提升,也使得代码更容易阅读,更少出现意外。好比禁止使用with语句,创设eval做用域。it