码迷,mamicode.com
首页 > Web开发 > 详细

JS严格模式

时间:2021-02-24 13:05:15      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:重命名   操作   code   ack   UNC   lob   作用域   str   删除   

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>

JS严格模式

标签:重命名   操作   code   ack   UNC   lob   作用域   str   删除   

原文地址:https://www.cnblogs.com/lceihen/p/14437391.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!