Во -первых, сначала сделаем несколько вопросов! Чтобы объединиться, я не смешиваю эти вопросы. В вопросах интервью я часто смешиваю эти вопросы, которые сделают вас более запутанным. Чтобы сделать его более удобным для демонстрации, я написал здесь несколько вопросов в модулях, чтобы вы могли прочитать это!
Неявное преобразование строк оператора
умножение
console.dir ("--------------------------"); console.dir (5*"5"); console.dir (5*"a"); Console.Dir (5*NAN); console.dir (5*null); console.dir (5*не определен); Console.dir (5*5); console.dir("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------разделение
console.dir ("----------------------"); console.dir (5/"5"); console.dir (5/"a"); Console.dir (5/nan); console.dir (5/null); console.dir (null/5); console.dir (5/undefined); Console.dir (5/5); Console.dir (5/0); console.dir (0/5); console.dir (0/0); console.dir ("----------------------------"); console.dir ("---------------------------------");Возьмите оставшиеся и найдите модель
console.dir ("-------------------------------"); Console.dir (16%"5"); console.dir (5%"a"); Console.dir (5%NAN); Console.dir (5%NULL); Console.dir (null%5); Console.dir (5%неопределенного); Консоль.dir (5%5); Console.dir (5%0); Console.dir (0%5); console.dir (0%0); console.dir("----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------добавление
console.dir ("-----------------------"); console.dir (16+ "5"); console.dir (5+ "a"); Console.dir (5+nan); console.dir (5+null); console.dir (5+не определен); Console.dir (5+5); console.dir («сумма двух чисел:+5+5); console.dir («сумма двух чисел -+(5+5)); console.dir("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Вычитание
console.dir ("----------------------"); Console.dir (16- "5"); console.dir (5- "a"); Console.dir (5-nan); Console.dir (5-null); console.dir (5-nused ound); Console.dir (5-5); Console.dir (5-rue); console.dir (5- "true); console.dir (5-" "); console.dir (« Разница между двумя числами-«+5-5); консоль.dir (« Разница между двумя числами-«+(5-5)); консоль.dir (« ---------------------- »); Консоль.dir («-------------------------------------------------------------------------------------------------------------------); Console.dir ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Реляционные операторы
console.dir ("---------------------"); console.dir (16> "5"); console.dir ("16"> "5"); console.dir (5 <"a"); console.dir (5> = nan); Console.dir (5 <NAN); console.dir (nan> = nan); console.dir (5> = null); console.dir (5> = не определен); console.dir (5> = 5); console.dir (5> = true); console.dir (5> = "true"); console.dir (5> = ""); console.dir ("кирпич"> "алфавит"); console.dir ("кирпич"> "алфавит"); console.dir ("---------------------");умножение
console.dir (5*"5"); // 25 console.dir (5*"a"); // nan console.dir (5*nan); // nan console.dir (5*null); 0 console.dir (5*undefined); // nan console.dir (5*5); // 25
Давайте поговорим о принципе неявного преобразования умножения:
1. Если все два значения являются числами, то выполните операции умножения напрямую. (Я считаю, что каждый может это сделать, как математика начальной школы, и вы должны обратить внимание на символы чисел). Если значение продукта превышает численную диапазон представления Ecmascript, то верните бесконечность (положительную бесконечность) или -инфинтность (отрицательная бесконечность)
2. Если число является NAN, то результат - NAN
3. Если бесконечность умножается на 0, результат - NAN
4. Если один оператор является числом, а другой не является числовым значением, то сначала используйте функцию number (), чтобы преобразовать его, и умножьте преобразованное значение с номером. Если конвертированный результат появляется NAN, то результат - NAN.
разделение
console.dir (5/"5"); // 1 преобразовать символы в числа и разделить консоль.dir (5/"a"); // nan console.dir (5/nan); // nan console.dir (5/nul 0/5 IS 0 console.dir (5/undefined); // nan undefined конверты с номером (), и результатом является NAN Console.dir (5/5); // 1 Консоль.dir (5/0); // Infinity Console.dir (0/5); // 0 Консоль.dir (0/0);
Давайте поговорим о принципе неявного преобразования дивизии:
Подобно умножению, единственным, что является то, что 0/0 результатом является NAN
Возьмите оставшиеся и найдите модель
Наиболее распространенное использование в проекте - это найти нечетные и четные числа. Мы часто используем число с 2 для расчета баланса. Если результат равен 0, то число является четным числом, и если результат равен 1, то число является нечетным номером.
Проверьте приведенную выше тему:
Console.dir (16%"5"); // 1 преобразовать строку от 5 до 5 до числа (), а затем вычислить оставшуюся консоль.dir (5%"a"); // nan console.dir (5%NAN); // nan console.dir (5%NULL); // NAN преобразовать null через число (), результат - 0, а затем рассчитывать 5%0, результатом является NAN Console.dir (NULL%5); // 0 то же самое, что и выше 0%5, результат - 0 консоль.dir (5%не определен); // nan console.dir (5%5); // 0 console.dir (5%0); // nan console.dir (0%5); // 0 console.dir (0%0); // nanconsole.dir (Infinity%Infinity); // nanconsole.dir (5%Infinity); // 5 Консоль.dir (Infinity%5); // НАН
Давайте поговорим о принципе неявного преобразования остатков:
Как умножение, позвольте мне поговорить о чем -то особенном! Мы все знаем концепции дивидендов и делителей, которые мы узнали в начальной школе.
1. Дивиденд бесконечен, а дивиденд является конечным значением, поэтому результат - NAN
2. делитель является конечным значением, а делитель равен 0, тогда результат - NAN
3. Результат бесконечности бесконечности - НАН
4. Дивиденд является конечным значением, дивиденд является бесконечным значением, и результатом является делитель.
5. Разделенное число равно 0, результат 0 - 0
Вычитание
Взгляните на пример выше!
Console.dir (16- "5"); // 11 console.dir (5- "a"); // nan console.dir (5-nan); // nan console.dir (5-null); // 5 console.dir (5-undefined); // nan console.dir (5-5);//0 консоль. console.dir (5- «true»); // nan console.dir (5-""); // 5 console.dir (5-infinity); //-Infinity Console.dir (Infinity Infinity); // nan console.dir ("Разница между двумя числами-"+5-5); // nan console.dir (разница между двумя числами "+5-5); Числа 0Давайте поговорим о принципе неявного преобразования вычитания:
Как и выше, я не буду говорить об одном и том же, я расскажу об уникальном вычитании.
1. Результат бесконечности-НАН-НАН
2. -infinity Infinity Result
3. Результатом количества минус бесконечность является - бесконечность
4. Infinity-(-Infinity) Результатом является бесконечность
5. Если операнд является объектом, вызывается метод объекта. Если результат - НАН, результатом является НАН. Если нет значения метода, то вызовите метод ToString () и преобразуйте полученную строку в числовое значение.
Реляционные операторы
Реляционные операторы равномерно возвращают истинную или ложную
console.dir (16> "5"); // true console.dir ("16"> "5"); // false console.dir (5 <"a"); // ложная консоль.dir (5> = nan); // false console.dir (5 <nan); // ложная консоль. console.dir (5> = undefined); // false console.dir (5> = 5); // true console.dir (5> = true); // true console.dir (5> = не определено); // ложная консоль.dir (5> = 5); // true Console.dir (5> = true);//true console.dir. console.dir (5> = ""); // true console.dir ("Кирпич"> "Алфавит"); // Неверно. Значение кодирования строки B равен 66, в то время как строковая кодирование A IS 97. Следовательно, ложная консоль.Давайте поговорим о принципе неявного преобразования реляционных операторов:
Это все же, как и выше, я не буду говорить то же самое.
Если два сравниваемых числа являются строками, будут сопоставлены значения, кодируемые строкой, соответствующие строке.
Дополнительная операция
Причина, по которой я наконец сказал, что неявное преобразование операций с добавлением, заключается в том, что неявное преобразование операций с добавлением отличается от предыдущих. Все предыдущие символы оператора, до тех пор, пока один - это число, другой также использует number () для преобразования номеров по умолчанию. Операция добавления отличается. Пока одна из операций с добавлением является строкой, другая также будет преобразована в строку, а затем выполняется сплайсинг строки!
console.dir (16+ "5"); // 156 console.dir (5+ "a"); // 5a console.dir (5+nan); // nan console.dir (5+null); // 5 console.dir ('5'+null); // 5null Консоль console.dir (5+5); // 10 console.dir («сумма двух чисел составляет«+5+5); // сумма двух чисел составляет 55 console.dir («сумма двух чисел -«+(5+5); // сумма двух чисел 10 - 10Давайте поговорим о принципе неявного преобразования операторов с добавлением:
1. Один - это строка, а другой также будет преобразован в строку для сплайсинга. Если один из них является строкой, а другой - нулевой или неопределенной, то добавление, нулевое или неопределенное, вызовет метод String (), чтобы получить строку «NULL» или «неопределенное», а затем сплачивать его.
2. Если число добавляется с нулевым или неопределенным, то нулевые или неопределенные преобразуются в число (), а затем добавляют.
3. Остальные принципы похожи на других, поэтому я не буду много говорить.
Бикваль неявное преобразование
Запустите следующий код один раз, и я считаю, что вы поймете его естественно ~
var a; console.dir (0 == false); // trueconsole.dir (1 == true); // trueconsole.dir (2 == {valueof: function () {return 2}}); // trueconsole.dir (a == nan); // falseconsole.dir (nan == nan); Undefined); // falseconsole.dir (1 == не определено); // falseconsole.dir (2 == {toString: function () {return 2}}); // trueconsole.dir (undefined == null); // trueconsole.dir (null == 1); toString: function () {return 1}, valueof: function () {return []}} == 1); // trueConsole.dir (1 == "1"); // trueconsole.dir (1 === "1"); // Неверно