2015-10-26 2 views
-2

Я новичок в Javascript. Я пытаюсь выплюнуть что-то из в Chrome консоли, но я получаю эти ошибки в JSLint в квадратных скобках:Javascript: Ошибка использования Strict

'$' 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

Они выглядят как ошибки ворса - если это так, вам нужно указать режим разработки. Некоторые постоянные глобальные переменные, такие как консоль или окно, будут вызывать эту ошибку. Игнорируй это.

Я не уверен, почему on("ready" не работает - это то, что называется .ready() внутренне. Я работаю над тем, чтобы понять, почему. См. Этот код fiddle для примера вашего кода.

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

Должно быть

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

хорошо ... технически '$ (document) .on (« ready », function() {' не ошибается, это просто не очень хорошая практика по нескольким причинам (если только она не была удалена в последней версии и я просто не знаю) –

+0

@KevinB Интересно, почему '.on (« ready »' не запускал тогда. Я думал, что это тоже так (я должен изменить свое утверждение ..), но консольный оператор didn ' 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));