1. Классификация
Основные типы данных: неопределенные, нулевые, строковые, логические, число
Сложный тип данных: объект
Атрибут объекта определяется в форме неупорядоченной пары имени и значений (имя: значение).
2. Подробное объяснение
1. Неопределенный : неопределенный тип имеет только одно значение: неопределенное. Когда переменная объявляется с использованием VAR, но не инициализируется, значение этой переменной не определено.
Переменные, содержащие неопределенные значения, отличаются от переменных, которые не были определены. Следующий пример может проиллюстрировать:
Кода -копия выглядит следующим образом:
var demo1; // объявлен, но не инициализирован
предупреждение (Demo1); // не определен
предупреждение (demo2); // Сообщить об ошибке, Demo2 не определяется
2. NULL : Есть только одно значение для нулевого типа: NULL. С логической точки зрения нулевое значение представляет собой пустой указатель объекта.
Если определенная переменная готова к использованию для сохранения объекта в будущем, лучше всего инициализировать переменную к нулю, а не другие значения. Таким образом, просто с непосредственным обнаружением нулевого значения, вы можете знать, сохранила ли соответствующая переменная ссылка на объект, например:
Кода -копия выглядит следующим образом:
if (машина! = NULL)
{
// выполнить некоторые операции на автомобильном объекте
}
Фактически, неопределенные значения получены из нулевых значений, поэтому ECMA-262 указывает, что их тесты на равенство должны вернуть true.
предупреждение (неопределенное == null); //истинный
Хотя нулевые и неопределенные имеют такие отношения, их использование совершенно отличается. В любом случае, нет необходимости явно устанавливать значение переменной для неопределенной, но одно и то же правило не относится к нулю. Другими словами, до тех пор, пока переменная, предназначенная для сохранения объекта, еще не сохранила объект, переменной должна быть явно разрешена сохранить нулевое значение. Это не только отражает соглашение NULL в качестве указателя для нулевых объектов, но также помогает дальнейшему различению NULL и неопределенного.
3. Boolean : логический тип имеет два значения: true и false. Эти два значения не совпадают с числовыми значениями, поэтому TRUE не обязательно равно 1, и FALSE не обязательно равняется 0.
Следует отметить, что буквальные значения логического типа чувствительны к случаю, то есть ни верно, ни ложно (и другие формы смешивания случая) являются логическими значениями, но являются просто идентификаторами.
Хотя существует только два буквальных значения для логических типов, все типы значений в JavaScript имеют значения, эквивалентные значениям этих двух логических значений. Чтобы преобразовать значение в соответствующее логическое значение, вы можете вызвать функцию преобразования типа Boolean (), например:
Кода -копия выглядит следующим образом:
var message = 'hello world';
var messageasboolean = boolean (сообщение);
В этом примере строковое сообщение преобразуется в логическое значение, которое хранится в переменной Massageasboolean. Функция Boolean () может быть вызвана значениями любого типа данных, и всегда будет возвращено логическое значение. Что касается того, является ли возвращаемое значение истинным или ложным, оно зависит от типа данных для преобразования значения и его фактического значения. В следующей таблице показаны правила конверсии для различных типов данных и их объектов.
Эти правила преобразования очень важны для понимания автоматического выполнения соответствующих логических преобразований в операторах управления потоком (например, операторы, например):
Кода -копия выглядит следующим образом:
var message = 'hello world';
if (сообщение) // эквивалентно if (boolean (message) == true)
{
Alert («значение верно»); // значение верно
}
Из -за этого автоматического логического преобразования крайне важно точно знать, какие переменные используются в операции управления потоком.
4. Номер: целое число и плавающая точка
4.1 целое число: при выполнении расчетов все восьмидесятнические и шестнадцатеричные числа будут преобразованы в десятичное значение
4.2. Например: результат 0,1+0,2 составляет не 0,3, а 0,3000000000000000000004. Например:
Кода -копия выглядит следующим образом:
a = 0,2;
b = 0,1;
if (a+b == 0,3) {
оповещение ("Привет");
}
еще{
оповещение ("Привет");
}
Результат появится «Привет», так что не тестируйте конкретное значение плавающей запятой.
4.3 NAN: НЕ ЧЕМ НЕМЕРИЧЕСКОЕ НОМЕР, это значение используется для представления случая, когда операнд, который первоначально хотел вернуть значение, не вернул значение (это не принесет ошибки).
Сама Нэн имеет две необычные характеристики. Во-первых, любая операция с участием NAN (например, NAN/10) вернет NAN, функцию, которая может вызвать проблемы в многоэтапных расчетах. Во -вторых, NAN не равна какому -либо значению, включая саму NAN. Например:
Кода -копия выглядит следующим образом:
предупреждение (NAN == NAN); //ЛОЖЬ
В JavaScript есть функция Isnan (). Эта функция принимает параметр, который может быть любого типа, и функция поможет нам определить, является ли этот параметр «не численным значением». После получения значения Isnan () пытается преобразовать это значение в числовое значение. Некоторые значения, которые не являются численными значениями, преобразуются непосредственно в числовые значения, такие как строка «10» или логические значения. Любое значение, которое не может быть преобразовано в числовое значение, приведет к возврату этой функции. Например:
Кода -копия выглядит следующим образом:
блюд (Isnan (NAN)); //истинный
блюд (Isnan (10)); // false (10 - числовое значение)
предупреждение (Isnan ("10")); // false (может быть преобразовано в числовое значение 10)
блюд (Isnan ("Blue")); // true (не может быть преобразовано в числовое значение)
предупреждение (Isnan ("bule123")); // ture (не может быть преобразован в числовое значение)
блюд (Isnan (True)); // false (может быть преобразовано в значение 1)
Существует 3 функции, которые могут преобразовать ненуковые значения в числовые значения: number (), parseint () и parsefloat (). Первая функция, а именно номер функции преобразования (), может использоваться для любого типа данных, в то время как две другие функции используются специально для преобразования строк в числовые значения. Эти 3 функции будут возвращать разные результаты для одного и того же ввода.
Правила конверсии функции number () следующие:
● Если это логическое значение, TRUE и FALSE будут заменены на 1 и 0 соответственно.
● Если это числовое значение, это просто простой проход и возврат.
● Если это нулевое значение, верните 0
● Если не определено, верните NAN
● Если это строка, следуйте следующим правилам:
○ Если строка содержит только числа, преобразуйте ее в десятичное значение, то есть «1» станет 1, «123» станет 123, а «011» станет 11 (ведущий 0 игнорируется)
○ Если строка содержит допустимый формат плавающей запятой, такой как «1.1», она преобразуется в соответствующий номер плавающей запятой (также ведущий 0 будет игнорироваться).
○ Если строка содержит допустимый шестнадцатеричный формат, такой как «0xf», она преобразуется в десятичное целочисленное значение того же размера
○ Если строка пуста, преобразуйте ее в 0
○ Если строка содержит символы, отличные от формата выше, преобразовать их в NAN
● Если это объект, вызовите метод значения объекта (), а затем преобразуйте возвращенное значение в соответствии с предыдущими правилами. Если результатом конверсии является NAN, используется метод ToString () объекта, а затем возвращаемое строковое значение преобразуется в очередь в соответствии с предыдущими правилами.
Кода -копия выглядит следующим образом:
var num1 = number ("hello world"); // НАН
var num2 = number (""); // 0
var num3 = number ("000011"); // 11
var num4 = number (true); // 1
Поскольку функция number () является более сложной и необоснованной при преобразовании строк, функция parseint () чаще используется при обработке целых чисел, а функция parsefloat () часто используется при обработке чисел с плавающими точками. Для получения подробной информации, пожалуйста, см.
5. строка
Тип строки используется для представления последовательности символов, состоящих из нуля или более 16-битных символов Unicode, то есть строки. Строка может быть представлена отдельными кавычками (') или двойными кавычками (").
Кода -копия выглядит следующим образом:
var str1 = "hello";
var str2 = 'hello';
Длина любой строки может быть получена путем доступа к ее свойству длины.
Кода -копия выглядит следующим образом:
предупреждение (str1.length); // Вывод 5
Есть два способа преобразования значения в строку. Первый - использовать метод ToString (), который имеет почти каждое значение.
Кода -копия выглядит следующим образом:
var возраст = 11;
var ageasString = age.toString (); // строка "11"
var нашел = true;
var foundasstring = sud.toString (); // строка "true"
Числовые, логические, объектные и строковые значения имеют методы toString (). Но нулевые и неопределенные значения не имеют этого метода.
В большинстве случаев вызов метода ToString () не должен передавать параметры. Однако при вызове метода ToString () числового значения вы можете передать параметр: кардинальность выходного значения.
Кода -копия выглядит следующим образом:
var num = 10;
оповещение (num.ToString ()); // "10"
оповещение (num.toString (2)); // "1010"
оповещение (num.toString (8)); // "12"
оповещение (num.toString (10)); // "10"
оповещение (num.toString (16)); // "a"
Из этого примера мы видим, что, указав кардинальность, метод ToString () изменит выходное значение. Значение 10 может быть преобразовано в различные численные форматы при выводе в соответствии с различной кардинальностью.
Не зная, является ли значение, которое необходимо преобразовать, нулевым или неопределенным, вы также можете использовать функцию преобразования string (), который может преобразовать любой тип значения в строку. Функция String () следует следующим правилам преобразования:
● Если значение имеет метод ToString (), метод вызывается (без параметров), а соответствующий результат возвращается.
● Если значение равна нулю, верните «NULL»
● Если значение не определен, верните «неопределенные»
6. объект
Объекты на самом деле являются набором данных и функций. Объекты могут быть созданы путем выполнения нового оператора, за которым следует имя типа объекта, который будет создан. Создавая экземпляр объекта типа и добавляя в него свойства и (или) методы, вы можете создать пользовательский объект.
var o = new Object ();
Любые свойства и методы типа объекта также существуют в более конкретных объектах. Каждый экземпляр объекта имеет следующие свойства и методы:
● Конструктор (конструктор) - сохраняет функцию, используемую для создания текущего объекта
● HasownProperty (PropertyName) - используется для проверки того, существует ли данное свойство в текущем экземпляре объекта (не в прототипе экземпляра). Где, имя свойства (свойство, как параметр, должен быть указан в строковой форме (например: O.HashownProperty («Имя»))))
● ISprototypeof (Object) - используется для проверки того, является ли входящий объект прототипом другого объекта
● ProperateSeNumerable (PropertyName) - используется для проверки того, можно ли перечислять заданное свойство с помощью оператора FOR -In.
● ToString () - Возвращает строковое представление объекта
● valueof () - Возвращает строку объекта, числовое или логическое представление. Обычно возвратное значение метода ToString () одинаково.
3. Маленький тест
Кода -копия выглядит следующим образом:
Typeof (NAN)
тип (бесконечность)
typeof (null)
typeof (не определен)
Многие интервью зададут вышеупомянутые вопросы ~~
Выше приведено введение в эти 6 типов данных JavaScript. Вы ясно поняли это? Я надеюсь, что вы сможете улучшить после прочтения этой статьи.