Ореховая оболочка JavaScript
Эта статья предназначена для новичков в JavaScript и содержит набор общих знаний и полезных советов по изучению языка. Я собрал эти идеи из различных статей и комментариев, которые я читал, изучая JavaScript. Я надеюсь, что вы найдете эту информацию полезной в своем собственном путешествии по JavaScript.
Что такое JavaScript?
JavaScript — самый популярный язык веб-скриптов, используемый как для клиентской, так и для серверной разработки. Поддерживая возможности объектно-ориентированного программирования, код JavaScript можно вставлять в HTML-страницы, которые могут быть поняты и выполнены веб-браузерами.
Что такое ECMAscript?
ECMAScript (сценарий Европейской ассоциации производителей компьютеров) — это язык сценариев, основанный на Javascript. ECMAScript — это язык программирования, стандартизированный ECMA International. Он в основном используется для создания сценариев на стороне клиента, которые запускаются в веб-браузерах, но также используется в других средах, таких как Node.js и Apache CouchDB. ECMAScript — это стандартизированная версия популярного языка программирования JavaScript, и эти два термина часто используются взаимозаменяемо. ECMAScript ежегодно добавляет в язык новые функции, последняя версия — ECMAScript 2021.
Разница между операторами «==» и «===».
Основное различие между операторами «==» и «===» в javascript заключается в том, что оператор == выполняет преобразование типов операндов перед сравнением, тогда как оператор === сравнивает значения, а также типы данных операндов. операнды.
Какие типы данных поддерживает JavaScript?
- Неопределенный
- Ноль
- логический
- Объект
- Нить
- Символ
- Число
Замыкание в JavaScrpt — это функция внутри другой функции. Внутренняя функция имеет доступ к своим собственным переменным, переменным, определенным во внешней функции, а также к глобальным переменным.
let a = 5;
function outher(){
let b = 8
function inner(){
let c = 3;
console.log(a + b + c);
}
inner();
}
outher();
В JavaScript NaN — это сокращение от Not-a-Number. В JavaScript NaN — это число, которое не является допустимым числом. Свойство Global NaN совпадает со свойством Number.
Как вы можете создать объект в Javascript?
let person = {
name : "Umut",
age : 27,
isHappy: true
}
const cars = ["Saab", "Volvo", "BMW"];
const cars = [];
cars[0]= "Saab";
cars[1]= "Volvo";
cars[2]= "BMW";
const cars = new Array("Saab", "Volvo", "BMW");
- Легкий интерпретируемый язык программирования
- Кроссплатформенная совместимость
- Открытый источник
- Объектно-ориентированный
- Интеграция с другими backend и frontend технологиями
- Используется специально для разработки сетевых приложений
Область действия в JavaScript относится к текущему контексту кода, который определяет доступность переменных для JavaScript.
- Глобальный охват:
- Глобальные переменные, имеющие глобальную область действия, доступны везде в коде JavaScript.
- Проще говоря, переменная, к которой можно получить доступ в любом месте программы, называется переменной с глобальной областью действия. Глобальные переменные можно определить с помощью любого из трех ключевых слов: let, const и var.
- Локальные переменные доступны только внутри функции, в которой они определены. Если вы попытаетесь получить доступ к любой переменной, определенной внутри функции, извне или из другой функции, это выдаст ошибку.
- Поскольку вы не можете получить доступ к локальной переменной извне функции, вы можете иметь переменную с тем же именем и в другой функции.
- До появления ES6 (ECMAScript 6) в 2015 году в JavaScript было только два типа областей действия: глобальная область действия и локальная область действия.
- С введением ключевых слов let и const в JavaScript был добавлен новый тип Scope. Вы не можете получить доступ к переменным, объявленным внутри определенного блока (представленного {}), из-за пределов блока.
- При создании каждой новой функции создается новая область видимости в JavaScript. Вы не можете получить доступ к переменным, определенным внутри функции, извне функции или из другой функции. Var, let и const работают одинаково при использовании внутри функции.
- Синтаксическая ошибка
- Ошибка ссылки
- Ошибка типа
- Ошибка оценки
- RangeError
- Ошибка URI
- Внутренняя ошибка
- Методы call и apply устанавливают this в функцию и вызывают функцию.
- Метод привязки только установит это в функцию. Нам нужно будет отдельно вызвать функцию.
- Метод forEach не имеет условия, поэтому он всегда будет выполняться для каждого элемента массива, даже если массив пуст. Цикл for, с другой стороны, не будет выполняться, если условие не выполняется.
- Метод forEach — отличный способ перебора массивов. Его легче читать и понимать, чем цикл for, и он не требует создания переменной счетчика цикла. Однако в некоторых ситуациях следует использовать цикл for вместо метода forEach.
let myFunction = (a, b) => a * b;
hello = () => {
return "Hello World!";
}
Ключевое слово this в JavaScript относится к вызываемому в данный момент объекту. Он обычно используется в конструкторах для присвоения значений свойствам объекта.
// Regular Function:
hello = function() {
document.getElementById("demo").innerHTML += this;
}
// The window object calls the function:
window.addEventListener("load", hello);
// A button object calls the function:
document.getElementById("btn").addEventListener("click", hello);
var и let используются для объявления переменных в javascript, но разница между ними заключается в том, что var имеет область действия функции, а let — область действия блока.
Типы ошибок в javascript
Существует 7 типов ошибок JavaScript:
Объектная модель документа (DOM) — это программный интерфейс для веб-документов. Он представляет страницу, чтобы программы могли изменять структуру, стиль и содержимое документа. DOM представляет документ в виде узлов и объектов; таким образом, языки программирования могут взаимодействовать со страницей.
Разница между атрибутами и свойствами в vanilla JS
В JavaScript (на самом деле DOM) элемент имеет атрибуты и свойства. Термины часто используются взаимозаменяемо, но на самом деле это две разные вещи.
Атрибут — это начальное состояние при отображении в DOM. Свойство — это текущее состояние.
В большинстве случаев атрибуты и свойства синхронизируются автоматически. Например, когда вы используете setAttribute() для обновления атрибута ID, свойство id также обновляется.
let p = document.querySelector('p');
// Update the ID
p.setAttribute('id', 'first-paragraph');
// These both return "first-paragraph"
let id1 = p.getAttribute('id');
let id2 = p.id;
Все три метода call, bind и apply задают аргумент this для функции.
Метод вызова привязывает это значение к функции и выполняет функцию. Он принимает это значение и список аргументов в качестве параметров. Затем он возвращает значение, возвращенное функцией, которая вызывается с помощью метода call.
function test(arg1, arg2){
console.log(this.num, arg1, arg2); // 100, 10, 20
}
test.call({num: 100}, 10, 20);
применять
Метод применения привязывает это значение к функции и выполняет функцию. Он принимает это значение и один объект массива в качестве параметров и возвращает значение, возвращаемое функцией, которая вызывается с использованием метода применения.
function test(...arguments){
console.log(this.num, arguments);//100, [1,2,3]
}
test.apply({num: 100}, [1,2,3]);
// call() and apply() are identical in functionality,
// the only difference is that call() accepts a list of arguments;
// whereas, apply() accepts a single array of arguments.
Метод bind привязывает это значение к функции и возвращает новую функцию. Однако нам по-прежнему нужно отдельно вызывать возвращаемую функцию.
function test(arg){
console.log(this.number, arg);
}
let bindedFn = test.bind({number: 99}, "argument");
bindedFn(); // 99, "argument"
В чем разница между циклом for и foreach в javascript
for (initialization; condition; increment)
{
// code to be executed
}
for (let i = 1; i <= 5; i++)
{
document.write(i + "<br/>");
}
numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(number) {
// code to be executed
document.write(number + "<br/>");
});
//same output
1
2
3
4
5

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































