Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите новичку, пожалуйста (https://javascript.ru/forum/misc/60930-pomogite-novichku-pozhalujjsta.html)

Bruha1991 27.01.2016 18:54

Помогите новичку, пожалуйста
 
Здравствуйте! Есть 2 скрипта. Вот первый:

<script>
			var a;
			alert(a + 1);
			var y = 1;
			var x = y = typeof x;
			alert(x + 1);

</script>

Не понимаю почему выводит undefined1, мне кажется должно выводить NaN второй раз.
Вот второй:
<script>
			alert([] + false - null + true);
			
</script>

Результат NaN. Почему?
Здесь не понимаю что означает пустой массив при его приведении к типу Number, или т.к. стоит "+" может он рассценивается как строка. Не знаю подскажите.

Lemme 27.01.2016 19:11

var y = 1; // y === 1
var x = y = typeof x; // x = 'undefined', y = 'undefined'
alert(x + 1); // 'undefined' + 1 == 'undefined1'


ибо typeof x - строка.

alert([] + false - null + true);


Результатом будет:

"" + false = "false"
"false" - null = +"false" - +null
NaN - 0 = NaN
NaN + true = NaN


Оператор вычитания пытается преобразовать к числу. (как я понял).

alert("5" - "1");


p.s ответы могут быть не точны.


Часовой пояс GMT +3, время: 17:17.