1) Плагин по созданию мультиязычного сайта
2) Плагин звонка на whatsАpp
3) Плагин обработки и валидации сущестсвующей формы.
/%postname%/
Как подходить к организации кода для сайта?
Мне непонятно, как в зависимости от типа сайта, мы подбираем технологию для организации кода. Как понять, какая технология и для какого сайта уместна. И вообще, какие технологии существуют?
В сети нет нормальной статьи/видео по этой теме. Чуть ниже, я напишу просто список непонятных слов, фраз, которые многих вгоняют в ступор.
"подходы разделение кода, шаблонизация, модули, МVC, state, организация кода, биндинг, реактивное программирование, SPA, MPA, Virtual DOM, Нода, Веб-компоненты, Templates, Custom Elements API.” … Что и откуда выходит? Есть ли какие-то блок схемы, на которых это можно увидеть... книги? Можно ли это всё описать одни словом - Паттерны?"
В идеале, если у вас это конечно есть, отлично подошла бы блок-схема, как наглядная демонстрация, что и откуда берётся. Имея такую блок схему, можно было бы с большей лёгкостью двигаться по ней, выучивая каждый блок по отдельности, но уже понимая, куда нужно двигаться и зачем
Access to fetch at 'https://ya.ru/' from origin 'chrome-search://local-ntp' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Можно ли дойдя с помощью цикла до свойства hosts понять, что оно является объектом?
console.log(typeof({}));
// object
for (var key in data) {
if(typeof(data[key]) == "object") {
console.log (key + " is object");
}
}
Просто мне необходимо в этом случае, добавлять в тело цикла(или условия) после самого объекта(в данном случае data), или .объект или [свойство].
Кстати, с помощью какого метода, я смогу это всё добавлять? Мне нужно добавить либо data.hosts либо data[свойство]
data["hosts"][2] = {name: 'web3'}
data["hosts"][data["hosts"].length] = {name: 'web3'}
// или
data["hosts"].push( {name: 'web3'} );
const data = {
user: 'ubuntu',
hosts: {
0: {
name: 'web1',
},
1: {
name: 'web2',
null: 3,
},
},
};
// классически на if
function getIn(obj, parr) {
if(typeof(obj[parr[0]]) == "undefined") {
return null;
} else {
if(typeof(obj[parr[0]]) == "object") {
if(parr.length > 1) {
return getIn(obj[parr[0]], parr.slice(1))
} else {
return obj[parr[0]]
}
} else {
return obj[parr[0]];
}
}
}
// защита от дурака (когда некорректные параметры) + switch case
function getIn(obj, parr) {
if (
typeof(obj) != "object" ||
typeof(parr) != "object" ||
parr.length == "undefined" ||
parr.length == 0
) return null;
switch (typeof(obj[parr[0]])) {
case "undefined":
return null;
case "object":
return (parr.length > 1)? getIn(obj[parr[0]], parr.slice(1)):obj[parr[0]]
default:
return obj[parr[0]];
}
}
// еще короче
function getIn(obj, parr){
return !(
typeof(obj) != "object" ||
typeof(parr) != "object" ||
parr.length == "undefined" ||
parr.length == 0
)?
typeof(obj[parr[0]]) == "object" ?
(parr.length > 1)?
getIn(obj[parr[0]], parr.slice(1)):obj[parr[0]] :
obj[parr[0]] ?
obj[parr[0]]: null:
null
}
// и стрелочной функцией
const getIn = (obj, parr) => !(
typeof(obj) != "object" ||
typeof(parr) != "object" ||
parr.length == "undefined" ||
parr.length == 0
)?
typeof(obj[parr[0]]) == "object" ?
(parr.length > 1)? getIn(obj[parr[0]], parr.slice(1)):obj[parr[0]] :
obj[parr[0]] ? obj[parr[0]]:null :
null;
function getIn(obj, parr) {
let o = obj;
for(let i=0; i< parr.length; i++) {
o = o[parr[i]];
if(typeof(o)=="undefined") return null;
}
return o;
}
indexOf()
const text2 = 'You know nothing Jon Snow';
function countUniqChars(str) {
return new Set(str.split('')).size;
}
countUniqChars(text2) // 13
const countUniqueChars = str =>
new Set(str).size;
const countUniqueChars = str => [...str]
.reduce((acc, n) => (acc.includes(n) || acc.push(n), acc), [])
.length;
const countUniqueChars = str => Array
.from(str)
.reduce((acc, n, i, a) => acc + (i === a.indexOf(n)), 0);
const countUniqueChars = str => Object
.keys(Object.fromEntries([].map.call(str, n => [ n, 1 ])))
.length;
const countUniqueChars = str => str
.split('')
.sort()
.filter((n, i, a) => n !== a[i - 1])
.length;
const countUniqueChars = str =>
(str && str.match(/(.)(?!.*\1)/g)).length;
Как настроить localStorage?
он смотрит по индексу
он отмечал
Он прекрасно работает с простым индексом
$('#viewed').on('click', function() {
$(this).removeClass("forImg");
});
Добрый вечер! Прежде чем перейду к основной суть вопроса, небольшое, но важное отступление. Прошу вас прочитать весь вопрос. Для меня это очень важно.
Я начинающий frontend-щик. Мне необходимо изучение того java, который отвечает за web-приложения. Вопрос такой задал потому, что мой друг, который является сис-админом, услышав, что я ищу курсы для изучения java, начал меня отговаривать, сказав, что не зная Алфавита(а именно Pascal и C++ минимум), я не должен приступать к изучению java. Что это будет сложно без хороших знаний базы.
Я с ним отчасти, конечно согласен! Java С-подобный язык! И не понимание процессов, которые происходят внутри системы, может затруднить работу над создание в будущем web-приложении, да и вообще работы в компании.
Вопрос мой заключается в том, возможно ли приступить к изучению данного языка, не зная низкоуровневых языков?
С какими именно сложностями я могу столкнуться, если пренебрегу ?
На мнение авторов книг и курсов по java, я полностью довериться не могу, поскольку они заинтересованные лица) Они все пишут, что можно не иметь знании. Поэтому мне очень важно ваше мнение! Прошу подсказать! Может у вас или у вашего друга и т.д. был такой опыт...