Рассчитайте значение следующего выражения:
[''] == Неверно
Во -первых, эти два операнда являются типом объекта и логическим типом. Согласно рисунку 1, необходимо преобразовать логический тип в числовой тип, а результат преобразования FALSE в число - 0, поэтому выражение становится:
[''] == 0
Два операнда становятся типом объекта и числовым типом. Согласно рисунку 1, тип объекта должен быть преобразован в исходный тип:
Сначала позвоните [] .valueof (). Поскольку метод значения () массива возвращается, результатом является не исходный тип. Продолжайте звонить [] .toString ().
Для массивов алгоритм метода ToString () состоит в том, чтобы преобразовать каждый элемент в тип строки, а затем объединить его в последовательности с запятыми ', так что конечный результат - пустая строка', что является значением исходного типа.
На этом этапе выражение становится:
'' == 0
Два операнда становятся типами строк и числовыми типами. Согласно рисунку 1, необходимо преобразовать тип строки в тип числа. Как упоминалось ранее, пустая строка становится несколькими 0. Таким образом, выражение становится:
0 == 0
До сих пор типы двух операндов наконец -то одинаковы, и результат, очевидно, верен.