Сегодняшняя статья о типах javascript, ядре и некоторых других вещах.

  1. Равенство и сравнение

В JavaScript есть два разных способа сравнения значений объектов на предмет равенства.

  • Оператор равенства, который обозначается двумя знаками равенства «==». Это считается плохой практикой из-за принуждения типа. Он сравнивает по значению.

Пример:

  • Оператор строгого равенства, который обозначается тремя знаками равенства «===». Он сравнивает по значению и типу.

Пример:

2. Тип оператора

Таблица типов JavaScript:

В приведенной выше таблице Type относится к значению, которое возвращает оператор typeof.

Класс относится к значению внутреннего свойства [[Class]] объекта.

Синтаксис: typeof(obj).

В этом случае typeof не является функцией. Его возвращаемое значение будет использоваться как операнд typeofoperator. Функция typeof нет.

Пример:

Вывод:

3. Экземпляр Opera или

Оператор instanceof в JavaScript используется для проверки типа объекта во время выполнения. Если объект является экземпляром определенного класса, он возвращает логическое значение true, в противном случае возвращает false. Но этот оператор не работает с объектом, происходящим из другого контекста javascript.

Синтаксис: const result = имя_объекта_экземпляр_типа_объекта

Пример:

Вывод:

4. Приведение типов

Пример:

Вывод:

Здесь мы получаем два разных вывода в приведенных выше случаях. Но почему?

Для первого объекта Number преобразуется в числовой примитив с использованием метода Number.prototype.valueOf. Это означает, что когда мы сравниваем по значению, используя ==, он возвращает true.

Для второго мы сравниваем как по значению, так и по типу при проверке по ===. Здесь слева новое число (10) — это объект, а справа 10 — это число. Таким образом, тип здесь не соответствует, поэтому он возвращает false.

Число(10)===10; // возвращает истину

Javascript имеет встроенный конструктор типов, например Number() и String(). Когда мы используем его без нового ключевого слова, он ведет себя как преобразователь, а не как конструктор. Вот почему он возвращает true в этом случае.

5. Почему бы не использовать eval

  • Функция eval выполнит строку кода JavaScript в локальной области видимости.

var number = 1;
function test() {
var number = 2;
eval('number = 3');
return number;
}
test(); // 3
number; // 1

  • eval() — опасная функция, которая выполняет переданный ей код с привилегиями вызывающей стороны.
  • eval() также медленнее, чем альтернативы, поскольку он должен вызывать интерпретатор JavaScript, в то время как многие другие конструкции оптимизированы современными движками JS.

6. не определено в Javascript

undefined is a global variable with a type of 'undefined’ только с одним значением: 'undefined' that javascript creates at run time. It happens in one of the following cases:

1. Объявлено, но не определено.
JavaScript присваивает значение undefined любому объекту, который был объявлен, но не инициализирован или не определен. Другими словами, в случае, когда переменной не было явно присвоено значение, JavaScript называет ее «неопределенной».

2. Индекс массива или свойство объекта, которое не существует.

3. Параметр функции, который не был предоставлен.

4. Возвращаемое значение функций, которые должны, но не возвращают значение.

7. null в Javascript

«Null» — это ключевое слово в JavaScript, означающее «отсутствие значения» или отсутствие какого-либо значения. Если вы хотите удалить переменную из присвоенного значения, вы можете просто присвоить ей значение «null». Кроме того, как и любой другой объект, JavaScript никогда не присваивает его неявно (автоконвертирование) переменной.

Пример:

var item= null;

console.log(item); // null

8. Оператор удаления в Javascript

Когда мы объявляем любую переменную или функцию глобально или в пределах области видимости, они назначаются набором атрибутов во время создания. Одним из таких атрибутов является DontDelete. Из-за этого атрибута DontDelete мы не можем удалить глобальную переменную, функцию или что-то еще.

Пример:

// global variable:
var a = 1; // DontDelete is set
delete a; // false
a; // 1

// normal function:
function f() {} // DontDelete is set
delete f; // false
typeof f; // "function"

// reassigning doesn't help:
f = 1;
delete f; // false
f; // 1

Но если мы установим свойства явно, мы можем удалить их обычным способом.

Пример:

// explicitly set property:
var obj = {x: 1};
obj.y = 2;
delete obj.x; // true
delete obj.y; // true
obj.x; // undefined
obj.y; // undefined

9.Планирование Javascript: setTimeout

Функция setTimeout() обычно используется, если вы хотите запустить свою функцию через определенное количество миллисекунд после вызова метода setTimeout(). Общий синтаксис метода:

setTimeout(выражение, время ожидания); где expression – это код JavaScript, который будет выполняться по истечении timeout миллисекунд.

Пример:

‹input type='button' name='sayHello' value='Жди привет!'
onclick='setTimeout('alert(\'Hello!\')', 4000)'/›

При нажатии кнопки вызывается метод setTimeout(). Выражение, которое вы хотите запустить после определенной временной задержки, и сама временная задержка (4000 мс или 4 секунды) передается.

Здесь следует отметить, что setTimeout() не останавливает выполнение дальнейшего сценария в течение периода ожидания. Он просто планирует запуск указанного кода javascript в указанное время. После вызова функции setTimeout() скрипт продолжает работу в обычном режиме, а таймер работает в фоновом режиме.

10. Расписание JavaScript: setInterval

Функция setInterval() обычно используется для установки задержки для функций, которые выполняются снова и снова, как анимация. Функция setInterval() очень тесно связана с setTimeout() — у них даже синтаксис одинаковый:

setInterval (выражение, интервал);

Единственная разница в том,

setTimeout() запускает expression только один раз, в то время как setInterval() продолжает запускать expressionрегулярно после заданного интервала времени. (если вы не прикажете ему остановиться).

Чтобы остановить дальнейшие вызовы, мы должны вызвать clearInterval(timerId).

// Привет повторяется каждые 3 секунды
let timerId= setInterval(() =› alert('Hello'), 3000);

// Очистить интервалы после 6 сек с идентификатором таймера
setTimeout(() =› { clearInterval(timerId); alert('Bye'); }, 6000);

Если нужен точный тайминг или что-то нужно делать повторно через определенные промежутки времени, то setInterval() будет лучшим выбором.

Это на сегодня..

Удачного программирования!!!!