Привет всем
Если вы чувствуете себя разработчиком javascript, вы должны знать эти приемы и основы.
- Использовать объединение для удаления из массива
const array = [4, 8, 10]; console.log(array); const index = array.indexOf(8); if (index > -1) { // only splice array when item is found array.splice(index, 1); // 2nd parameter means remove one item only }
// array = [4, 10]
2. Проверить, скрыт ли элемент в jQuery?
// Will check style of element visibility
$(element).is(":visible");
// The same works with hidden - check depending display status
$(element).is(":hidden");
3. Просто перенаправить на URL
// If you want to simulate an HTTP redirectwindow.location.replace("
https://medium.com/@boraerbasoglu");
//If you want to simulate someone clicking on a linkwindow.location.href = "
https://medium.com/@boraerbasoglu";
4. var functionName = function() {} vs function functionName() {} Что выбрать?
Эти два определения могут быть похожи, но не
var functionOne = function() { // Some code };
function functionTwo() { // Some code }
Разница в том, что functionOne
является выражением функции и поэтому определяется только тогда, когда эта строка достигается во время выполнения, тогда как functionTwo
является объявлением функции и определяется, как только его окружающая функция или скрипт выполняются.
5. Рекомендации по удалению свойства из объекта JavaScript (JSON)?
// It is readable and short, however, it might not be the best choice if you are operating on a large number of objects as its performance is not optimized.delete happyObject.regex; // delete happyObject['regex']; // or, var prop = "regex"; delete happyObject[prop];
//It is more than two times faster thandelete
, however the property is not deleted and can be iterated.happyObject[key] = null; happyObject[key] = false; happyObject[key] = undefined;
6. Рекомендации по включению файла JavaScript в другой файл JavaScript?
Вот решение для разных случаев ECMASCRIPT
Модули ES6
Использование package.json
:
{
"type": "bora"
}
Затем bora.js
:
export function hello() {
return "Hi!";
}
Затем main.js
:
import { hello } from './bora.js';
let val = hi(); // val is "Hi!";
Используя .mjs
, у вас будет module.mjs
:
export function hi() {
return "Hi!";
}
Затем main.mjs
:
import { hi } from './bora.mjs';
let val = hi(); // val is "Hi!";
Модули ECMAScript в браузерах
<script type="module"> import { hi } from './hi.mjs'; // Or the extension could be just `.js` hi('world'); </script>
// hi.mjs -- or the extension could be just `.js` export function hello(text) { const div = document.createElement('div'); div.textContent = `Hi! ${text}`; document.body.appendChild(div); }
Загрузки jQuery
$.getScript("hi.js", function() {
alert("Script loaded.");
});
7. В чем разница между «let» и «var». Какой из них мне нужно использовать?
Let и var разница - это правила области видимости. Переменные, объявленные с помощью ключевого слова var
, относятся к непосредственному телу функции, в то время как переменные let
относятся к непосредственному окружающему блоку, обозначенному { }
function main() {
var name = "Bora";
let age = 34;
console.log(name, age); // Bora 34
{
var name = "Bora"
let age = "34";
console.log(name, age); // Bora 34
}
console.log(name); // Bora
console.log(age); // ReferenceError
}
main();
8.Какой оператор равенства (== или ===) следует использовать при сравнении JavaScript?
Оператор ==
будет сравнивать на равенство после всех необходимых преобразований типов. Оператор ===
не выполняет преобразование, поэтому, если два значения имеют разные типы, ===
просто вернет false
. Оба одинаково быстрые.
Например
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true
' \t\r\n ' == 0 // true
Как вы можете видеть, если разные типы на стороне === будут возвращены false
9. Рекомендации по работе с массивом For-each в JavaScript
// simple andasync
-friendly prefer thisfor (const element of theArray) { // ...use `element`... }
Примечание . Не используйте map
, если вы не используете возвращаемое значение.
fruits.map(fruit => fruit)
9. Каков наиболее эффективный способ глубокого клонирования объекта в JavaScript?
Для ES6 предпочтительнее этот родной метод для клонирования или мелкого копирования.
Object.assign({}, obj);
10. Как проверить, содержит ли массив значение в JavaScript?
Во всех современных браузерах есть Array#includes, который делает именно это и широко поддерживается всеми, кроме IE:
['bora', 'jane', 'mary'].includes('bora') // will return true
Если IE имеет значение
["bora", "jane", "mary"].indexOf("bar")
Хорошего дня