我附上以下声明:

"use strict";

在大多数Javascript文件的开头。

JSLint以前从未对此发出过警告。但现在它说:

使用“Use strict”的函数形式。

有人知道函数形式是什么吗?


当前回答

字符串形式本身并没有什么问题。

与其因为担心连接非严格javascript而避免“全局”严格形式,不如直接将该死的非严格javascript修改为严格。

其他回答

process.on('warning', function(e) {
    'use strict';
    console.warn(e.stack);
});
process.on('uncaughtException', function(e) {
    'use strict';
    console.warn(e.stack);
});

将这些行添加到文件的起始点

我想大家都忽略了这个问题中“突然”的部分。很可能,你的.jshintrc有一个语法错误,所以它不包括'browser'行。通过json验证器运行它,查看错误在哪里。

我建议改用jshint。

它允许通过/*jshint globalstrict: true*/来抑制这个警告。

如果你正在编写一个库,我只建议在你的代码被封装到模块中时使用global strict,就像nodejs的情况一样。

否则,您将迫使所有使用您的库的人进入严格模式。

如果你正在为NodeJS编写模块,它们已经被封装了。告诉JSLint你已经在你的文件顶部包含了node:

/*jslint node: true */

字符串形式本身并没有什么问题。

与其因为担心连接非严格javascript而避免“全局”严格形式,不如直接将该死的非严格javascript修改为严格。