Минин
Современный скриптовый (встраиваемый язык) программирования. Т.е. это язык, который сам по себе существовать не может. Он обязательно встраивается в какую-то host-среду и существует исключительно благодаря API. Невозможно просто взять язык JavaScript и на нём самостоятельно что-то написать, не существует виртуальной машины, которая бы вам позволила это сделать. У вас обязательно должна быть какая-то host среда (браузер, Node JS). По большому счету любой человек может взять и собрать себе свой любимый JavaScript создав host среду.
Огромная проблема у начинающих вызывает дифференциации того, что непосредственно относится к самому языку JavaScript а что к API управляемой host средой. Например тот же setTimeOut это не в JavaScript, а host-среда. Браузер берёт стандарт HTML 5 и именно в стандарте HTML 5 описано поведение этого API. NodeJS предоставляет такой же API, но даёт иной вариант взаимодействия, нежели тот, что предоставляет браузер с HTML 5. Несмотря на то, что в NodeJS это постарались сделать максимально совместимо.
Самое важное отличие скриптового языка от любого другого это то, что в этом языке нет своего ввода-вывода. На чистом JavaScript без использования какого-либо API вы не можете откуда-то получить данные и куда-то эти данные отправить.
JS: Блочная (if else try catch {}) Глобальная Функциональная (funct)
Глобальные Локальные
?? pups -> A0FF9CB chups -> A0FF9CB
JS: все примитивы иммутабельны, мутабельны обычные объекты, массивы, функции и тд Типы данных JS: Inf.
- Объект
- Примитивы string number bool null undefined NaN Иммутабельные Мутабельные
document.write( ("b" + "a" + +"a" + "a").toLowerCase() );
console.log("b" + "a" + +"a" + "a");
number +-
const Object = { // свойство Class private protected x: 1
// Method: OOP Class function set }
Object.x = 2; Object['x'] = 2;
let foo = "bar" let bar = foo
pups A0FF9CB chups A0FF9CB
Python let bar = foo.copy()
Что надо сделать во вью чтобы отключить реактивность?
!== ==!
!= =!
<>
= <=
Как сравнить 2 объекта у которых свойства не в одинаковом порядке?
[1, "apple", 3] === [1, "apple", 3] false ? потому что это не приметивы и JS их сравнивает по ссылкам
cmp compare
Замыкание?
const a = () => {console.log(this)}; a(); Тут мы вырывыемся из функции в движок V8? И нам доступен огромный мир JS'a
this внутри функции помогает вырваться из контекста текущей функции в контекст вызвавшей её функции
defineProperty() ???
...props - это rest оператор, как он работает? spread ... name(...rest) {return [...spred]}