Язык JavaScript (краткий обзор для C++ разработчиков)
Данный раздел не даст вам общего введения в JavaScript. Для общего ознакомления с JavaScript есть и другие книги, например, посетите эту страницу на Mozilla Developer Network.
На первый взгляд JavaScript – очень распространенный язык и не сильно отличается от других языков:
function countDown() {
for(var i=0; i<10; i++) {
console.log('index: ' + i)
}
}
function countDown2() {
var i=10;
while( i>0 ) {
i--;
}
}
Но имейте в виду, что JS имеет область видимости функции, а не область видимости блока, как в C++ (смотрите «Функции и область видимости функции»).
Инструкции if... else
, break
, continue
также работают должным образом. switch ... case
также может сравнивать другие типы, а не только целочисленные значения:
function getAge(name) {
// использование строк со switch
switch(name) {
case "father":
return 58;
case "mother":
return 56;
}
return unknown;
}
JS знает несколько значений, которые могут быть ложными, например, false
, 0
, ""
, undefined
, null
. Например, функция по умолчанию возвращает undefined
. Для проверки на ложность используйте оператор идентичности ===
. Оператор равенства ==
для проверки на равенство выполняет преобразование типов. Если возможно, используйте более быстрый и лучший оператор строгого равенства ===
, который будет проверять идентичность (смотрите «Операторы сравнения»).
Под капотом JavaScript имеет свои собственные особенности работы. Например, массивы:
function doIt() {
var a = [] // пустой массив
a.push(10) // добавление числа в массив
a.push("Monkey") // добавление строки в массив
console.log(a.length) // печатает 2
a[0] // возвращает 10
a[1] // возвращает Monkey
a[2] // возвращает undefined
a[99] = "String" // допустимое присваивание
console.log(a.length) // печатает 100
a[98] // содержит значение undefined
}
Также для людей, пришедших с C++ или Java, которые привыкли к объектно-ориентированному языку, JS работает по-другому. JS – это не только объектно-ориентированный язык, это так называемый язык, основанный на прототипах. Каждый объект имеет объект-прототип. Объект создается на основе его объекта-прототипа. Подробнее об этом читайте в книге Дугласа Крокфорда «Javascript the Good Parts».
Чтобы протестировать небольшие фрагменты JS, вы можете использовать онлайн-консоль JS или просто создать небольшой фрагмент кода QML:
import QtQuick 2.5
Item {
function runJS() {
console.log("Your JS code goes here");
}
Component.onCompleted: {
runJS();
}
}