Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Казалось бы мы изменяем свойство объекта B НО после выполнения данного кода и B.a и A.a будут равны 2. Ситуацию можно исправить используя метод Object.assign().
Метод Object.assign() используется для копирования значений всех собственных перечисляемых свойств из одного или более исходных объектов в целевой объект. После копирования он возвращает целевой объект.
К тому же переменные объявленные с ключевым словом const являются неизменными константами.
const a = 1;
a = 2; // errorconst b = [1,2,3];
b[0] = 'ooops!';var a = [1,2,3];
a['foo'] = 'ooops!';
for (var prop of a) {
console.log(prop); // 1 2 3
}
for (var prop in a) {
console.log(a[prop]); // 1 2 3 ooops!
}нет встроенной инкапсуляций, но ее можно организовать самому. Например вот так
super() можно использовать для вызова методов родительского класса из дочернего.
Символы являются служебными инструментами и поэтому вам вряд ли придётся с ними работать
А вот так очень даже можно:
const b = [1,2,3]; b[0] = 'ooops!';
b = 'error';Не совсем. Нельзя зделать так
Их и через this можно использовать — они же наследуются.
this не поможет.К тому же переменные объявленные с ключевым словом const являются неизменными константами.
Занятный пример про for in / for of и различия:. Вообще я упоминал об этом в статье:
Кроме того, итерационная переменная представляет собой строку, а не число, а значит, если вы собираетесь производить какие — либо подсчеты с переменной, вам потребуется провести конкатенацию строк вместо добавления.
Лучше использовать модули — понятнее будет.Возможно и понятнее, но иногда это не то что нужно. Выбор между этими двумя способами обуславливается предпочтениями программиста.
Их и через this можно использовать — они же наследуются.
Не могли бы вы ваш "простой язык" прогнать через проверку орфографии перед публикацией?
const Fun = (data) => { data.response }
Promise
async/await?
2020 год на носу
Костыли в виде препроцессинга — вот это 2020, который я люблю.
const Fun = (data) => { data.response }
Что эта функция делает? Как вы думаете что она вернет?
$.ajax({
url: "https://myAPIService¶m=10",
success: (data) => myFun(data.response)
});const Fun = (data) => { data.response }
const data = { response: 'some data' };
// вернет undefined, так как вы используете литералы тела стрелочной функции
// это как минимум должно заставить вас задуматься,
// если комментарии выше не сказали ничего
Fun(data);
Ну знаете ли многие и в 2019 не знают о ES6 а кто то и вообще только начинает изучать js.
function myFunction() {
if (true)
let a = 5;
console.log(a); //SyntaxError так как a доступна только в блоке if
if (true)
var b = 5;
console.log(b); //5 так как b доступна во всей функции
}НО такой код вызывает ошибку: "'let' declarations can only be declared inside a block.", кроме того, что он плохо читается.
SyntaxError: lexical declarations can't appear in single-statement context
«let» для такого примера, должен объявляться внутри "{… }"!!!
То есть, вы проверили код в Firefox, он привел к ошибке — но вы все равно его выложили? Вы правда считаете такой подход нормальным?!
Если выражение одно принято не писать кавычки.
В Firefox 68.0.1 код вызывает
SyntaxError: lexical declarations can't appear in single-statement context
Ну да а по отступам не понятно?
Введение в ECMAScript 6 (ES-2015)