2015-10-26 45 views
-2

我是JavaScript新手。我試圖吐出一些東西到Chrome控制檯,但我得到這些錯誤在JSLint的括號:Javascript:正在使用'嚴格'錯誤

'$' 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."); 
}); 

我嘗試添加了「使用嚴格的」;聲明在文件的頂部,但這些錯誤不會消失,也不會向控制檯吐出。這裏是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">&nbsp;</span> 
      <br><span class="label"> Total Balance</span> 
     </div> 
     <div class="four coloumns"> 
      <span id="transaction_count" class="value">&nbsp;</span> 
      <br><span class="label"> Transactions</span> 
     </div> 
     <div class="two coloumns"> 
      <span id="blocks_mined_count" class="value">&nbsp;</span> 
      <br><span class="label">Blocks Mined</span> 
     </div> 
     <h4 class="twelve columns">Activity</h4> 
    </div> 
</body> 
</html> 

幫助將不勝感激。

+0

您使用的是JSLinter嗎?這些看起來像lint錯誤 - 如果是這樣,你需要指定開發模式。一些像控制檯或窗口這樣的常量全局變量會拋出這個錯誤。忽略它。 –

+0

這聽起來像你還沒有加載jQuery ... – rnevius

+0

@Meeseeks我已經添加了jQuery腳本,並且html和js都在同一個文件中。 – Shashank

回答

2

這些看起來像lint錯誤 - 如果是這樣,您需要指定開發模式。一些像控制檯或窗口這樣的常量全局變量會拋出這個錯誤。忽略它。

我不知道爲什麼on("ready"不起作用 - 這就是內部所謂的.ready()。我正在研究爲什麼。有關您的代碼工作的示例,請參見此fiddle

$(document).on("ready", function() { 

應該

$(document).ready(function() { 
+0

好吧......從技術上講,'$(document).on(「ready」,function(){'沒有錯,只是出於幾個原因不是好的做法(除非它在最近的版本中被刪除我只是不知道) –

+0

@KevinB我想知道爲什麼'.on(「ready」'沒有觸發,我認爲它也是正確的(我應該重新說明我的聲明..),但控制檯聲明沒有' t運行與原來的。也許有一個變化,我不知道以及。 –

+0

https://gyazo.com/b3011d5e5529a899e4cb79df520a4e5f它沒有運行就緒。我的jQuery標籤正確的HTML? – Shashank

0

這僅僅是一個解決您的掉毛問題的方式,但你應該把你的JS到Immediately Invoked Function,並宣佈其功能範圍,使用"use strict";

而且,將jQuery作爲您的IIF的依賴項並使用jslint指令告訴jslint您的期望。在我們的例子中,我們說我們使用瀏覽器browser:true,這意味着document和許多其他瀏覽器特定的全局變量將通過定義的線索。 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));