2015-04-19 2 views
0

В книге: «Секреты JavaScript Ninja» автор показывает этот код:утверждают, что в JavaScript

<script type="text/javascript"> 
    var outerValue = 'ninja' 
    function outerFunction() { 
     assert(outerValue, "I can see the ninja"); 
    } 
    outerFunction(); 
</script> 

Выход есть: I can see the ninja.

Что утверждают? Почему бы просто не использовать console.log?

+0

Первый параметр утверждают оценивается для truthiness. Если это так, он печатает второй параметр. Если нет, он ничего не печатает. Это полезно, потому что мы можем использовать его, чтобы программа печатала что-то только в том случае, когда утверждение нарушалось, и тревожило людей, чтобы они предприняли действия. –

ответ

2

"утверждают" не является стандартной функцией. Хотя все основные браузеры, похоже, имеют его в той или иной форме.

Он записывает значение в консоль, если утверждение истинно. В этом случае внешний VALUE соответствует истинному значению (например, не false). Это полезно для тестирования и не рекомендуется для использования в производстве. Тот факт, что он сначала оценивает логическое значение, чтобы определить, должно ли оно печатать сообщение, отличает его от console.log.

Mozilla Docs
Already answered here

+0

Но затем в Mozilla Docs говорится: «Если утверждение ложно, сообщение записывается в консоль». – Robert

2

Javascript утверждает, Официальное объяснение:

assert(value[, message]) 

квадратные скобки сообщения означает, что второй параметр является необязательным.

javascript assert Проверяет, является ли первый параметр (значение) правдивым, если он есть, он печатает второй необязательный параметр для стандартного вывода.

assert(outerValue, "I can see the ninja"); 

Ваша переменная outerValues имеет строку «ниндзя», JavaScript оценивает, что для truthiness, это truthy, поэтому она выводит «Я могу видеть ниндзя».

Источник: https://nodejs.org/api/assert.html

+0

Официальное откуда? – j08691

+0

from node.js, url: https://nodejs.org/api/assert.html#assert_assert_throws_block_error_message – qianjiahao

+0

Приятно, это то, что я думал, так как я столкнулся с кодом, в котором говорится: assert (! OuterValue, "external value это не здесь"). – Mozein

Смежные вопросы