Функция стрелки, назначенная переменной без ключевого слова объявления переменной? - PullRequest
0 голосов
/ 26 августа 2018

Я не очень хорошо знаком с функциями стрелок и сталкивался с их использованием, я не понимаю. После просмотра нескольких статей о функциях стрелок кажется, что ключевое слово объявления переменной должно предшествовать имени переменной. Если нет, то почему это не так? (Код работает.)

Например, почему не var, let или const до getParameterByName?

getParameterByName = (name, url) => {
 ...
}

1 Ответ

0 голосов
/ 27 августа 2018

В неаккуратном режиме JavaScript присвоение переменной, которая не объявлена, устанавливает это свойство для глобального объекта.Это (как вы можете сказать, потому что этот вопрос существует) - сбивающее с толку поведение.

В общем, вы всегда должны использовать строгий режим .Многие сбивающие с толку поведения исправляются в строгом режиме, включая случай, о котором вы спрашиваете здесь.

'use strict';

a = () => {};

Как видите, выполнение этого фрагмента дает ошибку ReferenceError, поскольку a не объявлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...