"") работает так:
                  
                  
                    1. идет сравнение без приведения типов
                  
                  
                    2. сравнивается 0 и ""
                  
                  
                    3. имеется 0 - число, и "" - строка
                  
                  
                    4. преобразуем ""
                  
                  
                      4.1. преобразуем "" в число
                  
                  
                      4.2. "" преобразуется в 0
                  
                  
                    5. в итоге получается сравнение 0 == 0
                  
                  
                    6. получается true
                  
                  
                  
                  
                  
                  запись: ([] == "") работает так:
                  
                  
                    1. идет сравнение без приведения типов
                  
                  
                    2. сравнивается [] и ""
                  
                  
                    3. имеется [] - массив, и "" - строка
                  
                  
                    4. преобразуем []
                  
                  
                      4.1. преобразуем [] в строку
                  
                  
                      4.2. [] преобразуется в ""
                  
                  
                      4.3. преобразуем "" в число
                  
                  
                      4.4. "" преобразуется в 0
                  
                  
                    5. преобразуем ""
                  
                  
                      5.1. преобразуем "" в число
                  
                  
                      5.2. "" преобразуется в 0
                  
                  
                    6. в итоге получается сравнение 0 == 0
                  
                  
                    7. получается true
                  
                  
                  
                  
                  
                  верно? Или массив со строкой по другому сравнивается?
                  
                  
                
есть метод toString, при сравнении он вызывается если есть
я знаю, спрашиваю верно ли я понял порядок преобразований
Русским языком тут сравнивается равен ли 0 пустой строке
мне больше интересно как сравнивается массив со строкой
console.log([].toString())
возможно ещё что 0 и "" приводятся к булевому значению false ибо по отдельности в ифе они и будут его выдавать, но это не точно
нет, приводятся к числу в таком случае
если кому интересно как сравнивать ([] == "") вот тут (https://262.ecma-international.org/5.1/#sec-11.9.3) пункт 8/9. Оказывается массив просто преобразуется в строку и сразу сравнивается, а не преобразуется все до числа
Обсуждают сегодня