Javascript严格模式禁用了带语句的原因

看了很多次javascript严格的模式,这禁用了跟语句说的,看到过这是骑着花,路过,因为平时我们很少用这个语句,禁止与他们的关系不是很大。

ECMAscript规范说的语句是用来在一个特定的对象集合的代码的范围,而且可以看出,语句变化范围链。


功能人(姓名,年龄,性别){
this.name =名称;
this.age =年龄;
this.sex =性;
}
(函数(){())
var =申请人:;
VaR zhangsan =新的人('zhang三,20,男);
var=;
与(zhangsan){
头衔=姓名+年龄,年龄+ +,+性别+ +,+工作职位;
}
console.log(STR);
});




上面的代码将报告错误referenceerror:工作没有定义。

如果上面的语句块更改为

STR =标题+姓名+,zhangsan。年龄+年龄+ ','权限。权限性+ + +,,+ zhangsan.job位置;

输出STR为:申请人:张三,20岁,男,职位未定义。

在语句块的变量,属性是在权限检查在执行时。

我们知道,在运行脚本时,首先需要两个进程,然后执行。

很显然,在编译的时候,它是不可能确定哪些属性的对象,Zhangsan的变量所表示的。只有当执行可以确定张三是人的一个实例。所以这是不正确的,在语句块不在前变量作用域链的zhangsan或变量的属性变量。

编译时检查是否有一个变量定义的冲突和严格的模式,所以严格的模式不会允许外星人的存在,所以严格的模式禁用语句,这并不难理解。