>> А какой смысл выкладывать уроки со сложными темами, в корявом автоматическом переводе? На freecodecamp не все понял, думал может здесь проясню о чем говорится в уроке, но увы..

Время от времени я прохожу и перевожу их. Несколько разделов перевел полностью (Базовые HTML, CSS, JS и React). До этого раздела не добрался еще.
Доступ к проекту бесплатный. За все время только один донат был. Так что извините, что так. Доберусь как-нибудь, и этот раздел переведу.

function Bird(name) { this.name = name; //own property } let duck = new Bird("Donald"); Bird.prototype = { numLegs: 2, eat: function() { console.log("nom nom nom"); }, describe: function() { console.log("My name is " + this.name); } }; console.log(duck.constructor === Bird); // true console.log(duck.constructor === Object) // false console.log(duck instanceof Bird) //false


при таком коде возвращается true, false, false
На freecodecamp:
There is one crucial side effect of manually setting the prototype to a new object. It erases the constructor property! This property can be used to check which constructor function created the instance, but since the property has been overwritten, it now gives false results:
duck.constructor === Bird; duck.constructor === Object; duck instanceof Bird;
In order, these expressions would evaluate to false, true, and true.
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/object-oriented-programming/remember-to-set-the-constructor-property-when-changing-the-prototype
Подразумевался вышеидущий другой код? На самом уроке он не приводился, взял предыдущих уроков
А какой смысл выкладывать уроки со сложными темами, в корявом автоматическом переводе? На freecodecamp не все понял, думал может здесь проясню о чем говорится в уроке, но увы..
умеет кэшировать сессионные ключи от компонентов и прогревать кэш через wget
Просьба: не стоит скидывать больше. Этот раздел я не переводил (он остался в гуг-переводе). Будет время, переведу раздел. Пока же что use as is.
"Hello, World!".match(/Hello/); let ourStr = "Regular expressions"; let ourRegex = /expressions/; ourStr.match(ourRegex);
Здесь первое совпадение вернет ["Hello"], а второе вернет ["expressions"]

Обратите внимание, что синтаксис .match является "обратным" к методу .test, который вы использовали до сих пор:

'string'.match(/regex/); /regex/.test('string');
До сих пор вы рассматривали регулярные выражения для выполнения буквальных совпадений строк. Но иногда вам может понадобиться также сопоставить различия в регистре.

Регистр (или иногда буквенный регистр) - это разница между прописными и строчными буквами. Примерами прописных букв являются A, B и C. Примерами строчных букв являются a, b и c.

Вы можете сопоставить оба случая, используя то, что называется флагом. Есть и другие флаги, но здесь вы сосредоточитесь на флаге, который игнорирует регистр - флаг i. Вы можете использовать его, добавив к регулярному выражению. Примером использования этого флага является /ignorecase/i. Это регулярное выражение может соответствовать строкам ignorecase, IgnoreCase и IgnoreCase.
--------
yandex trаnslate, извиняюсь, может лучше заменить текст на этот? Появляется смысл в тексте, вместо - "Случай (или иногда буквенный регистр) - это разница между прописными и строчными буквами. Примеры прописных букв: "A" , "B" и "C""

Вы также можете искать не более двух шаблонов. (текст урока)
You can also search for more than just two patterns. (yandex transl - Вы также можете искать не только два шаблона.)