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

语句

块语句 block

用一对花括号定义安全

js没有块级做用域函数

声明语句

常见错误
code

try catch语句

try后面必须接一个cathfinally语句

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

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

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

for in语句

坑比较多
blog

with语句

不建议使用
ip

严格模式

严格模式是一种特殊的执行模式,它修复了部分语言上的不足(禁用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做用域。it

相关文章
相关标签/搜索