1. НЕ ЧЕМЕРНЫЙ тип к числовому значению
При использовании конверсии Number() :
При использовании parseInt() для преобразования:
var num1 = parseint ("10", 2); // 2 parse var num2 = parseint ("10", 8); // 8 parse var num3 = parseint ("10", 10); // 10 parse var num4 = parseint ("10", 16); // 16 Парси При использовании конверсии parseFloat() :
Первое различие между Parsefloat и Parseint состоит в том, что он сталкивается с неверным числовым символом с плавающей точкой при анализе струны, что гораздо больше, чем Parseint.
Возвращает 0 при диапазоне шестнадцатеричных значений
var num = parsefloat ("0xa"); // 0var num = parseint ("0xa"); // 10Функция Parsefloat не имеет второго параметра, который указывает кардинальность, поэтому анализируются только десятичные значения.
Если строка является целым числом, она возвращает целое число вместо номера с плавающей запятой
var num = parseFloat("2.125e7"); //31250000
2. Используйте ToString () для выходных значений в разных цифрах
Эта панель применяется к целым числам, мы можем использовать ToString () для возврата целых чисел в любом двоичном формате.
var num = 10; alert (num.toString ()); //"10"alert(num.tostring(9)); //"11"alert(num.tostring(16)); // "a"
3. Обратите внимание на NAN и бесконечность, когда операторы битов
При использовании битовых операторов для NAN и бесконечности оба значения рассматриваются как 0. Если оператор бита применяется к немуршнному значению, значение преобразуется в числовое значение с использованием функции number ().
Еще одна вещь, которую следует отметить, это то, что неподписанный правый сдвиг от отрицательных чисел, и неподписанный правый сдвиг состоит в том, чтобы заполнить пустое пространство 0, в отличие от подписанного правого сдвига с битами знаков, поэтому неподписанный правый сдвиг и подписанный правый сдвиг положительных чисел одинаковы, но отрицательное число отличается. Операция правого смены без знака будет рассматривать отрицательный двоичный код как положительный двоичный код, а отрицательное число представлено в форме комплемента, что приведет к тому, что результат неподписанной правой сдвига очень отличается.
var oldvalue = -64; var newvalue = oldvalue >>> 5
4. Специальные численные операции
Для численных операций, если есть операнд, который является NAN, результатом является NAN.
Используйте операцию с добавлением или вычитанием один в одном (+,-, плюс или отрицательный знак) для нечисленных значений. Если значение не может быть преобразовано в числовое значение (преобразовано с использованием метода number ()), NAN возвращается.
var s1 = "01", s2 = "1.1", s3 = "z", b = false, o = {valueof: function () {return -1;}}; s1 = +s1; // 1 + изменение на -1S2 = + s2; //1.1 -1.1s3 = +s3; // nan nanb = +b; // 0 0o = -o; //-1 1Умножение бесконечности и 0 равны NAN, а умножение без 0 -это бесконечность и -интичность, в зависимости от знака множителя. Умножение бесконечности и бесконечности равна бесконечности.
var num1 = бесконечность, num2 = 0, num3 = -2, num4 = -infinity; alert (num1 * num2); // nanalert (num1 * num3); //-InfinityAlert (num1 * num4); //-Бесконечность
Ноль делится на ноль и является NAN, а ненулевые числа, разделенные на ноль, -это бесконечность или -интичность. Бесконечность, разделенная на бесконечность как NAN
Для работы модуля, следующее уравнение содержит:
Infinity%2 = NAN; 2%-infinity = 2; 0%бесконечность = 0; // до тех пор, пока делитель равен 0, делитель не является NAN, результат - 0INFINITH%0 = NAN; // делитель может быть любым числом, и пока делитель равен 0, результатом является Naninfinity%Infinity = NAN
Операция с добавлением: если оба операнда являются строками, + становится строковой конкатенацией. Если один является строкой, а другой - числовое значение, преобразовать числовое значение в строку, а затем объединить строку. Если операнд является объектом, логическое значение сначала вызовет их метод значения. Если ничего, вызовите метод ToString. Затем, исходя из типа возвращаемого значения, определите, следует ли подключить знак + к строке или добавить.
Infinity + -infinity = NAN; var p = {valueof: function () {return -1; }}; var num = 1; var result = num +p; alert (result); // 0 добавить var p = {valueof: function () {return "не num"; }}; var num = 1; var result = num +p; alert (result); // 1 НЕОБХОДИТЕСЬ НОМЕННОЙ СТРЕСАОперация вычитания: операция вычитания очень похожа на операцию добавления, а обработка объектов такая же, поэтому я больше не буду объяснять это.
Infinity - Infinity = nan; -infinity - -infinity = nan;
5. Использование реляционных операторов
Реляционные операторы меньше (<), больше, чем (>), меньше или равны (<=) и больше или равны (> =)
Пока есть одно значение, будет выполнено числовое сравнение, а другое не является численным значением, и оно будет преобразовано в числовое значение. Сначала используйте значение для объекта, а затем используйте ToString. На самом деле, независимо от того, какая операция выполняет объект, это правда. Если есть значение, то значение используется для возврата значения, в противном случае ToString используется для возврата значения.
Оба являются строками, затем сравните значение кодирования символов строки (значение ASCII)
Что касается первого, следует отметить, что, когда строка является числовым значением, когда строка не может быть преобразована в числовое значение, следующая ситуация возникнет как NAN.
var result = "a" <3; // false a преобразует a в nanvar result = "a"> = 3; // Неверно любое число по сравнению с НАН.
6. == и ===
В JavaScript, если две стороны уравнения имеют разные типы, или включен только один объект, то сравнение будет разделено на две ситуации, а сравнение после преобразования напрямую сравнивается без преобразования. == - это преобразовать первым и сравнить, === - это сравнение напрямую без преобразования. Для === он возвращает ложь, пока типы не равны. Для == он разделен на следующие ситуации:
True будет преобразован в 1, False будет преобразован в 0.
Сравнивая строки с числовыми значениями, строки преобразуются в числовые значения.
Если на обеих сторонах уравнения есть только один объект, этот объект вызовет значение для получения основного типа, например, вызов методу ToString без значения метода. Если обе стороны являются объектами, преобразование не будет сделано.
var p = {"name": "a"}; var q = {"name": "a"} var o = p; alert (q == p); // Неверно адреса объектов, указанных по p и q, различны, хотя содержание объекта является одинаковым оповещением (O == p); //истинныйВот специальные сравнения
null == undefined // truenan! = nan // truenan == nan // false "nan" == nan // falseundefined == 0 // falsenull == 0 // false
7. For-In Заявление
Порядок вывода операторов непредсказуемы, и порядок может варьироваться в зависимости от браузера.
Когда переменная итерация не является нулевой или неопределенной, ошибка больше не будет брошена под Ecmascript 5, но тело цикла не будет выполнено. Если вы хотите совместимости вперед, вы будете судить, что он не является нулевым или неопределенным до цикла.
8. Заявление SWETHC
Переключатель может использовать любой тип данных.
Значение случая может быть постоянной, переменной и выражением.
В операторе Switch используется конгруэнтный оператор сравнения (===) при сравнении значений.
var num = 25; switch (true) {case num <0: alert ("less 0"); перерыв; case num> = 0: alert ("более 0"); перерыв; по умолчанию: alert ("ошибка");}9 использование функций
Если в функции или возвращении нет оператора возврата, нет никакого возвращаемого значения, функция вернет неопределенную.
Определение функции не согласуется с параметрами функции при ее вызове. Другими словами, два параметра (формальные параметры и фактические параметры) не имеют соединения. Переменные, предоставленные при определении функции, только более удобны в использовании. Даже если они не определены, параметры, передаваемые функции, могут быть получены (через аргументы []).
функция Howmanyargs () {alert (arguments.length);} Howmanyargs ("a"); // 1howmanyargs ("a", "b"); // 2howmanyargs (); // 0Взаимосвязь между формальными параметрами и аргументами [] заключается в следующем, обращая внимание на разницу между строгим режимом и нетронутым режимом.
функция Howmanyargs (ss) {arguments [0] = "test"; аргументы [1] = "test2" оповещение (аргументы [0]); // тестирование оповещения (аргументы [1]); // test2 оповещение (SS); // тест} Howmanyargs ("a"); Функция Howmanyargs (ss) {"используйте строгие" аргументы [0] = "test"; аргументы [1] = "test2" alert (аргументы [0]); // testalert (аргументы [1]); // test2alert (ss); // a} Howmanyargs ("a");10. Использование параметров функции
При определении функции мы напишем использованные параметры в скобки функции, но она будет достаточно негибким, когда будет несколько дополнительных параметров. В настоящее время мы можем использовать объекты для инкапсуляции нескольких дополнительных параметров.
функция DisplayInfo (args) {var output = ""; if (typeof args.name == "string") {output + = "name:" + args.name + "/n"; } if (typeof args.age == "number") {output + = "age:" args.age + "/n"; } alert (output); } displayinfo ({name: "nicholas", возраст: 29}); DisplayInfo ({name: "greg"});