var let const区别与用法

1:变量是什么。
var message;这里的var是关键字,message是变量名,可以用它来保存任何类型的值,在不初始化的情况下它的值为underfind)
2:var关键字。
1)作用域:在函数内部用var创建一个变量值(这个变量是局部变量),在函数执行完毕之后会被销毁。
如:function text(){
//局部变量
var message=‘hi’
}
text()
console.log(message)//报错
解决方法:在函数内部去除var,成为全局变量。(一般不建议这样做,不利于维护。
2)定义关键字:需要定义多个变量时,可以在一条语句中用逗号分隔开。
如:var name=“张三”,age=10,sex=‘男’

3)var声明提升:把所有声明的变量都提升到顶部
如:console.log(message)//undefined
var message=20
他为什么不报错呢,因为所有var声明的变量都会提到最前面,所以这里的var message是在console之前出现的。 注:反复使用var声明同一个变量也没有问题。
如:var message=12
var message=1223
var message=087 console.log(message)//0872
let关键字

1)let作用域
let和var最重要的区别就是:var只限于在函数作用域内,而let只限于在块作用域内。
如:if(isflag){
//只限于在{ }内读取
let message=‘hi’
console.log(message)//hi
}
console.log(message)//报错
let与var第二个区别就是:let没有变量提升 如:console.log(message)//报错
let message=‘hi’
let与var第三个区别:let不允许在块作用域中重复声明同一个变量名,
如:if(isflag){ let message=‘h1’ let message=‘oiu’ }
2)let全局声明 let在全局声明不会成为window属性,而var声明则会成为window属性
如:var message=20 consle.log(window.message)//20
let mes=30 console.log(window.mes)//undefined
3)for循环中的let声明
在let之前,for循环里面的参数会渗透在for循环外部 如:for(var i=0;i<5;i++){ } console.log(i)//5
而let只限于块内
for(let i=0;i<5;i++){ } console.log(i)//报错3:const关键字

1)const声明和let声明基本相同
,唯一的重要区别是:const声明必须初始化,且不可以修改值
如:const mes=‘hi’
mes=‘hellow’//出错
01)也不允许重复声明
const mes=01
const mes=02;//报错
02)声明的作用域也是块
if(isflag){ const name=‘zs’ } console.log(name)//报错
2)const声明的限制只适用于它指向变量的引用,也就是const变量引用的是一个对象,那么修改这个对象内部属性并不违反const的限制
如:const person={ }
person.name=‘张三’; //ok
3)你想用const声明一个不会被修改的for循环变量,这对for in和for of非常有用
for(const j =2;i<5;i++){ console.log(j);//5 5 5 5 }
for(const key in {a:1,b:2}){ console.log(key);//a b }
for(const value of [1,2,3,4]){ console.log(value);//1 2 3 4 }
4)声明风格及最佳实践 自从ECMAScript6增加let和const从客观上准确地声明作用域和语义提供了更好的支持。
01)不适用var 使用let和const有助于提升代码质量,因为变量有个明确的作用域,声明位置,以及不变的值

02)const优先,let次之 使用const可以强制使关键词不重复。前提知道未来会修改时,在使用let。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值