美文网首页
var变量提升以及let,const区别

var变量提升以及let,const区别

作者: 黑白说程序 | 来源:发表于2020-09-08 15:24 被阅读0次

首先我们要了解什么叫变量作用域,变量作用域通俗来说就是 变量在什么区域范围是可用的 

var和let的三大区别

①:var在if和for里面没有块级作用域,var是有全局作用域和函数作用域的,let有全局作用域和块级作用域

②:var是可以重复定义 var a=1 ; var a=3  而let是不可以的

③:var是可以i变量提升

通常打开网页时,浏览器会先分析一遍js,会对里面的var进行变量提升,例如

console.log(web)  //输出underfined 

var web='hello'

为什么会输出underfined,是因为上面的代码其实相当于

var web

console.log(web)  //输出underfined 

var web='hello'

这里其实可以引申到null和underfined的区别了:

注意:只定义变量名没有赋值,或者没有定义变量 检测类型都是返回underfined。但是如果直接使用未定义的变量会控制台会报错

但是上面的例子为什么不是因为没有定义变量 才返回underfined呢

那是因为我们可以用下面的例子说明

var web='hello'

console.log(web)  //输出underfined 

var class=‘world’

因为我在这里用class关键字去做一个变量,就会报错,他不会先执行上面的代码在报错,而是直接报错

let定义变量,let不存在变量提升

console.log(web)  // 控制台会报错,因为let不存在变量提升

let web='hello'

const定义常量,他的意思就是 指向一块内存地址,不可以在改变地址,因此在定义对象赋值给一个const常量,可以改变对象里面的值,这是因为对象的地址没有变,修改的一直是这个地址内的区域,例如

const a={}

a.url="www.baidu.com"

a.name='world'

console.log(a); //这里就是因为对象的地址没有改变,改变的这个地址区域里的内容

var定义的变量都是在window对象下的例如var web='网页' 那么可以用window.web去调用,但是用let定义的变量 是不存在在window对象下的 不可以调用的。例如:

var web='hello'

window.web //直接打印出web的值hello

let num=‘99’

window.num //这样返回的是underfined

相关文章

  • 面试题 var let const的区别 箭头函数和普通函数的区

    var let const 有什么区别 var var声明的变量可进行变量提升,let和const不会var可以重...

  • Android菜鸟学习js笔记 一

    一、var,const,let区别? var 变量,const 常量,let块级变量。

  • js 2022经典面试题汇总

    1.JS数据类型有哪些 2.var、let、const区别 var存在变量提升,而let、const没有 let、...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • js 中 var let const 的区别

    很多人认为 var 和 let const 的区别在于,var 会变量提升,而 let const 不会,虽然可以...

  • es6

    1、let 和const(定义变量) (1)var 、let 、const的区别 a、作用域区别var 变量声明会...

  • let,const和var的区别

    let,const和var的区别 变量提升:const 和 let 必须先声明再使用,不支持变量提升 作用域:co...

  • js中var,const,let的区别

    var,const,let的区别 图1是var,const,let功能对比图,后续会根据变量提升,函数作用域,块级...

  • var变量提升以及let,const区别

    首先我们要了解什么叫变量作用域,变量作用域通俗来说就是 变量在什么区域范围是可用的 var和let的三大区别 ①:...

  • 前端面试之ES6

    var、let 和 const的区别 var变量var 声明的变量会被提升到作用域的顶部var 声明的变量会被挂载...

网友评论

      本文标题:var变量提升以及let,const区别

      本文链接:https://www.haomeiwen.com/subject/loqdektx.html