Введение
Если утверждения должны быть утверждениями, которые программисты используют чаще, и часто им нужно выносить, если суждения. Если операторы обычно используют двойные знаки, чтобы определить, являются ли два элемента до и после последовательными. Если они последовательны, то возврат является истинной, а затем выполните следующее оператор. В противном случае выполните другие утверждения. Неявное преобразование типа, упомянутое в этой статье, относится к конверсии, вызванной ==. Чтобы привести простой пример, двойной равный знак не является общим равным знаком, общий равный знак - «===» три равных знака, а утверждение «1» == 1, тогда в целом предыдущая строка «1» преобразуется в число 1, а затем сравнивается. Через этот пример вы должны понять, что такое неявное преобразование типа!
Шаги неявного типа преобразования
1. Во -первых, проверьте, есть ли NAN до и после двойного равного знака. Если NAN существует, все возвращают ложь.
2. Давайте посмотрим, есть ли логии до и после двойного равного знака. Если есть логическое, преобразовать логическое число в число. (Неверно - 0, истина 1)
3. Затем проверьте, есть ли строки до и после двойного равного знака. Есть три ситуации:
1. Другая сторона является объектом, и объект преобразуется с использованием toString () или valueOf ();
2. Другая сторона - это число, а строка преобразуется в число; (Пример был приведен ранее)
3. Другая сторона - это строка, сравните напрямую;
4. Другие возвращают ложь
4. Если это число, другая сторона является объектом. Объект принимает значение () или toString () для сравнения, и все другие объекты будут возвращать false.
5. NULL, Undefined не выполнят преобразование типа, но они равны
Приведенный выше порядок преобразования должен иметь в виду. Типы вопросов часто встречаются во время интервью.
Численное преобразование метода .toString () и .valueof () метод
Обычно мы считаем, что преобразование объекта в строку требует вызова метода ToString (), а преобразование его в число требует вызова значения () метода (), но это не так просто, когда он фактически применяется. См. Пример следующего кода:
var obj = {webName: «Front-End Blog», URL: «www.vevb.com»} console.log (obj.tostring ()); // [объект объекта]Точно так же давайте снова посмотрим на метод значения ():
var arr = [1, 2, 3]; console.log (arr.valueof ()); // [1, 2, 3]
Как видно из приведенного выше кода, метод значения () не преобразует объект в число, которое отражает объект. Вместо этого мы используем toString ()
var arr = [1, 2, 3]; console.log (arr.tostring ()); // 1,2,3
Примечание. Многие друзья считают, что при преобразовании в строку вы должны сначала вызвать метод ToString (). На самом деле, это неправильное понимание. Мы должны понимать это. Вызов метода toString () может быть преобразован в строку, но он не обязательно означает, что преобразование строки состоит в том, чтобы сначала вызвать метод toString ().
Давайте посмотрим на следующий код:
var arr = {}; arr.valueof = function () {return 1; } arr.toString = function () {return 2; } console.log (arr == 1); // trueVar arr = {}; arr.valueof = function () {return []; } arr.toString = function () {return 1; } console.log (arr == 1); // trueИз приведенного выше кода мы видим, что первый вызов ValueOf () для преобразования. Если значение () не является численным значением, то ToString будет вызван для преобразования!
var arr = {}; arr.valueof = function () {return "1"; } arr.toString = function () {return "2"; } console.log (arr == "1"); // trueЕсли «1» - это строка, то первое, что она вызывает значение ().
var arr = [2]; console.log (arr + "1"); // 21
В приведенном выше примере toString () называется; Потому что arr.tostring () сопровождается 2.
Процесс преобразования такой. Во -первых, сначала ARR назвал бы метод ValueOf (), но этот метод числа просто унаследован и не переписывается (конечно, это переписывание не реализовано нами). Возвращаемое значение - это сам объект массива, а не тип значения, поэтому мы называем метод toString (), таким образом, достигая цели преобразования в строку.
краткое содержание
Большинство объектов неявно преобразуют в типы значений первая попытка вызвать метод значения (). Однако объект даты является исключением. Методы значения () и toString () этого объекта были тщательно переписаны. По умолчанию - вызов метода ToString (), таким как использование оператора +. Если это в других средах арифметической операции, вместо этого будет вызван метод значения ().
var date = new date (); console.log (date + "1"); // Солнце 17 апреля 2014 г. 17:54:48 GMT + 0800 (CST) 1Console.Log (дата + 1); // 1460886885556Console.log (дата * 1); // 1460886885557