You don't know js(up & going)


Download 424.95 Kb.
Pdf ko'rish
bet46/53
Sana08.11.2023
Hajmi424.95 Kb.
#1757840
1   ...   42   43   44   45   46   47   48   49   ...   53
Bog'liq
You don\'t know JS(up & going)

____________________________________________________________________
function foo(a = 2 {
console.log( a );
}
foo();
// 2
foo( 42 );
// 42
____________________________________________________________________
Просто, правда? Еще и полезно! Но это как раз новый синтаксис, который будет
считаться невалидным в до-ES6 движках. Так что же транспилятор сделает с
этим кодом, чтобы заставить его работать в более старых движках?
____________________________________________________________________
function foo() {
var a = arguments[0] !
(void 0 ? arguments[0] : 2;
console.log( a );
}
____________________________________________________________________
Как видите, он проверяет, равно ли значение `arguments[0]` значению `void 0`
(т.е. `undefined`); если да, то предоставляет значение по умолчанию `2`, иначе
он присваивает то, что было передано.
В дополнение к тому, что теперь можно использовать привлекательный
синтаксис даже в старых браузерах, транспилированный код фактически делает
заданное поведение яснее.
Возможно, просто глядя на версию ES6, вы не задумывались, что `undefined` —
единственное значение, которое не может быть явно задано значением по
умолчанию для параметра, но транспилированный код показывает это гораздо
яснее.
Последняя важная деталь о транспиляторах: о них следует думать как о
стандартной части экосистемы и процесса разработки. JavaScript будет
продолжать эволюционировать намного быстрее, чем прежде, поэтому каждые
несколько месяцев будут добавляться новый синтаксис и новые возможности.
Если вы по умолчанию используете транспилятор, вы в любой момент времени
можете переключиться на новый синтаксис, нежели годами ждать выхода
сегодняшних браузеров из использования.


Есть довольно много отличных транспиляторов на выбор. Вот несколько из них на
момент написания этого текста:

Babel (https://babeljs.io) (бывший 6to5 Транспилирует из ES6 в ES5

Traceur (https://github.com/google/traceur-compiler): Транспилирует из ES6,
ES7 и далее в ES5
Не-JavaScript
На данный момент, мы рассмотрели только вещи, касающиеся самого языка JS.
Реальность такова, что большая часть JS написана для запуска и взаимодействия
с такими средами как браузеры. Добрая часть вещей, которые вы пишете в своем
коде, строго говоря, не контролируется напрямую JavaScript. Возможно это
звучит несколько странно.
Самый распространенный не-JavaScript JavaScript, с которым вы столкнетесь —
это DOM API. Например:

Download 424.95 Kb.

Do'stlaringiz bilan baham:
1   ...   42   43   44   45   46   47   48   49   ...   53




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling