作用域:
变量或者函数可以访问的范围,分为两种:
1.全局作用域:在全局使用var关键字声明的变量 ,可以再任意的范围访问
2.函数作用域: 在函数内使用var关键字声明的变量,只能在函数内部访问
var a = 10
console.log(a) //10
/*
js程序执行前 会将使用var关键字声明的变量提升所在作用域的最前面,
但是赋值还是在原来的位置
*/
console.log(a) //undefined
var a = 10
//以上代码作用域提升后 可以改写为
var a;
console.log(a) //undefined
a=10
function fn(){
//局部变量作用域提升
console.log(b) //undefined
var b = 10;
}
var a = 10; //全局作用域下的变量 全局变量
function fn(){
var b = 2 //函数作用域下使用var关键字声明的变量 局部变量
// console.log(a)
console.log(b)
}
console.log(a)
fn() //调用函数 执行函数体内的代码
console.log(b); //b是在函数内部定义的 在外部无法访问
var n = 10
function fn(){
console.log(n//undefined
var n = 5
}
console.log(n)
var m =1
function fn3(m){ //参数在函数中相当于一个局部变量
m=m+3
}
console.log(m)
function fn4(){
var a=b=c=2;
}
fn4();
console.log(a) //a is not defined
console.log(b) //2
console.log(c) //2