name
- это предопределенное свойство во время выполнения JavaScript, которое set
или get
является именем окна.Таким образом, вы не можете использовать это зарезервированное свойство как функцию при использовании var
.
Причиной этого является let
, позволяющий объявлять переменные, ограниченные по области действия блоком, оператором или выражением, в котором он используется.Это не похоже на ключевое слово var
, которое определяет переменную глобально или локально для всей функции независимо от области видимости блока.Таким образом, когда var
пытается определить name
как переменную, в этом случае globally
конфликтует с существующим свойством name
, поэтому вы получаете эту ошибку при использовании var
, но не с let
.
//get name value
console.log(name);
//set name value
name = 'someNewName';
console.log(name);
Таким образом, чтобы запустить ваш код, вам нужно изменить имя функции на другое имя, скажем, name1
:
var name1 = function print(){
console.log("welcome ......");
}
name1();