var let const(原创,精简)

语法方面需要注意:

1.区分大小写
2.每句后面加分号在某些情况下会提升性能(解析器会在合适的地方自动补分号来尝试修改错误)
3.if的{}如果只有一句可以省略 单并不美观

变量

var需要注意的

1.如果没有初始化会自动保存一个undefined
2.将一个数字类型赋值成对象这样是不推荐但是有效的
3.var是再一个函数中生效(函数退出失效)(函数外无效)
4.函数内直接声明类似于直接声明一个全局变量
5.一条语句同时定义多个变量中间用逗号隔开

var a =1,b = 2, c = 3

6.var 存在变量提升

console.log(age);
age = 18;
//等同于
var age ;
console.log(age);
age = 18;
let 需要注意的

1.let的范围是块级作用域(只要在大括号内就归我管,不在的是外面的事情)

        let a = 1;
        {
            let a = 2
            console.log(a); //1
        }
        console.log(a);//2

2.let在同一块内对一个变量只允许声明一次(不同{}内不管)(var声明同一个也不行)
3.暂时性死区(let声明不会变量提升但是会有一个空闲的区域,称为暂时性死区)
4.let声明的变量不会成为windows对象而var会
5.for循环中的let因为在不同的块中 所以会打印出不同的值 而var则是在退出循环中保留同一个值 会打印相同的

for(var i = 0; i<5 ;i++){
            console.log(i);
        }//01234
        for(let i = 0; i<5 ;i++){
            console.log(i);
        }//01234
        for(var i = 0; i<5 ;i++){
            setTimeout(() => {
                console.log(i);
            }, 0);
        }//55555
        for(let i = 0; i<5 ;i++){
            setTimeout(() => {
                console.log(i);
            }, 0);
        }//01234

前两个因为是同步操作所以不会影响 只有当异步时候会放入队列然后再打印所以var打印的是最后那个5 而let打印了所有应该保存的值(一切都是因为块级作用域)
6.let’声明的不会溢出(for中用let会不会泄露到外面)

const需要注意的

1.基本同let,但是不可修改
2.不可修改指向整个对象,改动其中的值是可以的

const a ={};
a.name='张三';
a.name = '李四'
console.log(a)//李四
最佳实践

少用var多用let最好多用const

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值