学习js笔记(第3章-语句和严格模式)

语句##

块语句 block###

用一对花括号定义

js没有块级作用域

声明语句###

常见错误

try catch语句###

try后面必须接一个cathfinally语句

发生嵌套时的执行顺序:
红框内部没有catch,所以会跳到最近的catch去处理,即外部的catch

异常已经在内部处理,就不再抛到外部了

cath再抛异常,内部异常没有处理,抛给外面,外面处理之前,要先执行里面的finally语句

for in语句###

坑比较多

with语句###

不建议使用

严格模式##

严格模式是一种特殊的执行模式,它修复了部分语言上的不足(禁用with),向上兼容(有利于编写高质量,健壮性的代码),提供更强的错误检查,并增强安全性(在eval中使用了独立的作用域).

不允许用with语句###

不允许未声明的变量被赋值###

arguments变为参数的静态副本###

  1. 非严格模式下,agm[0]和参数a相互绑定,但是当不传参数时,a的值为undefined,此时若修改了agm[0]的值,a仍然是undefined!!!
  2. 严格模式下,agm和形参无任何关系
  3. 严格模式下,如果传入的参数是对象,由于js的call by share,修改对象属性时,会相互影响

delete参数、函数名报语法错###

dele不可配置的属性报错###

对象字面量重复属性名报语法错误###

禁止八进制字面量###

eval,arguments变为关键字,不能作为变量,函数名###

eval变成了独立作用域###

其余情况###

静态绑定##

Javascript语言的一个特点,就是允许"动态绑定",即某些属性和方法到底属于哪一个对象,不是在编译时确定的,而是在运行时(runtime)确定的。
严格模式对动态绑定做了一些限制。某些情况下,只允许静态绑定。也就是说,属性和方法到底归属哪个对象,在编译阶段就确定。这样做有利于编译效率的提高,也使得代码更容易阅读,更少出现意外。比如禁止使用with语句,创设eval作用域。

posted @ 2017-04-23 12:56  戈多的等待  阅读(206)  评论(0编辑  收藏  举报