English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JavaScript является одним из самых популярных языков программирования в当今 отрасли. Если вы хотите выучить этот язык, избегайте следующих ошибок.
Если мы不小心 используем оператор присваивания (=) вместо оператора сравнения (==) в if-операторе, JavaScript-программа может дать неожиданные результаты.
Если num не равно 20, то этот if-оператор возвращает false:
var num = 0; if (num == 20)Тестировать, посмотреть‹/›
Этот if-оператор возвращает true, потому что 20 равно true:
var num = 0; if (num = 20)Тестировать, посмотреть‹/›
Ассигнование всегда возвращает значение, которое было передано.
Когда люди начинают использовать JavaScript, это, возможно, самая распространенная ошибка.
В обычном сравнении данные типа не важны. Если if-оператор возвращает true:
var a = 20; var b = "20"; if (a == b)Тестировать, посмотреть‹/›
В строгом сравнении данные типа действительно важны. Этот if-оператор возвращает false:
var a = 20; var b = "20"; if (a === b)Тестировать, посмотреть‹/›
Разница между (a == b) и (a === b):
== если a равно b, то возвращает true
=== если a равно b и они都属于Одного типа, то возвращает true
Обычно, вы всегда должны использовать ===, также известный как строгий оператор равенства или оператор идентичности.
Из предыдущих глав можно узнать, что оператор + используется для сложения и сопряжения.
Кроме тогоявляется очисел.
сопряженииявляется оСтрока.
Таким образом, добавление числа в качестве числа и добавление числа в качестве строки приводит к различным результатам:
var a = 10; var b = 5; var c = a + b; // c = 15 var a = 10; var b = "5"; var c = a + b; // c = "105"Тестировать, посмотреть‹/›
Все числа в JavaScript хранятся как 64-битные плавающие точки (Floats).
Все языки программирования (включая JavaScript) имеют трудности с точными значениями плавающей точки:
var a = 0.1; var b = 0.2; var c = a + b; // результат c не будет 0.3Тестировать, посмотреть‹/›
Чтобы решить эту проблему, поможет умножение и деление:
var c = (a * 10 + b * 10) / 10; // c = 0.3Тестировать, посмотреть‹/›
JavaScript позволяет вам разбить предложение на две строки:
var str = "w3codebox Tutorial";Тестировать, посмотреть‹/›
Но, прерывание предложения в середине строки не подействует:
var str = "w3codebox Tutorial";Тестировать, посмотреть‹/›
Если необходимо прервать предложение в строке, то необходимо использовать « 反slash杠(эскейп-символ):
var str = "w3codebox \ Tutorial";Тестировать, посмотреть‹/›
Другим решением является использованиеШаблонные строки(反引号``)字符串。Эти они устраняют необходимость в escaping длинных строк:
var str = `Air Pollution is introduction of chemicals to the atmosphere. It damages environmental balance and causes several diseases.`;Тестировать, посмотреть‹/›
Из-за неправильного放置 точки с запятой, выполняется следующая команда независимо от значения num:
if (num === 45); { // code block }Тестировать, посмотреть‹/›
Запятая в конце определения объекта и массива является законной в ECMAScript 5.
let fruits = ["Apple", "Mango", "Banana", "Orange",];//массив let user = {firstName:"Vishal", lastName:"Choudhary", age:22,};//объект
Однако, добавление запятой в конце массива вызовет крушение Internet Explorer 8.
JSON не допускает следующие запятые.
JavaScript не создает новый диапазон для каждого блока кода.
Это применимо во многих языках программирования, но не в JavaScript.
for (var i = 0; i < 10; i++) { // some code } document.write(i); // Что выйдет?Тестировать, посмотреть‹/›
ИспользованиеletКлючевые слова создают новый диапазон для каждого блока кода:
for (let i = 0; i < 10; i++) { // some code } document.write(i); // Что выйдет?Тестировать, посмотреть‹/›
undefinedЗначение indicates что переменная не имеет значения, или переменная не была объявлена.
nullЗначение indicates что故意不存在任何对象 значения.
Это делает тестирование того, является ли объект пустым, несколько сложным.
можно проверить, является ли типundefinedчтобы проверить наличие объекта:
if (typeof myObj === "undefined")Тестировать, посмотреть‹/›
но вы не можете проверить, является ли объектnullпоскольку, если объектundefinedэто приведет к возникновению ошибки:
if (myObj === null)Тестировать, посмотреть‹/›
Чтобы решить эту проблему, необходимо проверить, является ли объект неundefinedи неnull:
if (typeof myObj !== "undefined" && myObj !== null)Тестировать, посмотреть‹/›