var let const 的区别

var:
- 可以重复声明,没有报错和警告
- 无法限制修改
- 没有块级作用域, { }
let与const:
- 不能重复声明
- 都是块级作用域, { } 块内声明的,块外无效
- let 是变量,可以修改
- const 是常量,不能修改

重复声明

var 可以重复声明 而 let const 不行

var a = 12;
var a = 5;
alert(a);
// 会报错
let a = 12
let a = 5
alert(a)

块级作用域

var 没有自己的块级作用域 let const 有

  if (true) {  // 不会报错且弹出 a
    var a = 12;
        }
  alert(a);
  if (true) { // 报错
    let a = 12;
        }
  alert(a);
 { // 报错 找不到 a
    const a = 12;
    }
  alert(a);

函数本身就是var 的块级作用域 垫了个函数 所以可以正确显示

<input type="button" value="按钮1">
<input type="button" value="按钮2">
<input type="button" value="按钮3">
    <script>
        var btn = document.querySelectorAll('input');

        for (var i = 0; i < btn.length; i++) {
            (function (i) {
                btn[i].onclick = function () {
                    alert(i);
                }
            })(i)
        }

有自己的块级作用域 可以正确显示

   <input type="button" value="按钮1">
    <input type="button" value="按钮2">
    <input type="button" value="按钮3">
    <script>
        var btn = document.querySelectorAll('input');
        for (let i = 0; i < btn.length; i++) {
            btn[i].onclick = function () {
                alert(i);
            }
        }
    </script>

const的使用

注意1 一旦给const修饰的标识符被赋值之后 不能修改
注意2 在使用const 定义标识符 必须进行赋值
注意3 常量的含义是指向的对象不能修改 但是可以改变对象内部的属性

  const obj = {
      age: 18,
      name: '男神'
    }
    console.log(obj);
    
    obj.age = 19
    obj.name = '小川'
    console.log(obj);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

臧小川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值