function insertFirst(id) {
const li = document.createElement('li'); // создали новый листайтем
li.innerText = "меня тут не стояло";
const parent = document.getElementById(id); // это ul
const first = parent.firstChild; // это первый li до вставки
parent.insertBefore(li, first); // впихнули новый li перед бывшим первым
}
function camelize(str) { // на вход приходит строка
return str // вот тут пока ещё строка
.split('-') // здесь из этой строки сделали массив, разбив её по символу дефиса
// ниже пошёл массив ["lol", "kek", "cheburek"]
.map((word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1)) // что-то сделали с каждым элементом массива
.join(''); // соединяет ['my', 'Long', 'Word'] в 'myLongWord'
}
map()
– он просто применит функцию в нём к каждому элементу массива. На выходе получится новый массив..map((word, index) => index == 0 ? word : word[0].toUpperCase() + word.slice(1)) //**
// то же самое, что:
.map(
function(word, index) {
return index == 0 ? word : word[0].toUpperCase() + word.slice(1);
}
)
// то же самое, что:
.map(
function(word, index) {
if (index == 0) {
return word;
} else {
return word[0].toUpperCase() + word.slice(1);
}
}
)
.map()
вызывает функцию, которая в нём аргументом, для каждого элемента массива и передёт в неё следующие три параметра:array_slice()
. Что будет, если передать его в array_slice()
по ссылке – уменьшится использование памяти?mass[i][0]
Другим способом (введённым в ECMAScript 5) является рассмотрение строки как массивоподобного объекта, в котором символы имеют соответствующие числовые индексы:return 'кот'[1]; // вернёт "о"
При доступе к символам посредством нотации с квадратными скобками, попытка удалить символ, или присвоить значение числовому свойству закончится неудачей, поскольку эти свойства являются незаписываемыми и ненастраиваемыми. Смотрите документацию по методу Object.defineProperty() для дополнительной информации.
const titleCase = str => str
.toLowerCase()
.split(' ')
.map(word => {
const chararr = word.split('');
chararr[0] = chararr[0].toUpperCase();
return chararr.join('');
})
.join(' ');
titleCase("I'm a little pea"); // I'm A Little Pea
titleCase("I love the sky and the trees"); // I Love The Sky And The Trees
/home/user/privacy_policy
лежат два файла index.html
и policy.html
location /privacy-policy {
alias /home/user/privacy_policy;
index index.html;
try_files $uri index.html =404;
}
## вернут содержание index.html:
https://site.ru/privacy-policy
https://site.ru/privacy-policy/
https://site.ru/privacy-policy/index.html
https://site.ru/privacy-policy/trololo.zip
## вернёт содержание policy.html:
https://site.ru/privacy-policy/policy.html
({email} = body)
{
const body = {
email: 'myEmail'
};
console.log(
({email} = body) // Object { email: "myEmail" }
);
}
function Check() {
var price = 0;
var PriceBoxes = $('[name=Price][type=checkbox]:checked');
if (PriceBoxes.length) price = $.makeArray(PriceBoxes)
.map(el => +el.value)
.reduce((p,c) => p+c);
$('.message').val(price);
}
root
, с проверкой корректности конфигов:15 0 0 0 0 nginx -t && nginx -s reload > /dev/null 2>&1
removedNodes
— это NodeList
удалённых элементов.(1) […]
0: MutationRecord
addedNodes: NodeList []
attributeName: null
attributeNamespace: null
nextSibling: #text "
"
oldValue: null
previousSibling: #text "
"
removedNodes: NodeList(1)
0: <li id="to-delete">
length: 1
<prototype>: NodeListPrototype { item: item(), keys: keys(), values: values(), … }
target: <ul id="someElement">
type: "childList"
<prototype>: MutationRecordPrototype { type: Getter, target: Getter, addedNodes: Getter, … }
length: 1
<prototype>: Array []
.bat
или .sh
, в зависимости от платформы.