我是Javascript的新手。我正在尝试向Chrome控制台吐出一些东西,但我在JBLint的Brackets中遇到了这些错误:
'$' was used before it was defined. $(document).on("ready", function() {
3 Expected exactly one space between 'function' and '('. $(document).on("ready", function() {
4 Missing 'use strict' statement. console.log("Address Explorer JS up and running.");
4 Expected 'console' at column 5, not column 3. console.log("Address Explorer JS up and running.");
4 'console' was used before it was defined. console.log("Address Explorer JS up and running.");
这是JS代码:
"use strict";
/* address-explorer.js */
$(document).on("ready", function() {
console.log("Address Explorer JS up and running.");
});
我尝试添加'Use Strict';文件顶部的语句,但这些错误不会消失,没有任何东西吐出到控制台。这是HTML:
<!DOCTYPE html>
<html>
<head>
<title>My Address Explorer</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css" rel="stylesheet">
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="./address-explorer.js"></script>
</head>
<body>
<div class="container">
<h1 class="twelve coloumns">
Your Account
</h1>
<div class="five coloumns">
<span id="displayed_balance" class="value"> </span>
<br><span class="label"> Total Balance</span>
</div>
<div class="four coloumns">
<span id="transaction_count" class="value"> </span>
<br><span class="label"> Transactions</span>
</div>
<div class="two coloumns">
<span id="blocks_mined_count" class="value"> </span>
<br><span class="label">Blocks Mined</span>
</div>
<h4 class="twelve columns">Activity</h4>
</div>
</body>
</html>
帮助将不胜感激。
答案 0 :(得分:2)
这些看起来像lint错误 - 如果是这样,您需要指定开发模式。一些常量全局变量如控制台或窗口将抛出此错误。忽略它。
我不确定为什么on("ready"
不起作用 - 这就是内部调用.ready()
的内容。我正在努力寻找原因。有关代码工作的示例,请参阅此fiddle。
$(document).on("ready", function() {
应该是
$(document).ready(function() {
答案 1 :(得分:0)
这只是修复linting问题的一种方法,但你应该把你的JS放到Immediately Invoked Function
中,并声明函数范围可以使用"use strict";
此外,将jQuery作为IIF
的依赖项传递,并使用jslint指令告诉jslint您期望的是什么。在我们的例子中,我们说我们正在使用浏览器browser:true
,这意味着document
和许多其他浏览器特定的全局变量将通过定义的linting。 devel: true
表示也应该考虑定义console
。
如果你在这个源之前包含jQuery,你有一个外部全局jQuery
,所以你需要告诉jslint也期望这样。我们使用/*global ...*/
指令执行此操作。
/*jslint browser:true, devel: true*/
/*global jQuery*/
(function ($) {
"use strict";
$(document).on("ready", function () {
console.log("Address Explorer JS up and running.");
});
}(jQuery));