1. Область видимости переменных Javascript
В JavaScript переменные в основном делятся на два типа: локальные переменные и глобальные переменные, а соответствующие области действия также бывают локальными и глобальными.
1 Локальные переменные и область видимости
Локальные переменные обычно объявляются и используются внутри тела функции:
function func(){ var i=12;//Локальные переменные...}Область действия локальной переменной используется внутри тела функции, в которой эта переменная объявлена.
Цикл объявления локальных переменных инициализируется при вызове и выполнении функции и уничтожается после завершения вызова функции.
2. Глобальные переменные и область видимости
Глобальные переменные обычно объявляются вне тела функции:
var i=12;//глобальная переменная function func(){......}Существует также переменная, которая используется напрямую без объявления и по умолчанию является глобальной переменной:
function func(){ i=12;//Не объявлено (объявлено с использованием ключевого слова var), по умолчанию используется глобальная переменная}Глобальные переменные можно использовать во всех скриптах и методах на текущей странице, а их область действия находится в скрипте текущей страницы.
Цикл объявления глобальных переменных создается при инициализации переменной и уничтожается при закрытии текущей страницы.
2. ключевое слово typeof
Ключевое слово typeof в основном используется для определения типа данных переменных. Основными типами данных в JavaScript являются строка, число, логическое значение, объект и т. д.
console.log(typeof 'str');//stringconsole.log(typeof 23);//numberconsole.log(typeof false);//booleanconsole.log(typeof [1,3,12]);//objectconsole. log(typeof {name:'jack',age:12});//objectconsole.log(typeof new Date());//объектПримечание. Массивы и объекты json в js относятся к типу данных объекта.
3. нулевой и неопределенный
Нулевые и неопределенные значения часто встречаются в JavaScript, указывая на то, что значение переменной пусто или что переменная не определена. При выражении значений они могут быть выражены как нулевые значения, но они все равно различаются с точки зрения типов данных.
console.log(typeof null);//objectvar persion = null;console.log(persion);//nullconsole.log(typeof undefined);//unknownvar persion2;console.log(persion2);//не определено
Тип данных null — это объект, а тип данных undef — неопределенный.
Когда переменная объявлена, ее значение равно нулю, а значение переменной равно нулю, когда переменная только объявлена, без присвоения, значение не определено;
Давайте посмотрим на другой набор сравнений:
console.log(null==undefined);//true значения равны console.log(null===undefined);//false типы не равны
Видно, что когда значения null и undef представляют значения, они оба представляют собой пустые значения; тип данных null — это объект, а тип данных undef — неопределенный. Значения, объявленные без инициализации, не определены.
Далее идет дополнение
Ситуация первая
<script> var i; //Глобальные переменные//Имя метода — верблюжья номенклатура //Переменные в методе — локальные переменные functionsayHello(){ var x=100; x++; //Output 100 alert(x); //Сообщается об ошибке, поскольку x является локальной переменной и к ней нет доступа</script>Ситуация вторая
<script>functionsayHello(){ var x=100; if(x==100){ var y=x+1; //Вывод 101 } //Также выводим 101, в Внутри метода нет области действия на уровне блока, что невозможно в C#! ! ! for(var i=0;i<2;i++){ alert(i) } //Переменная, определенная в цикле for, имеет область действия уровня блока alert(i); //Поскольку i — локальная переменная, выводится 2; } SayHello();</script>Примечание. Переменные не обязательно объявлять с помощью var перед использованием. Такие переменные будут считаться «глобальными переменными», но они редко используются таким образом.
О неопределенном и нулевом
В следующих ситуациях значение переменной не определено.
1. Если переменная определена, но ей не присвоено значение, значение переменной не определено.
2. Вызванный метод не имеет возвращаемого значения, а возвращаемое значение не определено.
3. Если значение атрибута объекта не существует, возвращаемое значение не определено, например: document.ddd
Пример1:
var xx;var yy=null;if(xx==yy){ alert('equal');}else { alert('not равно');}Выходные результаты одинаковы, поскольку при выполнении проверки if браузер будет оценивать значения xx и yy. Поскольку оба не имеют конкретных значений, они считаются ложными.
Если суждение if заменить на ===[все знаки равенства], результат не будет равным! Потому что === означает, что типы данных и значения xx и yy должны быть одинаковыми!
Пример2:
var xx=10var yy='10';if(xx==yy){ alert('равно');}else{ alert('не равно');}Выходной сигнал равен. Если он изменен на ===, выходной сигнал не равен.
Пример3:
var n='10';switch(n){ случай 10: предупреждение('число'); случай '10': предупреждение('строка');Выходная строка
При вынесении решения следует учитывать тип
Резюме: Суждение в if заключается в оценке значения независимо от типа.