Programming Dictionary
Внимание! Ссылки на видео по каждой теме помещены в соответствующие репозитории.
Оглавление:
Boolean
предполагает два значения
true
и false
и логические операции над ними, тип Null
предполагает одно
значение null
, а тип Number
множество рациональных чисел с дополнительными
ограничениями на минимальное и максимальное значение, а так же ограничения на
точность и математические операции + - * ** / % ++ -- > < >= <= & | ~ ^ << >>
.
[5, 'Kiev', true, { city: 'Beijing' }, a => ++a ].map(x => typeof x);
Object, Function, Array
.
let cityName = 'Beijing';
const WATCH_TIMEOUT = 5000;
let flagName = false;
Иногда флагами могут называть не логические, а
перечислимые типы.(len - 1) * f(x, INTERVAL)
{}
,
(+ a b)
, begin end
, отступы в Python.{ a: 10, b: 10, sum() { return this.a + this.b; } }
const cities = ['Tehran', 'Yalta', 'Potsdam'];
{}
или экземпляр класса new ClassName()
или как экземпляр прототипа new PrototypeConstructor()
или возвращен из фабрики.
const person = { name: 'Marcus', city: 'Roma', born: 121 };
const person = new Person('Marcus', 'Roma', 121);
class Point { constructor(x, y) { this.x = x; this.y = y; } }
class Rect { move(x, y) { this.x += x; this.y += y; } }
class Square extends Rect { constructor(x, y, m) { super(x, y, m, m); } }
class Point { static from(point) { return new Point(this.x, this.y); } }
const rect = new Rectangle(-50, -50, 100, 150);
const rect = { a: { x: -50, y: -50 }, b: { x: 100, y: 150 } };
const cities = new Array(1000);
const cities = ['Tehran', 'Kiev', 'Yalta', 'Beijing', 'Potsdam', 'London'];
this
. Все функции, кроме стрелочных, могут быть связаны с объектным контекстом.
Объект связан с this
если функция является методом этого объекта, если функция
привязана к нему через bind
или вызвана через apply
и call
.function sum(a, b) { return a + b; }
const max = function max(a, b) { return a + b; };
const max = function(a, b) { return a + b; };
const max = (a, b) => { return a + b; };
const max = (a, b) => (a + b);
g
из функции f
, то g
будет видеть контекст
функции f
, так же, как и свои аргументы;f
возвращает g
, то говорят, что экземпляр g
замкнул контекст f
;const add = a => b => a + b;
const hash = (data = {}) => (key, value) => (data[key] = value, data);
const expr2 = add(pow(mul(5, 8), 2), div(inc(sqrt(20)), log(2, 7)));
(len - 1) * f(x, INTERVAL)
{}
, (+ a b)
, begin end
, отступы в Python.{ a: 10, b: 10, sum() { return this.a + this.b; } }
const compose = (f1, f2) => x => f2(f1(x));
const compose = (...funcs) => (...args) => (funcs.reduce((args, fn) => [fn(...args)], args));
const partial = (fn, x) => (...args) => fn(x, ...args);
const result = curry((a, b, c) => (a + b + c))(1, 2)(3);
map
).apply
.chain
.Object.assign(target, { field1, field2 }, { field3 });
total(april)(may)(july)
или методов
array.filter(f1).reduce(f2)