Язык JavaScript (краткий обзор для C++ разработчиков)

Добавлено 29 мая 2022 в 10:24

Данный раздел не даст вам общего введения в 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();
  }
}

Теги

GUI / Графический интерфейс пользователяJavaScriptQMLQtПрограммирование

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.