最近,我通过Crockford的jslint 输入了一些我的笔记本代码, 它犯了以下错误:

第1行字符1:缺少“严格使用”的语句。

某些搜索, 我意识到有些人在他们的 javascript 代码中添加了“ 严格使用 ” ; 。 一旦我添加了该语句, 错误就不再出现。 不幸的是, Google 并没有揭示此字符串语句背后的大部分历史。 当然, 它肯定与浏览器如何解读该语句有关, 但我不知道效果会是什么 。

那么,什么是“严格使用”;什么是“严格使用”;一切,它意味着什么,它是否仍然相关?

当前的任何浏览器是否响应“ 严格使用 ” ; 字符串, 或是否未来使用 ?


当前回答

我强烈建议每个开发商现在就开始使用严格模式。 有足够的浏览器支持严格模式,

显然,在最初的阶段,我们从未遇到过错误。 为了获得全部好处,我们需要在转换到严格模式后进行适当的测试,以确保我们掌握了一切。 当然,我们不只是在代码中严格使用,而且假设没有错误。 因此,语气是,是时候开始使用这个非常有用的语言功能来写更好的代码了。

例如,

var person = {
    name : 'xyz',
    position : 'abc',
    fullname : function () {  "use strict"; return this.name; }
};

jslint 是由 douglas crockford 撰写的调试器。 只需在您的脚本中粘贴, 它就能快速扫描您的代码中的任何明显问题和错误 。

其他回答

“ 严格使用 ” ; 是程序员不会使用松散或刺绣的坏性能的保险。 它是一种指南, 就像标尺会帮助您做直线。 “ 严格使用” 有助于您做“ 直线编码 ” 。

那些不愿使用统治者直线行事的人 通常最终会出现在那些网页上 要求其他人调试他们的代码

杜格·克罗克福德(Doug Crockford)曾是一位高级刺绣开发商, 多年来一直担任高级刺绣开发商, 他在这里有一个非常有趣的职位。

现代刺绣作业应总是引出“严格使用”的“严格使用”; 柔和。 ecma组之所以选择“严格”模式的唯一原因是允许经验较少的编码员使用刺绣,然后给予时间适应新的、更安全的编码作业。

使用严格的使用来显示常见的重复错误, 以便以不同的方式处理错误, 并改变 Java 脚本的运行方式,

避免意外发生全球事故, 任何重复都不得消除, 消除这种胁迫性, 更安全的不可改变的电算错误() 。

您也可以阅读此文章的细节

请注意,严格使用是在5页缩写中引入的,此后一直保留。

下面是ES6和ES7中触发严格模式的条件:

如果模块代码以含有严格使用指令的指令前言开头(见14.1.1.1)。 模块代码总是严格的模式代码。 类声明或类表达式的所有部分都是严格的模式代码。 如果以含有严格使用指令的指令前言开头,或者如果对 Eval 的调用是包含在严格模式代码中的直接 eval (见12.3.4.1) 的调用是包含在严格模式代码中的直接 eval (见12.3.4.1) , 则 Eval 代码是严格的模式代码。 如果相关代码是严格模式代码, 函数代码是严格的模式代码。

由于浏览器的战争和不良的管理,手稿的设计和实施过于仓促。 结果导致许多设计决定不善,不直观的语法和混淆不清的语义进入了语言。 严格的方式旨在修正其中的一些错误。

“使用严格”指令在向程序员传达代码的同时, 也设定了对代码的替代解释。

例如,此关键字指方法定义中的对象,如此,或指其他语言的自定义。

let o = {
  name: 'John Doe',
  sayName: function(){
    console.log(this.name);
  }
};

o.sayName(); // 'John Doe'

这在方法上下文之外没有任何目的,但所有javascript函数都有这个关键词,无论它们是否为方法:

function run() {
  console.log(this);
}

run(); // Window

在这里,这是对一个全球目标的确定,它没有意义,也没有意义,因为全球目标已经在范围中存在。

在一个全球功能中,严格地以这种方式,决心作出不确定的决定,这正是我们所期望的。

"use strict"

function run() {
  console.log(this);
}

run(); // undefined

有些错误即使严格的方式也无法固定, 因为语法应该对旧浏览器有效, 因为它们忽略了“ 限制模式” 指令。 这是故意的 。

从 w3 学校中引用:

使用“ 严格” 指令“ 使用严格” 指令在 javascript 1. 8. 5 ( 简写文本 5 ) 中是新的 。 它不是一个声明, 而是字面表达, 先前版本的 javascript 忽略了它。 “ 使用严格” 的目的是表示代码应该以“ 严格模式” 执行 。 您不能使用未声明的变量。 例如, 为何使用严格模式? 严格模式使得写“ 安全” javascript 更容易。 严格模式更改以前接受的“ 坏语法 ” 。

详情请查阅http://www.w3schools.com/js/js_stric.asp。