首页>>前端>>Vue->JS中const作用?

JS中const作用?

时间:2023-12-25 本站 点击:0

变量声明var,let.const使用有哪些区别

var声明变量的作用域限制在其声明位置的上下文中var x = 0; // x是全局变量,并且赋值为0。console.log(typeof z); // undefined,因为z还不存在。

区别 : var可以先使用,后声明;let必须先声明后使用。暂时性死区:只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域, 不再受外部的影响。

let对比var都是变量(var没有变量常量一说,但ES5之后其行为与let类似),但是,var和let有很大区别,简单理解就是作用域变了,使用变量需要先声明在赋值后使用的流程。

在JavaScript中有三种声明变量的方式:var、let、const。 var:声明全局变量,换句话理解就是,声明在for循环中的变量,跳出for循环同样可以使用。

var、function、let、const变量提升

首先纠正下,文章标题里的 “变量提升” 名词是随大流叫法,“变量提升” 改为 “标识符提升” 更准确。因为变量一般指使用 var 声明的标识符,JS 里使用 function 声明的标识符也存在提升(Hoisting)。

之前我们说过,“在JavaScript中,刚创建的变量会被初始化为undefined”。事实证明,这就是“变量提升”。JavaScript解释器将在所谓的“创建”阶段为声明的变量分配默认值undefined。var、let和const 我们先来比较var和let。

申明了变量并赋值,但是在程序运行时还没加载到第10行的时候,变量就被申明,但是到第10行的时候变量才被赋值。这个就是变量提升。

function a() { // 当a被调用时, var y = 2; // y被声明成函数a作用域的变量,然后赋值成2。

这是因为,变量提升时,只提升了声明,并没有提升赋值。

这种变量提升机制在开发时会给我们造成很多的困扰,ECMAScript 6引入了let声明,用法与var相同,不过用let声明的变量不会被提升,可以把变量的作用域限制在当前代码块中。使用let声明变量,还可以防止变量的重复声明。

var、let、const三者之间的区别和联系有哪些?

1、简单来说,var的作用域是混乱的,同父子作用域下var可以被多次定义。

2、var声明变量的作用域限制在其声明位置的上下文中var x = 0; // x是全局变量,并且赋值为0。console.log(typeof z); // undefined,因为z还不存在。

3、var和let是JavaScript中两个常见的声明变量的方式,它们的区别主要体现在作用域、重复声明、全局对象属性上。在作用域上 在函数内部声明的var变量具有函数级作用域,而let变量则具有块级作用域。

4、不允许变量提升,也就是说,先使用,再初始化,这个会报错,也不允许重定义。var的话,其是函数作用域的,其值修改,允许变量提升,也允许多次重定义。

5、i++) {console.log(i);}let x=i*i;因为它的作用域仅限于在for循环内,所以外部未声明不可使用。const关键字新的const关键字可以声明一个只读的常量,也称为不可变变量,声明以后我们无法重新分配新的内容。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Vue/58157.html