为什么console.log会停止javascript库中的错误
Why does console.log stop errors in javascript Library?
我一直在为我正在开发的web应用程序创建一个小库。在创建这个库时,我可以在脚本顶部输入一条日志语句,下面的一切都很好。但是,如果删除top console.log语句,就会出现错误。代码如下。错误为:
ReferenceError: assignment to undeclared variable TestFirst
代码:
$(document).ready(function() {
(function() {
console.log('starting');
'use strict';
function define_TestFirst() {
function TestFirst () {};
return TestFirst;
}
if (typeof(TestFirst) === 'undefined') {
console.log('defined');
TestFirst = define_TestFirst();
TestFirst.prototype.test = function () {
console.log('TestFirst object created.');
}
} else {
console.log('TestFirst library already defined!');
}
})();
});
问题是"use strict"
必须是函数的第一个语句才能使用。否则它将被忽略。
现在,我想你看到了问题:
问题不在于删除顶部的console.log
,而在于不再忽略use strict
。
脚本在严格模式下运行的问题是必须首先声明任何变量:
ReferenceError: assignment to undeclared variable TestFirst
意味着您需要在var
TestFirst = define_TestFirst();
var
语句正如错误所说,您没有用var
声明TestFirst
,而是为其赋值(或使用window.TestFirst = ...
):
TestFirst = define_TestFirst();
您想要严格模式,但在use strict
之前有console.log()
会导致use strict
无法启用严格模式。
来自MDN:
要为整个脚本调用严格模式,请输入"严格使用";(或"使用strict";)在任何其他语句之前。
相关文章:
- object响应时出现对象错误javascript
- 未捕获的语法错误:javascript对象上出现意外的标记ILLEGAL
- Phonegap-Android 4.4-html5音频长度错误(javascript和媒体插件)
- 未捕获的语法错误:javascript中出现意外的标记}
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- 未捕获类型错误javascript方法
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 解析器错误(Javascript初学者寻找解决方案)
- IE 错误 .JavaScript 运行时错误:对象不支持属性或方法“preventDefault”
- appendChild 不是函数错误 (JAVASCRIPT)
- 错误 JavaScript 函数
- 而循环抛出错误JavaScript
- 意外的类型错误 - Javascript,多维数组
- 语法错误:Javascript 中的意外令牌/将数据发布到 Amazon s3
- 语法错误:Javascript 中缺少指数
- 错误“JavaScript 运行时错误:查找滚动位置时无法获取未定义或空引用的属性'scrollLeft'”
- 错误 JavaScript 循环数组
- 错误:Javascript 上的 [对象对象]
- IndexedDBShim.js错误:JavaScript运行时错误:在严格模式下不允许分配只读属性
- 在Evernote listNotebooks API上获取错误-Javascript/Node.Js