是否有无论如何检查严格模式'严格使用'是否被强制执行,并且我们希望针对严格模式执行不同的代码,以及针对非严格模式执行其他代码。 寻找功能像isStrictMode();//boolean
有没有办法检查严格模式是否被强制执行?
50
A
回答
62
是this
一个名为在全球范围内将不会指向全局对象函数内可以用来检测严格模式的事实:
var isStrict = (function() { return !this; })();
演示:
> echo '"use strict"; var isStrict = (function() { return !this; })(); console.log(isStrict);' | node
true
> echo 'var isStrict = (function() { return !this; })(); console.log(isStrict);' | node
false
7
没错,this
是'undefined'
一个全球性的方法中,当你在严格模式。
function isStrictMode() {
return (typeof this == 'undefined');
}
18
16
我喜欢的东西并不在任何情况下使用异常和作品,不仅是全球一个:
var mode = (eval("var __temp = null"), (typeof __temp === "undefined")) ?
"strict":
"non-strict";
它采用严格模式的事实eval
没有引入新的变量进入外部环境。
1
更优雅的方式:如果 “这” 对象,将其转换为真正的
"use strict"
var strict = (function() { return !!!this })()
if (strict) {
console.log ("strict mode enabled, strict is " + strict)
} else {
console.log ("strict mode not defined, strict is " + strict)
}
相关问题
- 1. 有没有办法检查模型字段是否被提取?
- 2. 有没有办法检查代码是否在TransactionScope中执行?
- 3. 有没有办法强制before_filter总是最后执行?
- 4. 有没有办法检查istream是否以二进制模式打开?
- 5. 有没有办法来检查NSManagedObject是否被释放?
- 6. 有没有办法检查RVO是否被应用?
- 7. 有没有办法检查反应组件是否被卸载?
- 8. 有没有办法检查performSelector:withObject:afterDelay:是否已被注册?
- 9. 有没有办法检查符号是否被引用?
- 10. 有没有办法检查链接是否被点击?
- 11. 是否有办法强制执行@Test(enabled = false)测试?
- 12. 有没有办法检测iPhone是否处于反色模式?
- 13. 有没有办法通过monkeyrunner来检查模拟器是否是控制器?
- 14. NHibernate的UniqueKey没有被强制执行
- 15. 外键没有被强制执行
- 16. Devart dotconnect - 有没有办法强制执行命令?
- 17. 有没有什么办法来强制执行EE配置RuntimeUnenhancedClasses
- 18. cloud-init有没有办法强制执行命令?
- 19. 有没有办法检查脚本是否由PowerShell ISE运行?
- 20. 有没有办法检查子进程是否仍在运行?
- 21. 有没有办法检查回发是否正在进行?
- 22. 有没有办法强制SSRS报告中的复选框始终被检查?
- 23. 有没有办法在github上强制README.txt文件的格式?
- 24. Symfony如何检查检查是否被检查没有形式
- 25. Apache Ant有没有“严格模式”?
- 26. 有没有办法检测对象是否被锁定?
- 27. 有没有办法检测一个键是否被按下?
- 28. 有没有办法检测通知栏是否已被清除?
- 29. 有没有办法检查(文件)句柄是否有效?
- 30. 强制执行严格哈斯克尔
大。这是优雅和无处不在。 –
为了澄清,return语句相当于'return this === undefined',它不会将它与全局对象进行比较,它只是检查'this'是否存在。 – aljgom