Привет всем

Если вы чувствуете себя разработчиком javascript, вы должны знать эти приемы и основы.

  1. Использовать объединение для удаления из массива
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 redirect
window.location.replace("https://medium.com/@boraerbasoglu");
//If you want to simulate someone clicking on a link
window.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 than delete, 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 and async-friendly prefer this
for (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")

Хорошего дня