重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了var、let及const的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇var、let及const的区别是什么文章都会有所收获,下面我们一起来看看吧。
公司主营业务:成都做网站、网站制作、成都外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出靖安免费做网站回馈大家。
什么是JavaScript?
首先,ECMAScript 和 JavaScript 什么关系?
ECMAScript是一个国际通过的标准化脚本语言。
JavaScript由ECMAScript和DOM、BOM三者组成。 可以简单理解为:ECMAScript是JavaScript的语言规范,JavaScript是ECMAScript的实现和扩展。
var、let、const的区别?
1. var声明变量存在变量提升
,let和const不存在变量提升
console.log(a); // undefined ===> a已声明还没赋值,默认得到undefined值
console.log(b); // 报错:b is not defined ===> 找不到b这个变量
console.log(c); // 报错:c is not defined ===> 找不到c这个变量
var a = 100;
let b = 10;
const c = 10;
console.log(a);//a=100
2. let和const只能在块作用域里访问
if(1){
var a = 100;
let b = 10;
const c = 1;
}
console.log(a); // 100
console.log(b) // 报错:b is not defined ===> 找不到b这个变量
console.log(c) // 报错:c is not defined ===> 找不到c这个变量
3. 同一作用域下let和const不能声明同名变量,而var可以
var a = 100;
console.log(a); //控制台输出 100
var a = 10;
console.log(a); //控制台输出 10
let a = 100;
let a = 10;
// 控制台报错:Identifier 'a' has already been declared ===> 标识符a已经被声明了。
4. const定义常量,而且不能修改,但是在定义的对象时对象属性值可以改变
const a=2
a=3
console.log(a) //控制台报错
const person = {
name : 'make',
sex : '男'
}
person.name = 'test'
console.log(person.name) //运行发现控制台没有报错,且 person.name 被成功修改
????这是怎么回事呢?
因为对象是引用类型的,person中保存的仅是对象的指针,而修改对象的属性不会改变对象的指针,所以这种情况就会修改成功。也就是说const定义的引用类型只要指针不发生改变,都是被允许的。
接下来我们试着修改一下指针,让person指向一个新对象,最后果然报错
const person = {
name : 'make',
sex : '男'}person = {
name : 'test',
sex : '男'}console.log(person.name) //控制台报错
5. 小结
var定义的变量,变量提升,没有块的概念,可以跨块访问。
let定义的变量,只能在块作用域里访问,不能声明同名变量。
const用来定义常量,使用时必须初始化(即必须赋值),不能声明同名变量,只能在块作用域里访问,而且不能修改,但是在定义的对象时对象属性值可以改变。
他们都不能跨函数访问
关于“var、let及const的区别是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“var、let及const的区别是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。