В этой статье обсуждается разница между VAR и NO VAR в JavaScript. Объем объявлений переменных в JS основан на функциях, поэтому мы часто видим, как избежать глобального загрязнения переменной.
(function () {// ...}) ();Внутри функции переменные с VAR и без VAR различны. Существуют VAR, которые объявляют локальные переменные, и нет VARS, объявляемых глобальными переменными, поэтому вы можете выявить интерфейсные вещи снаружи.
При объявлении переменных в глобальном объеме VAR и VAR кажутся одинаковыми. Мы знаем, что объявленные глобальные переменные являются свойствами Windows. Будь они одинаковы, мы обнаруживаем разницу с помощью метода запроса атрибута, предоставленного Ecmascrpit5.
var ffff = 2; window.fffa = 3; ffb = 4; this.ffc = 4; var fftx = object.getOwnPropertyDescriptor (Window, 'ffff'); // настраивается: false, перечисляемое: true, значение: 2, записываемое: true var ffatx = object.getownpropertydescriptor (window, 'fffa'); // настраивается: true, перечисляемое: true, значение: 2, записываемость: true var ffbtx = object.getownpropertydescriptor (window, 'fffa'); // настраивается: true, перечисляемое: true, значение: 2, записываемость: true var ffbtx = object.getownpropertydescriptor (window, 'ffb'); // настраивается: true, перечисляемое: true, значение: 2, записываемое: true var ffctx = object.getownpropertydescriptor (window, 'ffc'); // настраивается: true, перечисляемое: true, значение: 2, записываемое: true
Через вышесказанное мы обнаружили, что все еще была разница. Мы использовали Delete, чтобы убедиться, что атрибут с FALSE Configuration не может быть удален. То есть свойства глобального объекта, объявленного через переменную, не могут быть удалены. Мы также обнаружим, что свойства глобального объекта, созданного объявлением функции, не могут быть удалены.
удалить FFFF; // не может удалить удаление FFFA; // может удалить удаление FFB; // может удалить удаление FFC; // может удалить
Вывод заключается в том, что существует разница между добавлением VAR и объявлением глобальных переменных без VAR.
Это законно и безвредно неоднократно объявлять заявление с использованием оператора VAR. Если объявление повторяется и предоставлено назначение, оно не отличается от общего оператора назначения. Если вы попытаетесь прочитать переменную, которая не была объявлена, JS сообщит об ошибке.
Объявленные переменные или внутренние функции в рамках JavaScript видны в организме функции. Значение, функция может быть уже доступна до ее определения. Существует два способа определения функции, один из них является выражением определения функции, а другой - оператор объявления функции.
// Определение функции выражение var fns = function () {// ...}; // Функция оператора объявления функции fns () {// ...}Оператор объявления функции «был продвинут» до вершины внешнего сценария или сферы внешней функции, поэтому функция, объявленная таким образом, может быть вызвана кодом, который появляется перед ним снова. В выражениях определения функции объявление переменной продвигается, но назначение переменной не является продвинутым, поэтому функции, определенные в выражении, не могут быть вызваны до определения функции.
(function () {testa (); // Распечатать testa testb (); // Сообщать об ошибке: предложено, что не определено не является функцией консоли.log (testc); // не определен, если перемещен в вышеупомянутое, это нормально выполнять функцию testa () {console.log ("testa");} testb = function () {) {console.le ("testa"); "testC";}) ();Конечно, когда мы объявляем переменные и функции, мы должны соблюдать основные спецификации, а переменные и объявления функций должны быть заранее.