您现在的位置是:首页 > Javascript
当前栏目
ES6新增语法—let、const、var的区别
2023-03-07 09:50:06 时间
ES6简介
ES6是ECMAScript 6.0的简称,是javascript语言的下一代标准,已经在2015年6月正式发布上线。目的就是为了统一javascript的语法标准,可以用来开发大型应用程序,称为企业级开发语言。
ES6与JavaScript的关系:
ES6是JavaScript的规范标准,JavaScript是ES6的一种实现。
变量/赋值
块级作用域{}
ES5中作用域有:全局作用域、函数作用域,没有块作用域的概念。ES6新增了块级作用域,块作用域由{}包括,if语句里面的{}也属于块级作用域。
//通过定义的变量可以跨块作用域访问到
- //通过定义的变量可以跨块作用域访问到
- {
- var a = 12;
- console.log("a",a)
- }
- console.log("a",a)
- //通过var定义的变量不能通过跨函数作用域访问到
- (function(){
- var b = 5;
- })()
- console.log("b",b) // not defined
var 与let和const区别:
const定义的对象属性是否可以改变?
实例:修改对象的属性值。
- const per = {
- name:'倩倩'
- }
- per.name = "我是嘻哈"
- console.log("per.name",per.name) //打印出我是嘻哈
通过上个实例,我们发现对象的属性是可以修改的,这是什么原因呢?
对象是引用类型的,per中保存的仅是对象的指针,意味着指针不会发生改变,修改对象的属性不会改变对象的指针,所以是允许修改的。
赋值:新增解构赋值,就是对数据拆解并赋值。解构赋值的两个规则:
左右两边模式必须一致
必须让定义和赋值同步完成。
实例:正确的结构赋值
- let [a,b,c] = [1,2,3]
- console.log("a",a)//1
- console.log("b",b)//2
- console.log("c",c)//3
实例:左右两边模式一致,数据长短不同时
- let [bar, foo] = [1];
- console.log("bar",bar)//1
- console.log("foo",foo) // undefined
上述解构不成功,变量值等于undefined。
注意:对象也是可以解构的,但是需要注意的是对象和数组的解构有很大的区别,对象的属性没有次序,变量必须与属性同名,才能取到正确的值。
- let { bar,foo } = {
- foo:'aaa',
- bar:'bbb'
- }
- console.log('bar',bar)
- console.log('foo',foo)
- console.log('baz',baz) // not defined
相关文章
- 鲜为人知但很有用的 HTML 属性
- 翻转再翻转!有意思的水平横向溢出滚动
- 自定义计数器小技巧!CSS 实现长按点赞累加动画
- 过五关!React高频面试题指南
- 软件开发中的十个认知偏差
- 不需要 JS!仅用 CSS 也能达到监听页面滚动的效果!
- 一文读懂TypeScript类型兼容性
- Vue 的响应式原则与双向数据绑定
- 快速掌握 TypeScript 新语法:Infer Extends
- JWT教你如何证明你是我的人!
- 一篇带给你 V8 GC 的实现
- 面试官:请使用JS完成一个LRU缓存?
- 通过可视化来学习JavaScript事件循环
- 新的跨域策略:使用 COOP、COEP 为浏览器创建更安全的环境
- 为什么有人说 vite 快,有人却说 vite 慢?
- 种草 Vue3 中几个好玩的插件和配置
- 超全面的前端工程化配置指南
- Vue 状态管理未来样子
- Volatile关键字能保证原子性么?
- 面试突击:SpringBoot 有几种读取配置文件的方法?