2016-03-23 10 views
0

Зачем оценивать 'hi'?Почему следующие оценки относятся к «привет»?

'hi' || true || 50 

Я не супер новичок в JavaScript, но я rebeefing свои знания, пройдя через некоторые старые книги, и я для жизни меня не понимают, почему это имеет значение 'hi' вместо истины .. Может кто-то объясняет это?

+2

Вот как определяется '||': 'x || y' означает «если x является правдивым возвратом x (не« true »), в противном случае y». – georg

+1

Просто [RTFM] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Logical_operators) – hindmost

+0

Интересно, почему в вашей книге это не объяснено. –

ответ

1

Добро пожаловать в мир правдивых и ложных ценностей.

Если значение может быть преобразовано в значение true, это значение называется так называемым правдивым. Если значение может быть преобразовано в значение false, значение будет так называемым ложным.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators

Это означает, что в основном все, кроме

false 
null 
undefined 
NaN 
"" 
0 

будет вычисляться правда в || условиях, возвращая первое значение, которое truthy. Это иногда используется в срастаться, как так:

a = a || {} 

Который установит к, если не ни один из указанных выше значений, еще пустые объекты JavaScript.

0

Потому что 'hi' - это непустой строковый литерал, который оценивается как true, когда рассматривается как логическое. Выражение a || b || c возвращает первое выражение, которое оценивается как true, в этом случае «hi».

0

От MDN (Logical Operators):

Возвращает expr1, если оно может быть преобразовано в истинно; в противном случае возвращает expr2. Таким образом, при использовании с булевыми значениями || возвращает true, если любой операнд может быть преобразован в true; если оба могут быть преобразованы в false, возвращает false.

0

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

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

  • Нет связанных вопросов^_^