-
Notifications
You must be signed in to change notification settings - Fork 46
Sᴛѧʀʟɪɴɢ edited this page Feb 9, 2019
·
24 revisions
// Операторы + / - читаются слева-направо. Оператор + по возможности приводит к строке, а оператор - всегда к числу.
// Для оператора +: {} + что-то (за исключением объекта) --> число, остальное приводится к строке.
// Для опетарора -: всё приводится к числу. Если имеется объект, undefined или строка, имеющая несвойственные
// для числа символы, получаем NaN.
{} + {} --> "[object Object][object Object]" / NaN
{} + {} + {} --> "[object Object][object Object][object Object]" / NaN
{} + {} + [] --> "NaN" / NaN
{} + "" --> 0 / -0
{} + "8" --> 8 / -8
{} + "8y" --> NaN / NaN
{} + null -> 0 / 0
{} + undefined -> NaN / NaN
{} + [] --> 0 / -0
{} + [] + "" --> "0" / -0
{} + [] + "8" --> "08" / -8
{} + [] + "8y" --> "08y" / NaN
{} + "" + [] --> "0" / -0
[] + [] --> "" / 0
[] + "" --> "" / 0
[] + {} --> "[object Object]" / NaN
"" + [] --> "" / 0
"8" + [] --> "8" / 8
"8y" + [] --> "8y" / NaN
"" + {} --> "[object Object]" / NaN
"8" + {} --> "8[object Object]" / NaN
"" + {} + [] --> "[object Object]" / NaN
"" + [] + {} --> "[object Object]" / NaN
0 + "" --> "0" / 0
0 + {} --> "0[object Object]" / NaN
0 + {} + [] --> "0[object Object]" / NaN
0 + [] --> "0" // 0
0 + [] + {} --> "0[object Object]" / NaN
// Операторы && / || читаются cлева-направо. Оператор && прерывается на первом false, оператор || прерывается на первом не false.
1 && 3 --> 3 / 1
1 && 3 && null --> null / 1
1 && 3 && null && undefined --> null / 1
1 && 3 && null && undefined && 4 --> null / 1
0 && 3 && null && true --> 0 / 3