JS严格模式

Strict Mode严格模式

1.不是用var声明的变量,在严格模式下不被通过
2.带有"eval"的操作都被禁止

<script>
"use strict"  -------全局

globalVal=100; -------------会报错
var globalVal=100; ---------不会
var eval=100;
console.log("eval",eval) ------报错
function fun(){
    "use strict"  -------局部
}
3.创建了eval作用域
-------------------------
"use strict" 
var a=100;
eval("var a=200;console.log(a)")
console.log(a)
OUTPUT:200  200
-------------------------
//"use strict" 
var a=100;
eval("var a=200;console.log(a)")
console.log(a)
OUTPUT:200  100
---------------------------
4、with的禁用
var obj={a:1,b:2}
obj.a=11
obj.b=22
console.log(obj)
with(obj){
    a=111
    b=222
}
---------------------------
5.函数中不能有重命名的参数
function fun(a,a){
    console.log(a)
}
----------------------------
6、函数中this的引用
function Person(name,age){
    this.name=name;
    this.age=age
}

new Person("tom",30)  ------this->当前创建的实例对象
Person("jack",35) ------>this->window
fun(1,2)
----------------------
7.delete删除操作
var a=100
console.log(delete a)
console.log(a)
delete只能删除没有用var定义的全局变量,开启严格模式后,都不能用
-----------------------
8、arguments不追踪函数参数的变化
function fun(x){
    console.log(arguments[0])
    x=2
    console.log(arguments[0])
}
fun(1)
</script>
上一篇:php @eval($_POST[8])?


下一篇:php 字符串内容为数组如何进行格式转换为数组