有没有办法在JavaScript中使用常量?
如果没有,指定用作常量的变量的常见做法是什么?
我最近一直在阅读很多Javascript,并且我注意到要导入的.js文件中的整个文件包含如下所示.
(function() {
...
code
...
})();
Run Code Online (Sandbox Code Playgroud)
这样做的原因是什么,而不是一组简单的构造函数?
在另一个问题中,用户指出该new关键字使用起来很危险,并提出了一种不使用的对象创建解决方案new.我不相信这是真的,主要是因为我使用了Prototype,Scriptaculous和其他优秀的JavaScript库,并且每个人都使用了new关键字.
尽管如此,昨天我在YUI剧院观看道格拉斯·克罗克福德的演讲,他说的完全一样,他new在代码中不再使用关键字(Crockford on JavaScript - Act III:Function the Ultimate - 50:23分钟).
使用new关键字"不好" 吗?使用它有哪些优缺点?
我已经开始探索Node.js并编写了许多演示Web应用程序,以了解Node.js,Express.js,jade等的流程.
但最近我遇到的一件事是声明"use strict"作为每个函数和每个.js文件中的第一行.
Node.js究竟是如何解释的?
我一直在浏览Mozilla开发者网络上的JavaScript参考,我遇到了一些叫做的东西"strict mode".我读了它,我很难理解它的作用.有人可以简要解释(一般)它的目的是什么以及它有用吗?
继扩展String.prototype性能之后,我真的很感兴趣,因为只需添加"use strict"一个String.prototype方法就可以提高性能10倍.该解释由BERGI是短暂的,并没有向我解释.为什么两种几乎相同的方法之间存在如此巨大的差异,只是在"use strict"顶部有所不同?你能更详细地解释一下这背后的理论吗?
String.prototype.count = function(char) {
var n = 0;
for (var i = 0; i < this.length; i++)
if (this[i] == char) n++;
return n;
};
String.prototype.count_strict = function(char) {
"use strict";
var n = 0;
for (var i = 0; i < this.length; i++)
if (this[i] == char) n++;
return n;
};
// Here is how I measued speed, using Node.js 6.1.0
var STR = …Run Code Online (Sandbox Code Playgroud)我看过有关在TypeScript代码文件中将"use strict"行放在何处的帖子.我的问题是,为什么要这样呢?
由于TypeScript已经是强类型语言,"use strict"添加了什么?
Jshint.com提供错误:
第36行:var signin_found; 缺少"使用严格"声明.
我在MDC或ECMAscript规范中没有找到关于我的问题的任何内容.可能有人知道一种更"笨拙"的方法来解决这个问题.
我正在调用"use strict"我环境中的每个javascript文件.我的所有文件都是这样开始的
(function(win, doc, undef) {
"use strict";
// code & functions
}(window, window.document));
Run Code Online (Sandbox Code Playgroud)
现在,我有一个处理错误的自定义函数.该函数使用该.caller属性来提供上下文堆栈跟踪.看起来像这样:
var chain = (function() {
var _parent = _error,
_ret = '';
while( _parent.caller ) {
_ret += ' -> ' + _parent.caller.name;
_parent = _parent.caller;
}
return _ret;
}());
Run Code Online (Sandbox Code Playgroud)
但是,当然,在严格模式下.caller是一个不可删除的道具,在检索时抛出.所以我的问题是,是否有人知道如何禁用更严格的"功能明智"?
"use strict";在被调用之后被所有函数继承.现在我们有可能在特定函数中使用严格模式,只需调用它们"use strict";的顶部,但有没有办法实现相反的目的?
javascript ×10
strict-mode ×2
arrays ×1
coding-style ×1
constants ×1
ecma262 ×1
ecmascript-5 ×1
iife ×1
jshint ×1
node.js ×1
performance ×1
scope ×1
typescript ×1
use-strict ×1