javascript基础 函数作用域

不论我们前面讲到的for, if等语句还是function,后面有一对{}比如
for(var i = 0; i < items.length; i++){
//“{”和“}”之间有代码
}

if(some_express){
//“{”和“}”之间有代码
}

function(param1){
//“{”和“}”之间有代码
}
所有{}包起来的代码,都可以称之为 “代码块” , 英文名叫Block。

在函数中定义的变量在函数外不能获取
每个代码块都有一个自己的作用域,作用域决定了变量能否被访问(不论读取变量还是修改变量)。
在最上层没有任何{}包裹的作用域为顶层作用域,声明的变量是哪里都可以访问的。
代码块是有层级的,在一个代码块里写的新的代码块,后者是前者的子作用域

当局部变量与全局变量重名时,局部变量会覆盖全局变量
var num = 1; //声明一个全局变量
function func() {
  var num = 2; //声明一个局部变量
return num;
}
console.log(func()); //输出:2


函数作用域变量在声明它们的函数体以及这个函数体嵌套的任意函数体都是有定义的


function func() {
console.log(num); //输出:undefined,而非报错,因为变量num在整个函数体内都是有定义的
var num = 1; //声明num 在整个函数体func内都有定义
console.log(num); //输出:1
}
func();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值