let和const解构赋值
1、let和const:最基础也很容易理解的,let是 声明一个变量,const是声明一个常量。
具体细节看如下实例代码
{
let a=;
console.log(a)
}
// console.log(a) //let 只作用于当前代码块,也就是{}之内,所以这里会报错,而且不会预解析,下面声明是没用的
let a=
//let 声明一个变量
//const 声明一个常量(不会变的)
// let a=1;
// var a=1;
// let a=1//这两种情况会报错,不允许重复性声明变量
let f=;
function cons() {
f=; //暂时性死区 会报错
console.log(f)
let f=
}
// cons()
//let在for循环中的好处直接打印出索引,不用index()方法
var btn=document.getElementsByClassName('btn');
console.log(btn)
for(let i=;i<btn.length;i++){
btn[i].onclick=function () {
console.log(i)
}
}
//let在for循环中,在循环语句里面是父作用域,在循环内是子作用域
for(let i=;i<;i++){
let i=;
console.log(i) //打印出来是10;上面的是父作用域,里面的事子作用域
}
/*
* const同样有let 的上面特点,1 声明的常量只能在其代码块内有效 2 声明的变量不会被提升(预解析)3 不能声明以及声明过的常量,
* 除了这些还有 1 声明的时候必须赋值2 如果储存的事个简单数据类型时候不能改变其值,如果是对象,那么引用不可以改变,只有里面的数据变化是没关系的
* */
2、解构赋值,简单来说就是将等号两边写成一样的模式,然后进行对应的赋值。如下实例
//1 数组的解构赋值
let [a,b,c]=[,,]
console.log(a,b,c) //1 2 3
let [e,[[f],g]]=[,[[],]]
console.log(e,f,g) //1 2 3
let [x]=[]
console.log(x)//相当于let x; undefined
let [y=]=[]
console.log(y)//1 可以给默认值
//2 对象的解构赋值,原来就是根据key值,查找赋值,因为对象没有顺序
let {h,i}={h:'aaa',i:'bbb'}
console.log(h,i) //aaa bbb
let {j:k}={j:}
console.log(k) //2222
//3 基本类型的解构赋值,用的很少,可忽略
let [s,m,n]=''
console.log(s,m,n) //1 2 3
let和const解构赋值的更多相关文章
- 关于ES6-{块级作用域 let const 解构赋值 数组 字符串 函数的扩展 箭头函数}
关于ES6 块级作用域 任何一对花括号({})中的语句集都属于一个块,在块中声明的变量在代码块外都是不可访问的,称之为块级作用域,ES5以前没有块级作用域 let let 是ES6新增的声明变量的一种 ...
- ECMAScript6学习笔记 ——let、const、变量解构赋值
let 不存在变量提升 通过let声明的变量仅在块级作用域内有效 不允许在同一个作用域内重复声明一个变量 防止值公用 var oUl = document.querySelectorAll('ul&g ...
- const命令,全局变量的属性,变量的解构赋值
const命令 1:声明常量(只在当前代码块中有效)---注意声明的常量可以是对象,但是常量储存的是对象的地址,地址声明后不可变,但是可以给常量对象添加属性 全局变量的属性 1:window和glob ...
- ES6学习笔记(let,const,变量的解构赋值)
1.let: ; i < 3; i++) { let i = 'abc'; console.log(i); } // abc // abc // abc 不存在变量提升,它所声明的变量一定要在声 ...
- ES6学习笔记一:let、const、解构赋值
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7236342.html 感谢阮一峰老师的无私奉献,开源推动世界!教程地址:http://es6.ruanyife ...
- ES6新增语法和内置对象(let,const, Array/String/Set 扩展方法(解构赋值,箭头函数,剩余参数))
1.let ES6中新增的用于声明变量的关键字. let 声明的变量只在所处于的块级有效. 注意:使用 let 关键字声明的变量才具有块级作用域,var 关键字是不具备这个特点的. 1. 防止循环变量 ...
- ES6学习----let、const、解构赋值、新增字符串、模板字符串、Symbol类型、Proxy、Set
这篇es6的学习笔记来自于表哥 表严肃,是我遇到过的讲课最通透,英文发音最好听的老师,想一起听课就去这里吧 https://biaoyansu.com/i/hzhj1206 ES6就是JS6,JS的第 ...
- es6之变量的解构赋值
es5中通常我们声明变量都是以下的方式: var a = 10; var b = 20; var c = 30; //或者 var a = 10,b = 20,c = 30; //或者 var arr ...
- ES6之解构赋值
截止到ES6,共有6种声明变量的方法,分别是var .function以及新增的let.const.import和class: 我们通常的赋值方法是: var foo='foo'; function ...
随机推荐
- List集合总结,对比分析ArrayList,Vector,LinkedList
前面已经写了三篇关于Java集合的文章,包括: Java集合 ArrayList原理及使用 再说Java集合,subList之于ArrayList Java集合 LinkedList的原理及使用 关于 ...
- kubernetes实战篇之通过api-server访问dashboard
系列目录 前面一节我们介绍了如何使用kube-proxy搭建代理访问dashboard,这样做缺点非常明显,第一可以通过http访问,第二是这种方式要启动一个后台进程,如果进程关闭了则不能够访问了,还 ...
- C#—使用InstallerProjects打包桌面应用程序
前言 打包桌面应用程序实在是一个不常使用的东西,偶尔使用起来经常会忘东忘西的耽误时间,因此,这篇文章多以图片记录过程,也是用于备忘. 下载打包工具 C#打包桌面应用程序有很多种方法,这里介绍一种使用M ...
- Codeforces Round #568 (Div. 2)B
B. Email from Polycarp 题目链接:http://codeforces.com/contest/1185/problem/B 题目: Methodius received an e ...
- selenium3+python3自动化测试学习之模拟事件处理
自动化测试实战之ActionChains模拟用户行为 需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽 解决:selenium提供了一个类来处理这类事件 selenium.webdr ...
- Nginx部署多个站点
Nginx部署多个站点 一,介绍与需求 1.1,介绍 详细介绍请看nginx代理部署Vue与React项目,在这儿主要介绍多个站点的配置 1.2,需求 有时候想在一台服务器上为不同的域名/不同的二级域 ...
- BFS(三):双向广度优先搜索
所谓双向广度搜索指的是搜索沿两个方向同时进行:(1)正向搜索:从初始结点向目标结点方向搜索:(2)逆向搜索:从目标结点向初始结点方向搜索:当两个方向的搜索生成同一子结点时终止此搜索过程. 广度双向搜索 ...
- HDU 3338:Kakuro Extension(脑洞大开的网络流)
http://acm.hdu.edu.cn/showproblem.php?pid=3338 题意:在一个n*m的地图里面,有黑方块和白方块,黑方块可能是“XXXXXXX”或者“YYY/YYY”,这里 ...
- oracle获取当天时间的最开始的时间和最结尾的时间
),,'yyyy-mm-dd')||' 23:59:59' from dual
- XAML与C#与WPF三者到底有什么关系?
XAML是.NET体系开发程序或者网页时前台编程的一种布局方式或者说开发语言,可以比较自由的用标签的方式进行布局,借鉴了HTML和XML等语言的风格,并且加入了一些动画等的实现.C#则是后台逻辑开发用 ...