javascript严格模式下的8点规则
来源:互联网 发布:流量互刷软件 编辑:程序博客网 时间:2024/06/13 00:34
【作用】
[1]消除js语法的一些不合理、不严谨、不安全问题,减少怪异行为并保证代码运行安全
[2]提高编译器效率,增加运行速度
【使用】
[1]整个脚本启用严格模式,在顶部执行:"use strict";
[2]在指定函数中执行严格模式,在函数体第一行:"use strict"
[3]不支持strict模式的浏览器把"use strict"当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式
[4]支持严格模式的浏览器包括IE10+、Firefox4+、safari12+、opera12+、chrome
【规则】
【1】变量
[a]不允许意外创建全局变量
"use strict";message = 'hello world!';
[b]不能对变量调用delete操作符
"use strict";var color = 'red';delete color;
【2】对象
[a]不能为只读属性赋值
"use strict";var person = { name:'cook'};Object.defineProperty(person,'name',{ writable: false});person.name = 'Nicholas';
[b]不能为不可配置的属性使用delete操作
"use strict";var person = { name:'cook'};Object.defineProperty(person,'name',{ configurable: false});delete person.name;
【3】函数
[a]参数必须唯一
"use strict";function sun(num,num){ //TODO}
[b]修改形参不会反映到arguments中
function showValue(value){ value = "Foo"; alert(arguments[0]); //非严格模式:"Foo" //严格模式:"Hi"}showValue("Hi");
[c]不允许使用arguments.callee和arguments.caller
"use strict";function fn(num){ return arguments.callee(num);}fn(2);
"use strict";function outer(){ inner();}function inner(){ alert(inner.caller());}outer();
【4】不允许eval()在包含上下文中创建变量或函数
"use strict";function fn(){ eval("var x=10"); alert(x);}fn();
//允许以下操作var result = eval("var x = 10, y = 11; x+y");alert(result);//21
【5】不允许使用eval和arguments作为标识符,也不允许读写他们的值
"use strict";var eval = 10;var arguments = 20;
【6】不允许this值为null或undefined
"use strict";var color = "red";function fn(){ alert(this.color);}fn();
【7】不允许使用with语句
"use strict";with(location){ alert(href);}
【8】不允许使用八进制字面量
"use strict";var value = 010;
0 0
- javascript严格模式下的8点规则
- JavaScript严格模式约束规则
- Javascript的严格模式
- javascript的严格模式
- javascript的严格模式
- JavaScript的严格模式
- Javascript的严格模式
- 【javascript】 的严格模式 详解
- 关于Javascript的严格模式
- JavaScript严格模式与非严格模式之间的区别
- JavaScript严格模式与非严格模式之间的区别
- 'use strict' - Javascript 的严格模式
- javascript(EcmaScript 5)的严格模式
- 如何理解Javascript的严格模式
- JavaScript的严格模式 use strict
- javascript 的"use strict"严格模式
- JavaScript严格模式
- Javascript 严格模式详解
- 文章标题
- AngularJS内置服务器--$http服务的简单用法
- 硬件常用术语
- 登录功能
- HDU 1233 还是畅通工程(最小生成树 Prim+Kruskal)
- javascript严格模式下的8点规则
- JAVA对数计算
- 第十一周(Dynamic ProgrammingV)
- C语言入门(一)
- Boyer Moore算法分析总结
- Bash循环处理带有空格的文件名
- 21---包管理(rpm & yum)
- 使用JAVA Get POST 抓网页的练习代码
- 类