Skip to content
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  

Логические операторы

Clone this wiki locally