草庐IT

BB_STRICT_CHECKSUM

全部标签

javascript - 给定 "use strict"行为,是否有面向 future 的方法向 native 浏览器对象添加属性?

我最近注意到当"usestrict";模式在浏览器中打开时,native对象的许多属性变得不可设置。例如function(){"usestrict";vardiv=document.createElement("div");div.offsetLeft=0;}();忽略设置offsetLeft是愚蠢的事实。这不是重点。如果你在Chrome或Firefox中运行它,你会得到一个错误UncaughtTypeError:CannotsetpropertyoffsetLeftof#whichhasonlyagetter(…)删除"usestrict";错误消失。所以问题来了。让我们将offse

c# - C# 'dynamic' 的 VB.NET 等同于 Option Strict On

当使用类型安全的VB.NET时,是否有C#4'dynamic'关键字的等价物,即OptionStrictOn? 最佳答案 等效于VB.NET中的对象,但使用OptionStrictOff。使用OptionStrictOn没有等效项。换句话说dynamic关键字为C#带来了OptionStrictOff等效功能。 关于c#-C#'dynamic'的VB.NET等同于OptionStrictOn,我们在StackOverflow上找到一个类似的问题: https:

javascript - 如何强制谷歌闭包编译器保留 "use strict";在编译的js代码中?

如果你正在使用模块模式并且有这样的东西:(function(){"usestrict";//thisfunctionisstrict...}());并使用GoogleClosureCompiler编译代码,"usestrict";指令将不会进入编译文件。那么如何防止Closure编译器删除ES5/strict指令呢?(注意我不想使用其他强制ES5/strict模式的模式,就是在编译文件的第一行简单的加上"usestrict";我想使用模块模式如所述here.) 最佳答案 更新:编译器现在支持严格模式。只需使用--language_i

JavaScript:可以使用单引号 5's Strict Mode (") 启用 ECMAScript ('use strict' use strict") 吗?

JavaScript不关心字符串是双引号"double"还是单引号'single'。ECMAScript5严格模式的每个示例都通过双引号中的"usestrict"启用。我可以执行以下操作吗(单引号):alert(function(){'usestrict';return!this;}());如果启用严格模式,这将返回true,否则返回false。 最佳答案 Foryou,withoutusingabrowserthatsupportsstrictmode:AUseStrictDirectiveisanExpressionStatem

javascript - JS中 "Use Strict"的好处

这个问题在这里已经有了答案:Whatdoes"usestrict"doinJavaScript,andwhatisthereasoningbehindit?(30个答案)关闭8年前。除了防止错误编码之外,"usestrict"还有哪些其他好处?例如,它是否允许脚本运行得更快,因为解释器知道其优化的代码?

javascript - 如何删除babel添加的全局 "use strict"

我正在使用“usestrict”的函数形式并且不想要Babel在转译后添加的全局形式。问题是我正在使用一些没有使用“使用严格”模式的库,它可能会在连接脚本后抛出错误 最佳答案 正如已经提到的Babel6,它是添加严格模式的transform-es2015-modules-commonjs预设。如果你想在没有模块转换的情况下使用整个es2015预设,请将其放入你的.babelrc文件中:{"presets":[["es2015",{"modules":false}]]}这将禁用模块和严格模式,同时保持启用所有其他es2015转换。

javascript - 使用 "Possible strict violation."时 JSHint `bind`

考虑这个简单的代码:"usestrict";varobj={f:function(){this.prop='value';g.bind(this)();}};functiong(){console.log(this.prop);}如果我尝试验证此代码,jshint会给我错误Possiblestrictviolation.我调用console.log(this.prop);的地方。这是因为this在函数的严格模式下是未定义的。但是我在调​​用它之前绑定(bind)了这个函数,所以this是正确的对象。我正在使用这种“设计模式”来避免使主要对象困惑。在参数中传递属性也会使函数变得困惑,所以

javascript - TypeScript 文件中需要 "Use Strict"吗?

我看过一些关于在TypeScript代码文件中放置“usestrict”行的帖子。我的问题是,为什么要有它?既然TypeScript已经是一门强类型语言,那么“usestrict”又增加了什么? 最佳答案 更新TypeScript1.8+:"usestrict";在模块中发出(Readmore)。TypeScript2.1+:--alwaysStrict编译器选项以严格模式解析所有文件并在所有输出文件的顶部发出"usestrict"(Readmore).您可以通过在TypeScript的测试中搜索“严格模式”来找到一些示例的列表。下

javascript - 为什么 "use strict"在此示例中将性能提高 10 倍?

跟随问题ExtendingString.prototypeperformance我真的很感兴趣,因为仅仅将"usestrict"添加到String.prototype方法就可以将性能提高10倍。explanation通过bergi很短,没有向我解释。为什么两种几乎相同的方法之间存在如此巨大的差异,仅在顶部的"usestrict"不同?你能更详细地解释一下这背后的理论吗?String.prototype.count=function(char){varn=0;for(vari=0;i结果:proto:101msproto-strict:7.5ms 最佳答案

javascript - 什么是 "strict mode",它是如何使用的?

我一直在查看MozillaDeveloperNetwork上的JavaScript引用资料,然后我遇到了一个叫做"strictmode"的东西。我仔细阅读了它,但我无法理解它的作用。有人可以简要地(概括地)解释一下它的目的是什么以及它有什么用吗? 最佳答案 它的主要目的是做更多的检查。只需在代码顶部添加"usestrict";即可。例如,blah=33;是有效的JavaScript。这意味着您创建了一个完全全局的变量blah。但在严格模式下这是一个错误,因为你没有使用关键字“var”来声明变量。大多数时候您并不是要在某个任意范围的中