我的编程空间,编程开发者的网络收藏夹
学习永远不晚

浅谈JS中var,let和const的区别

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

浅谈JS中var,let和const的区别

区别1

letvar用来声明变量,const用来声明常量。

变量就是赋值后可以改变它的值,常量就是赋值后就不能改变它的值。

当声明为对象时,可以直接修改对象内的属性值

const age = 26;
age = 36; // TypeError: 给常量赋值

// const声明的作用域也是块
const name = 'Matt';
if (true) {
    const name = 'Nicholas';
}
console.log(name); // Matt

区别2

const不允许只声明不赋值,一旦声明就必须赋值

const num; // 错误
const num = 1; //正确

区别3

var是函数作用域,letconst是块级作用域。

花括号{}就是块级作用域,函数作用域就是函数里面的内容。

{
    let num = 4;
}
console.log(num);// num is not defined
{
    var num = 4;
}
console.log(num); // 4

区别4

var有提升的功能,letconst没有

// 片段A
console.log(a);  //undefined
var a = 4;
// 片段B
console.log(b); //b is not defined
let b = 4;

片段A在代码预编译时,javaScript引擎会自动将所有代码里面的var关键字声明的语句都会提升到当前作用域的顶端,如下:

var a;
console.log(a);  //undefined
a = 4;

区别5

在最外层的作用域,也就是全局作用域,用var声明的变量,会作为window的一个属性;而用letconst声明的变量或常量,并不会作为window的属性

var a = 4;
function foo(){
	
	console.log(this.a);// 4  
}
foo()
let a = 4;
function foo(){
	
	console.log(this.a);// undefined  
}
foo()

区别6

let,const不允许同一个块作用域中出现冗余声明(重复声明),而var可以

var name;
var name; // 可以

let age;
let age; // SyntaxError;标识符age已经声明过了
const name = 'Matt';
const name = 'Nicholas'; // SyntaxError

区别7

变量渗透问题

// for循环中var定义的迭代变量会渗透到循环体外部
for (var i = 0; i < 5; ++i) {
    // 循环逻辑
}
console.log(i); // 5
// 改成使用let之后,这个问题就消失了,因为迭代变量的作用域仅限于for循环块内部
for (let i = 0; i < 5; ++i) {
    // 循环逻辑
}
console.log(i); // ReferenceError: i没有定义

到此这篇关于浅谈JS中var,let和const的区别的文章就介绍到这了,更多相关JS var,let,const,内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

浅谈JS中var,let和const的区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Js中var,let,const的区别你知道吗

众所周知在Javascript中,var、let、const都可用于变量声明,但是之前没有梳理过它们之间的区别,下面这篇文章主要给大家介绍了关于Js中var,let,const区别的相关资料,需要的朋友可以参考下
2023-02-08

javascript中var与let、const的区别详解

这篇文章主要介绍了javascript中var与let、const的区别详解,需要的朋友可以参考下
2022-12-23

var、let及const的区别是什么

这篇文章主要介绍了var、let及const的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇var、let及const的区别是什么文章都会有所收获,下面我们一起来看看吧。什么是JavaScript?首
2023-07-04

JS中let和var的区别有哪些

这篇文章将为大家详细讲解有关JS中let和var的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.作用域的不同:{ let a = 10; var b = 1; } a // Refer
2023-06-14

Javascript 中 var 和 let 、const 的区别及使用方法

ECMAScript变量是松散类型的,意思是变量可以用于保存任何类型的数据,每个变量只不过是一个用于保存任意值的命名占位符,这篇文章主要介绍了Javascript 中 var 和 let 、const 的区别以及具体使用效果,需要的朋友可以参考下
2023-01-13

let和var的区别

区别:1、作用域不同;2、变量提升(hoisting)行为不同;3、重复声明的情况下表现不同;4、全局对象属性的差异;5、块级作用域的存在;总的来说,let使得JavaScript的作用域规则更接近其他高级编程语言,而var则是传统的JavaScript变量声明方式。
let和var的区别
2023-10-29

一文读懂JS中的var/let/const和暂时性死区

这篇文章主要为大家详细介绍了JavaScript中的var、let、const和暂时性死区的异同,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2023-02-27

JS中的var/let/const和暂时性死区实例分析

本篇内容介绍了“JS中的var/let/const和暂时性死区实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!js中变量的特征js的变
2023-07-05

javascript的var与let,const的区别是什么

本篇内容主要讲解“javascript的var与let,const的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript的var与let,const的区别是什么”吧!说到
2023-06-22

JavaScript ES6语法中let,const ,var的区别是什么

JavaScript ES6语法中let,const ,var的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、变量声明的方式let / constlet / co
2023-06-26

编程热搜

目录