资讯专栏INFORMATION COLUMN

关于Javascript中的"use strict"的那些事

icyfire / 3339人阅读

摘要:作用范围这样都会应用上模式。如果你仅想在一个函数中使用的特性检查对象中的重复键这段代码会抛出一个错误因为出现了两次。未声明变量在模式下,给未声明的变量赋值会抛出的警告。重复的参数注意出现了两次,因此会抛出一个错误。

"use strict"作用范围
// file.js
"use strict"
function doStuff(){
    // use strict is enabled here!
}

这样file.js都会应用上"use strict"模式。
如果你仅想在一个函数中使用:

// file.js
function a(){

"use strict";
// use strict is enabled in this context
function nestedFunction(){
    // and here too
}

}

"use strict"的特性 检查对象中的重复键
var zombie = {
    eyeLeft : 0,
    eyeRight: 1,
    // ... a lot of keys ...
    eyeLeft : 1
}

这段代码会抛出一个错误因为 eyeLeft 出现了两次。这比你用眼睛去找错误要快多了。

未声明变量

在"use strict"模式下,给未声明的变量赋值会抛出ReferenceError的警告。而在正常模式下,给未声明变量赋值会直接创建同名全局变量。

重复的参数
function run(fromWhom, fromWhom){}

注意fromWho出现了两次,因此会抛出一个错误。

限制函数中的arguments
var run = function(fromWhom){
    arguments[0] = "alien";
    alert(fromWhom);
}
run("zombie");
// alert: "alien";

var run = function(fromWhom){
    "use strict";
    arguments[0] = "alien";
    alert(fromWhom);
}
run("zombie");
// alert: "zombie";

看懂了么,就是这么简单

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107720.html

相关文章

  • "use strict"

    摘要:增强的安全措施禁止关键字指向全局对象使用构造函数时,如果忘了加,不再指向全局对象,而是报错。禁止八进制表示法整数第一位为,将报错。也就是说,不允许在非函数的代码块内声明函数。 use strict 全局变量显示声明 静态绑定:属性和方法到底归属哪个对象,在编译阶段就确定。 禁止使用with语句:因为with语句无法在编译时就确定属性到底归属哪个对象 创设eval作用域:正常模式下...

    FleyX 评论0 收藏0
  • 向Zepto学习关于"偏移"那些

    摘要:获得当前元素相对于的位置。返回一个对象含有和当给定一个含有和属性对象时,使用这些值来对集合中每一个元素进行相对于的定位。获取对象集合中第一个元素相对于其的位置。结尾以上就是中与偏移相关的几个的解析,欢迎指出其中的问题和有错误的地方。 前言 这篇文章主要想说一下Zepto中与偏移相关的一些事,很久很久以前,我们经常会使用offset、position、scrollTop、scrollLe...

    hzx 评论0 收藏0
  • 向Zepto学习关于"偏移"那些

    摘要:获得当前元素相对于的位置。返回一个对象含有和当给定一个含有和属性对象时,使用这些值来对集合中每一个元素进行相对于的定位。获取对象集合中第一个元素相对于其的位置。结尾以上就是中与偏移相关的几个的解析,欢迎指出其中的问题和有错误的地方。 前言 这篇文章主要想说一下Zepto中与偏移相关的一些事,很久很久以前,我们经常会使用offset、position、scrollTop、scrollLe...

    taohonghui 评论0 收藏0
  • 为什么使用"use strict"可以节约你时间

    摘要:未声明变量你现在已经知道忘记在这个变量前面加了。想象一下,如果你声明了一个全局的,在嵌套循环中可能会引起混乱。重复的参数注意出现了两次,因此会抛出一个错误。限制函数中的现在你可以使用改变了参数,又节约了你的时间。 // file.js use strict function doStuff(){ // use strict is enabled here! } 这样挑的fil...

    hizengzeng 评论0 收藏0
  • 谈谈JavaScript中严格模式你应该遵守那些

    严格模式 首先来了解一下严格模式是什么?严格模式是JavaScript中的一种限制性更强的变种方式,不是一个子集:它在语义上与正常代码有明显的差异,不支持严格模式的浏览器与支持严格模式的浏览器行为上也不一样,所以不要在未经严格模式特性测试情况下使用严格模式,严格模式可以与非严格模式共存,所以脚本可以逐渐的选择性加入严格模式 严格模式的目的 首先,严格模式会将JavaScript陷阱直接变成明显的错...

    MingjunYang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<