4 полезных утверждения JavaScript, которые вы должны знать
Утверждения JavaScript дают нам возможность реализовать различные типы логики в нашем коде. JavaScript предоставляет нам несколько из них, каждый из которых имеет свое назначение и синтаксис. Среди наиболее известных примеров мы можем найти операторы выражений, операторы итераций, условные операторы и многое другое.
В сегодняшнем посте мы увидим четыре менее распространенных утверждения JavaScript вы, возможно, не знали раньше, но можете углубить свои знания JavaScript и позволить вам писать лучший код.
1. Пустое заявление
Вместо любого оператора JavaScript вы можете добавить пустой оператор, который записывается как одна точка с запятой ;
. Когда интерпретатор JavaScript интерпретирует пустой оператор, код не выполняется, поэтому они могут быть полезны для замените вложенные операторы, которые вы не хотите выполнять.
Например, предположим, что есть переменная лакмус
со значением по умолчанию нейтральный
. На основе значения другой переменной с именем pH
, лакмус
изменения либо кислый
когда рН < 7 or основной
при рН> 7.
Если значение pH
оказывается недействительным, выдается ошибка. Для состояние таким образом, применяются следующие условные выражения:
var litmus = 'нейтральный'; вар рН; если (pH> 0 && pH<7) litmus = 'acidic'; else if(pH>7 && pH<15) litmus = 'basic'; else throw "Invalid pH value";
Однако вышеприведенный набор операторов выдает ошибку, когда pH
значение равно 7, что не должно быть.
когда pH
это 7, лакмус
должен сохранить значение по умолчанию, то есть нейтральный
. Так, для случая, подобного этому, добавьте условие, когда pH
7 с завершающим пустым оператором.
var litmus = 'нейтральный'; вар рН; если (pH> 0 && pH<7) litmus = 'acidic'; else if(pH===7) ; /* empty statement */ else if(pH>7 && pH<15) litmus = 'basic'; else throw "Invalid pH value";
Теперь, когда pH
7, переводчик не выполняет никаких инструкций, и лакмус
сохраняет значение по умолчанию, нейтральный
.
Пустые операторы также могут быть использованы для заполнения массива с помощью за
петля.
var ary = []; для (var i = 0; i < 5; ary[i++] = i) ; /* empty statement */ console.log(ary); // [1, 2, 3, 4, 5]
Как правило, за
За оператором цикла следует подчиненный оператор, который состоит из одного оператора или блока (тот, который заключен в фигурные скобки) будет выполнено. Используя пустой оператор вместо под-оператора, интерпретатору будет нечего выполнять после каждого цикла, поэтому только перекручивание происходит, и условия цикла выполняются.
В приведенном выше примере, ary [i ++] = я
выполняется для каждой итерации цикла как часть условия цикла и массива ичных
инстанцируется со значениями я
.
2. The отладчик
утверждение
В инструментах отладки мы можем добавить маркеры называется контрольные точки к любой строке в исходном коде отметьте строки, с которых инструмент отладчика начнет отладку.
В JavaScript отладчик
заявление работает так же, как точка останова, кроме того, что это добавлен в исходный код напрямую, а не в инструменте. Любой работающий отладчик будет остановить выполнение скрипта когда он достигает отладчик
заявление, чтобы помочь вам отладить код.
Помните, что отладка будет запущена только если скрипт работает в режиме отладки, то есть программа отладки уже выполняется поверх выполнения сценария. Если в данный момент не выполняется отладочная программа во время интерпретации отладчик
Заявление, переводчик продолжит свою работу, как будто ничего не произошло.
В качестве быстрого теста запустите следующий код в Codepen, оставив открытым инструмент отладки браузера:
console.log ( 'tesing'); отладчик; console.log («оператор отладки»);
Вы увидите точку останова, кроме отладчик
утверждение, как показано ниже в инструменте отладчика браузера.
3. Помеченное заявление
В JavaScript вы также можете добавлять метки к определенным операторам. Тем самым вы можете позже перейдем к помеченному утверждению используя его метку в вашем коде, вид словно идти к
Заявление работает на некоторых других языках.
Помеченные операторы могут использоваться только вместе с перерыв
а также Продолжить
заявления, как в JavaScript нет буквального идти к
заявление.
И то и другое перерыв
а также Продолжить
может использоваться только внутри циклических операторов, таких как за
цикл (за одним исключением, перерыв
может быть использован в переключатель
заявление так же). Таким образом, мы можем пометить петли и использовать перерыв
а также Продолжить
контролировать их исполнение.
синтаксис помеченных операторов это просто, вам просто нужно добавить имя метки с помощью следующего двоеточия, как вы можете увидеть это в примере ниже, где петля
это название метки, которую мы добавляем к за
петля.
цикл: for (var i = 0; i<5; i++) if(i===2) continue loop; console.log(i); // 0, 1, 3, 4
Когда значение я
2, выполнение возвращается к циклу вместо продолжения и, следовательно, предотвращает вывод на консоль “2”.
Теперь давайте посмотрим еще один пример с перерыв
заявление. Просто замените Продолжить
ключевое слово с перерыв
в приведенном выше примере, и вы заметите, что вместо того, чтобы вернуться к циклу, как это было сделано с Продолжить
, цикл заканчивается / разрывается вообще.
цикл: for (var i = 0; i<5; i++) if(i===2) break loop; console.log(i); // 0, 1
Приведенные выше примеры были довольно простыми, чтобы вы могли быстро понять, как работают помеченные операторы, но в реальном кодировании метки чаще используются в составных циклах, когда необходимо различать различные циклы, как в следующем примере:
цикл: for (var i = 0; i<4; i++) for(var j=0; j<2; j++) if(i===2 && j===1) break loop; console.log(i+"-"+j);
Здесь внешняя петля брейки в значении 2 для переменной я
и в 1 для J
, и консоль возвращает следующий вывод:
0-0 0-1 1-0 1-1 2-0
4. The с
утверждение
Когда переводчик JS встречает неквалифицированное имя это не указывает, с каким объектом или функцией связан вызов, это ищет цепочку для любого подходящего объекта или функции вызов может относиться к.
Используя с
Заявление, мы можем добавить объект в верхнюю часть цепочки областей видимости, и укажите, с каким объектом связан вызов.
В следующем примере вы можете видеть, что свойства человек
объект вызывается с использованием только их имен внутри с
заявление.
var person = firstName: "John", lastName: "Doe", возраст: "18", страна: "Гренландия"; with (person) console.log ("Привет, меня зовут" + firstName + "" + lastName + ". Мне" + age + "лет, и я живу в" + country + "."); // «Привет, меня зовут Джон Доу. Мне 18 лет, и я живу в Гренландии».
Сравните, как выглядит приведенный выше код без использования с
заявление:
var person = firstName: "John", lastName: "Doe", возраст: "18", страна: "Гренландия"; console.log ("Привет, меня зовут" + person.firstName + "" + person.lastName + ". Мне" + person.age + "лет, и я живу в" + person.country + "." ); // «Привет, меня зовут Джон Доу. Мне 18 лет, и я живу в Гренландии».
Вы можете видеть, с
Оператор может быть отличным способом, если вы работаете со многими свойствами одного и того же объекта..
Обратите внимание, что при использовании с
заявление в строгом режиме не допускается, так как это может вызвать некоторую путаницу.
Кроме того, рекомендуется только использовать с
заявление, если его внутренние заявления используют объект, связанный с с
В противном случае переводчик будет тратить время на изучение объекта, упомянутого с
во-первых, для всех неквалифицированных имен свойств, которые он позже находит внутри с
блок.