我的ES6学习之路(一)
强烈推荐 阮一峰写的《ECMAScript6入门》
let和const命令
let命令:
let用于声明变量,用法和var相似,但是不完全相同,有以下几点区别
① let命令只在当前作用域中有效;
② let不会发生‘变量提升’的现象,变量一定要声明后在使用他,否则会报错。
问题:ES6支持ES5 但是如果发生以下情况也会报错
1 var demo = 13; 2 if(true){ 3 demo = "abc"; //这里也会报错 4 let demo; 5 }
原因:只要在块级作用域内存在 let ,const 命令就会形成一个‘暂时性死区’ ,即使全局中声明了该变量也会报错
连带结果:typeof 不是很管用啦!
if(true){typeof x; //报错 let x;typeof y; //undefined }
③ let 不允许在相同作用域内重复声明
④ 块级作用域:
ES5:只存在全局作用域和函数作用域
ES6: 添加了块级作用域,而且还允许其嵌套使用,也可以直接使用 {块级作用域执行内容... //和立即执行函数功能一样 } 还允许在块级作用域内声明函数是不是方便的
⑤ 虽然let声明的变量不会被提升,但是函数的声明还是会被提升的!
const命令:
①添加的常量的声明命令-------声明后为只读属性不允许改变
②其他特点和let一样,不会提升,会形成暂时性死区,
变量的‘解构赋值’
解构赋值:ES6允许按照一定的模式,从数组和对象中提取值,然后对变量进行赋值。
let [a,b,c] = [1,2,3] // 如果是ES5的话只能一个个的声明变量并赋值啦!
解构赋值的本质应该就是一种匹配模式,只要等号两边的模式相同就可以进行赋值啦!如果匹配不到 就会返回undefined给变量
let [a, b, ...c] = ["a"]a // "a" b // undefined c // [] 返回空数组是 ‘...’ 的功劳哦
还有“不完全解构” 也就是值多于变量
let [a, [b], c] = [1,[2 , 3], 4] a // 1 b //2 [2,3]没有完全解构 c //4
转载于:https://www.cnblogs.com/web-Rain/p/6047114.html
我的ES6学习之路(一)相关推荐
- Damon的es6学习之路 -- 循环的学习(day 2)
先总结下es6常用的几种循环: forEach,map,filter,some,every,indexOf,lastIndexOf,reduce,reduceRight 其中,粗体标记的是我目前认为会 ...
- typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)
提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...
- typescript学习之路(四) —— ts类的继承(包含es5以及es6的类继承)
上一文已经写了es5,es6等类的定义,所以本章主要写es5和es6的继承,由于es6的继承和ts的继承如出一辙,只是加了类型定义而已,所以ts的继承稍微写下,不会太详细. 文章目录 es5继承 原型 ...
- webpack学习之路
webpack学习之路 当自己在学习webpack的时候,在网上发现中文的很详细的教程很少,于是便想将自己学习webpack的笔记记录整理下来,便有了这篇文章,希望对大家有所帮助,如果有错误,欢迎大家 ...
- 一个普通本科在校生的前端学习之路
原创 西安前端交流会: 卡农 ovenzeze@qq.com 本文章同步发表在wdShare西安前端交流会网站.我的个人博客以及segmentFault和掘金. 转载请注明出处 这是西安初级前端群里边 ...
- TypeScript入门学习之路
TypeScript学习之路 TypeScript学习之路 安装typescript环境 typescript起步 typescript开发工具vscode自动编译.ts文件 typescript中的 ...
- Redis学习之路(一)--下载安装redis
redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...
- 前端Vue学习之路(二)-Vue-router路由
Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...
- 前端Vue学习之路(一)-初识Vue
Vue学习之路 (一) 1.引言 2.更换npm国内镜像源 3.用npm下载Vue 4.Vue全家桶 5.使用命令创建项目 5.推荐插件 6.推荐网站 7.学习扩展 1.引言 先安装node.js环境 ...
- 学习之路-现代密码学基础-001
学习之路-现代密码学基础-第一章密码学概论 转载于:https://www.cnblogs.com/vegetables-Adanos/p/5371420.html
最新文章
- 什么是深度智能:2021年深度智能的发展趋势
- 汉诺塔递归与非递归算法
- Elasticsearch - cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)]
- android bitmap保存本地图片,Android保存View转Bitmap并到本地图库实时更新
- python fact函数_第5天:Python 函数
- 不花钱就补足营养的8妙招
- Airflow 中文文档:初始化数据库后端
- 来自 Dropbox 的可扩展性设计经验
- matlab打乱矩阵行,matlab 中,怎么让一个矩阵按某一列排列,并且行也跟着变动?...
- read一个收到RST的socket会返回0?
- Kubernetes 是什么?为什么也称为 K8S?| 科普
- html h3标签,网站h1,h2,h3标签的用法和技巧
- 学习记录-FDD大规模MIMO系统的稀疏信道估计技术研究
- Excel通过图片名插入图片
- 如何有效去除博客上的广告
- 如何看待社会的阴暗面
- 一些关于罗马字符的知识
- 如何高效进行无人机动力测试-电池效率
- 临沂办理高新技术企业需要什么文件及材料
- MLOps介绍:机器学习技术债
热门文章
- python+selenium 自动化测试环境搭建
- eMMC的MMC模式与SPI模式
- Android核心模块内容概述
- css工程师技巧,web前端工程师必须掌握的技巧–CSS Sprites技术(附基础操作教程)...
- dll模块化设计与编程_PLC模块、结构化编程到底强在哪里?
- 打开的文件过多问题排查思路及解决过程
- 外层div自动撑大为什么没有最大_在工业自动化行业,为什么电阻触摸屏更受欢迎...
- 3.4选择性嵌入服务容器
- 网站安全之存储型跨站脚本编制
- 【渝粤教育】国家开放大学2018年秋季 0550-22T素描(一) 参考试题