块级作用域绑定--学习备忘录

1.var声明容易让人迷惑

2.在作用域中的变量声明会在编译阶段被提前到作用域前面,哪怕if条件是false,else里面也能访问到在if中声明的变量

function getValue(condition){
if(condition){
var value="blue";
return value;
}else{
console.log(value);
return null;
}
console.log(value);
}
undefined
getValue()
VM196:6 undefined
null
function getValue(condition){
var value;
if(condition){
value="blue";
}else{
return null;
}
}
undefined

3.块级声明就能控制变量的生命周期

块级包括:
               函数内部
               字符{}之间的区域

4.let块级声明,不会被提升,需要在块的顶部声明,当if条件true的时候,变量才会被定义,只要离开if,变量就会被销毁,在else中永远访问不到if中定义的变量

function getValue(condition){
if(condition){
let value="blue";
return value;
}else{
return null;
}
}
undefined

5.禁止重声明,不能在同一级作用域中用let重新定义变量,会报错,可以在嵌套的作用域中重新定义变量

var count=30
undefined
let count=30
VM458:1 Uncaught SyntaxError: Identifier 'count' has already been declared
    at <anonymous>:1:1
(anonymous) @ VM458:1
var int=10;
undefined
if(true){
let int=20;
}
undefined

6...
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值