美文网首页
高程之严格模式

高程之严格模式

作者: 白璞1024 | 来源:发表于2017-08-12 15:07 被阅读0次

1、选择使用

在函数中添加"use strict";来确定使用严格模式

2、变量

创建变量有一定的显字
1、不能意外的创建全局变量

eg:message = "hello"

前边必须有var

2、不能对变量di调用delete操作符,非严格会操作失败,但是不会拋异常
3、变量名要靠谱,不能是imlements、interface、let、package、private、protected、public、static、yield作为变量名

3、对象

1、给只读属性赋值会抛出TypeError
2、对不可匹配的属性使用delete
3、对不可扩展的属性添加属性
4、属性名必须唯一

4、函数:

1、严格模式要求命名的函数的参数必须唯一:

function(num,num){}

非严格模式下不会错,但是严格模式会抛异常

2、非严格模式下,修改命名参数的值arguments的值也会改变,但是严格模式下,这两个值完全独立

test("Hi")
function test(value){
    "use strict";
    value = "ro";
    alert(value);//ro
    alert(arguments[0])//Hi
}

3、淘汰了arguments.callee和arguments.caller非严格模式下这两个属性一个引用函数本身,一个引用调用函数一个调用函数。但是在严格模式下,访问会抛出TypeError
4、函数名不能是implements interface let package private protected public static yield
5、脚本的顶级和在函数内部声明函数,也就是说,在if语句中,声明函数会导致语法错误

if(true){
    function dosomething () {
        
    }
}

eval()

他在包含上下文中不再创建变量或函数

function doSomething(){
    eval("var a =10");
    alert(a);//严格模式下会报错

    var resu = eval("var x=10,y=11;x+y");
    alert(resu);//21//这个没有问题了
}

eval与arguments

严格模式禁止使用eval arguments作为标识,不允许读写他们的值

var eval = 10;
var arguments = "123sdf";

抑制this

非严格模式下,使用函数的apply()或call的方法时候,null或undefined值会被转换为全局对象,严格模式下,函数的this值始终是指定的值,无论指定的是什么值

var color = "red";
function displayColor(){
    "use strict";
    alert(color);
}
displayColor.call(null);

严格模式下会报错,

其他变化

严格模式下,使用width会语法错误
去掉了八进制的字面变量,0开头的八进制字面变量成为了无效语法

相关文章

  • 高程之严格模式

    1、选择使用 在函数中添加"use strict";来确定使用严格模式 2、变量 创建变量有一定的显字1、不能意外...

  • 面向对象-严格模式、作用域

    严格模式 js有两中开发模式:非严格模式(默认)+严格模式(“ues strict”) 严格模式:会进行更严格的代...

  • JavaScript this

    全局下this 非严格模式/严格模式 window 函数内this 非严格模式 window 严格模式 undef...

  • 开发中的严格模式

    js中有严格模式和非严格模式两种运行环境 在开发中,有非严格模式和严格模式2种开发模式 在严格模式下,会做更加严格...

  • 严格模式和非严格模式

    es6添加了严格模式("use strict")主要作用: 1.严格模式通过抛出错误来消除一些原有的静默错误。 2...

  • JS基本类型和变量

    严格模式 ECMAScripr5引入了严格模式。启用严格模式可以在顶部添加: “use strict” 严格模式下...

  • 严格模式

    ECMScript 5引入严格模式(strict mode)。严格模式定义了一种不同的解析与执行模型,ES3中的不...

  • 严格模式

    概览 严格模式的 目的:使代码更加 安全和 易于优化,代表了这门语言未来的发展方向。我们应该在代码中一直使用。 内...

  • 严格模式

    除了正常的运行模式,JavaScript还有第二种运行模式:“严格模式”(strict mode)。顾名思义,这种...

  • 严格模式this

    在严格模式下,在全局作用域中,this指向window对象(和非严格模式一致) 对象的函数中的this指向调用函数...

网友评论

      本文标题:高程之严格模式

      本文链接:https://www.haomeiwen.com/subject/fzhjrxtx.html