标签: use-strict

启用"use strict"后,为什么我可以在使用prompt()时不使用let来分配变量

"use strict";在剧本的顶部写道.

我不能写,num = 5;因为我得到了ReferenceError: Can't find variable: num.

为了解决这个问题,我可以写let num = 5;.

使用那个逻辑,为什么我被允许写name = prompt("What is your name?");

我不应该写let name = prompt("What is your name?")吗?

javascript use-strict

3
推荐指数
1
解决办法
39
查看次数

没有严格模式的JSON.parse

我正在阅读关于javascript中严格模式的John Resig博客,但我有一个问题.

严格模式的一个特性是使用JSON.parse和JSON.stringify,但我可以使用WITHOUT"use strict".

如果你写他在博客上使用的相同例子:

var str = JSON.stringify({ name: "John" });
// Prints {"name":"John"}
alert( str );
Run Code Online (Sandbox Code Playgroud)

你可以看到这个工作.

为什么允许这样做?我错过了什么吗?

谢谢!

javascript use-strict ecmascript-5

2
推荐指数
1
解决办法
2531
查看次数

为什么"让"es6和谐仅适用于严格使用?

这段代码:

var x = 8,
    y = 12;

let ( x = 5, y = 10) {
   return x + y;
} 
Run Code Online (Sandbox Code Playgroud)

..gives"SyntaxError:非法让扩展模式外的声明"

但是"使用严格"它可以正常工作.

所以有趣的是为什么'让'首先与"使用严格"模式集成?(根据http://kangax.github.io/compat-table/es6/#nodeharmony)

let use-strict node.js ecmascript-6

2
推荐指数
1
解决办法
1425
查看次数

当我们使用模板文字时,`use strict` 不起作用

如果我use strict用反引号/模板文字括起来,“使用严格”不会按预期工作。你能分享一下背后的原因吗?是否有任何类似的异常语句模板文字无法按预期工作?

`use strict`;
x = 3.14;  // Ideally it should  cause an error (as x is not defined).
alert(x);
Run Code Online (Sandbox Code Playgroud)

`use strict`; // if we enclose in single quotes or double quotes
x = 3.14;    // Ideally it should  cause an error (as x is not defined).
alert(x);
Run Code Online (Sandbox Code Playgroud)

javascript use-strict template-literals

2
推荐指数
1
解决办法
75
查看次数

perl中符号引用与硬引用的区别

我一直在使用perl中的硬引用.但是想到符号引用可以对程序员有什么帮助.

           no strict "ref";
Run Code Online (Sandbox Code Playgroud)

perl use-strict

1
推荐指数
1
解决办法
561
查看次数

在函数调用中“使用严格”和命名参数

一位同事建议我添加"use strict";到我的 JS 代码的顶部,以突出我的定义中的任何差距和潜在的引用错误等。我对此非常满意,因为它已经确定了几段可能存在问题的代码.

但是,另一位同事告诉我,在调用带有多个参数的函数时,按照指定的方式命名参数会很有帮助,尤其是当它是一堆布尔值时。为了说明,这里有几个函数调用:

logData(data, target, preserveLog=true, changeClass=false, wrapLine=false);
Run Code Online (Sandbox Code Playgroud)

...比:

logData(data, target, true, false, false);
Run Code Online (Sandbox Code Playgroud)

但是"use strict";讨厌这个。在我执行此操作的任何地方,我都会在控制台中收到参考错误。正如预期的那样,它仍然运行良好,但控制台现在被所有这些明显未定义的引用弄得乱七八糟。

有谁知道是否有办法解决这个问题,以便我可以保留我的同事欣赏的编码约定,或者我将不得不停止使用"use strict";或检查我的所有代码并删除参数名称?

谢谢。

javascript calling-convention use-strict

1
推荐指数
2
解决办法
807
查看次数

关于Ubuntu问题的WebStorm

几天前我在我的计算机上安装了Ubuntu,然后安装了WebStorm,但我遇到了JavaScript项目的问题.它给了我一个错误,说我不能使用"let"这个词.几个小时后,我找到了一些解决方案:使用"use strict".有可能不是"use strict"吗?

还有一件事:它不认识我Math.pow的更快替代方案:(a**2);

编辑:我正在使用ECMAScript 6,这是确切的错误:SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode

javascript ubuntu use-strict webstorm

0
推荐指数
1
解决办法
60
查看次数