web前端全系列 教程
1839个小节阅读:2243.7k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
作用域(scope)指的是变量存在的范围,Javascript 有两种作用域:一种是全局作用域,变量在整个程序中一直存在,所有地方都可以读取;另一种是函数作用域,变量只在函数内部存在
函数外部声明的变量就是全局变量(global variable),它可以在函数内部读取
xxxxxxxxxx
var num = 1;
function add() {
console.log(num);
}
add()
// num
在函数内部定义的变量,外部无法读取,称为“局部变量”(local variable)
xxxxxxxxxx
function add(){
var num = 1;
}
num // ReferenceError: num is not defined
函数内部定义的变量,会在该作用域内覆盖同名全局变量
xxxxxxxxxx
var num = 1;
function add(){
var num = 2;
console.log(num);
}
add() // 2
num // 1
注意,对于var命令来说,局部变量只能在函数内部声明,在其他区块中声明,一律都是全局变量
xxxxxxxxxx
if (true) {
var num = 5;
}
console.log(num); // 5
与全局作用域一样,函数作用域内部也会产生“变量提升”现象。var命令声明的变量,不管在什么位置,变量声明都会被提升到函数体的头部
xxxxxxxxxx
function foo() {
console.log(names);
var names = 'itbaizhan';
}
foo()
实时效果反馈
1. 下列代码执行结果是:
xxxxxxxxxx
var name = "itbaizhan";
function getName(){
var name = "sxt";
console.log(name);
}
console.log(name);
getName();
A itbaizhan itbaizhan
B sxt sxt
C itbaizhan sxt
D sxt itbaizhan
答案
1=>C