let和const

一.let命令

  1. 变量提升:var声明的变量无论其实际声明位置在何处,都会被是为声明于所在函数(或全局)的顶部

  2. for(let i=0;i<3;i++){let i=‘abc’;console.log(i);}
    for循环在设置循环变量的部分是一个父作用域,循环体内部又是一个独立的子作用域。就近原则。

  3. 暂时性死区:如果区块中存在let和const命令,则这个区块对这些命令声明的变量从一开始就形成封闭作用域,在代码块内,使用let命令声明变量之前,该变量都是不可用的

  4. Let不允许重复声明。Eg:functionfn(){let a=10;let a=1;} functionfn(){let a=10;var a=1;} functionfn(){var a=10;let a=1;}都是错的。

  5. JavaScript采0用的是“词法作用域”,即在变量作用域取决于变量所在的代码区域。

  6. 作用域:
    全局作用域
    在所有函数之外定义的变量拥有全局作用域,该变量为全局变量。
    全局变量可以在当前页面中任何JavaScript代码中访问。
    函数作用域
    在函数中声明的变量(包括函数参数)指定在其所声明的函数内被访问。
    块作用域
    由{ }界定的代码区域,let声明的变量具备可访问块作用域

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
var v1=100;
function f1(){
    // console.log(v1,v2);
    var v1=110;
    let v2=200;
    function f2(){
        let  v3=300;
        console.log(v1,v2,v3);
    }
    f2();
    console.log(v1,v2,v3);

}
f1();
console.log(v1,v2,v3);
    </script>
</body>
</html>

二.Const命令
1.基本用法:声明一个只读的常量,一旦声明,其值不能改变且必须立即初始化。,除此外与let一致。


2.本质:当常量保存的不是一个值,而是一个地址的时候,该常量所引用的对象是可以更改成员的,只是不能更改该常量保存的地址

三.小结
• 1. 由于let和const能提供更好的作用域识别,建议尽量采用let声明变量,const声明常量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值