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解构赋值的更多相关文章

  1. 关于ES6-{块级作用域 let const 解构赋值 数组 字符串 函数的扩展 箭头函数}

    关于ES6 块级作用域 任何一对花括号({})中的语句集都属于一个块,在块中声明的变量在代码块外都是不可访问的,称之为块级作用域,ES5以前没有块级作用域 let let 是ES6新增的声明变量的一种 ...

  2. ECMAScript6学习笔记 ——let、const、变量解构赋值

    let 不存在变量提升 通过let声明的变量仅在块级作用域内有效 不允许在同一个作用域内重复声明一个变量 防止值公用 var oUl = document.querySelectorAll('ul&g ...

  3. const命令,全局变量的属性,变量的解构赋值

    const命令 1:声明常量(只在当前代码块中有效)---注意声明的常量可以是对象,但是常量储存的是对象的地址,地址声明后不可变,但是可以给常量对象添加属性 全局变量的属性 1:window和glob ...

  4. ES6学习笔记(let,const,变量的解构赋值)

    1.let: ; i < 3; i++) { let i = 'abc'; console.log(i); } // abc // abc // abc 不存在变量提升,它所声明的变量一定要在声 ...

  5. ES6学习笔记一:let、const、解构赋值

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7236342.html 感谢阮一峰老师的无私奉献,开源推动世界!教程地址:http://es6.ruanyife ...

  6. ES6新增语法和内置对象(let,const, Array/String/Set 扩展方法(解构赋值,箭头函数,剩余参数))

    1.let ES6中新增的用于声明变量的关键字. let 声明的变量只在所处于的块级有效. 注意:使用 let 关键字声明的变量才具有块级作用域,var 关键字是不具备这个特点的. 1. 防止循环变量 ...

  7. ES6学习----let、const、解构赋值、新增字符串、模板字符串、Symbol类型、Proxy、Set

    这篇es6的学习笔记来自于表哥 表严肃,是我遇到过的讲课最通透,英文发音最好听的老师,想一起听课就去这里吧 https://biaoyansu.com/i/hzhj1206 ES6就是JS6,JS的第 ...

  8. es6之变量的解构赋值

    es5中通常我们声明变量都是以下的方式: var a = 10; var b = 20; var c = 30; //或者 var a = 10,b = 20,c = 30; //或者 var arr ...

  9. ES6之解构赋值

    截止到ES6,共有6种声明变量的方法,分别是var .function以及新增的let.const.import和class: 我们通常的赋值方法是: var foo='foo'; function ...

随机推荐

  1. Unity Shader 玻璃效果

    一个玻璃效果主要分为两个部分,一部分是折射效果的计算,另一部分则是反射.下面分类进行讨论: 折射: 1.利用Grass Pass对当前屏幕的渲染图像进行采样 2.得到法线贴图对折射的影响 3.对采集的 ...

  2. spring源码解析之IOC容器(四)——属性注入

    上一篇跟踪了bean的创建过程,接下来,我们继续跟踪bean的属性填充的过程.先回到doCreateBean方法,代码如下: protected Object doCreateBean(final S ...

  3. scala class中孤立代码块揭秘

    在 scala class中,经常会有很多的代码块需要执行,它们不在任何方法中,只是孤立的代码块. 案例: class Tester(val name:String, num:Integer) { p ...

  4. Django生成PDF显示在网页上以及解决中文显示乱码的问题

    项目地址:https://github.com/PythonerKK/django-generate-pdf/tree/master 这个demo实现了通过用户输入自己的个人信息生成一份简历pdf,来 ...

  5. java泛型的作用及其基本概念

    一.泛型的基本概念 java与c#一样,都存在泛型的概念,及类型的参数化.java中的泛型是在jdk5.0后出现的,但是java中的泛型与C#中的泛型是有本质区别的,首先从集合类型上来说,java 中 ...

  6. 两张图示轻松看懂 UML 类图

    一个类如何表示 第一格为类名 第二格为类中字段属性 格式:权限 属性名:类型 [ = 默认值 ] 权限:private.public .protected.default,它们分别对应 -.+.#.~ ...

  7. Linux htop 使用

    引言 一般大家查看进程相关信息常用的命令是 top,之前接触并使用 htop,觉得比较好用,它算是 top 的增强版,这里重新记录下. htop 简介 NAME htop - interactive ...

  8. Fire! UVA - 11624 (两步bfs)

    题目链接 题意 人要从迷宫走出去,火会向四个方向同时扩散 分析 两步bfs,先出火到达各地时的时间(设初始时间为0,人每走一步为1s,在着一步内火可以向四周可触及的方向同时扩散),然后在bfs人,人能 ...

  9. Codeforces 1133E - K Balanced Teams - [DP]

    题目链接:https://codeforces.com/contest/1133/problem/C 题意: 给出 $n$ 个数,选取其中若干个数分别组成 $k$ 组,要求每组内最大值与最小值的差值不 ...

  10. AntD使用timePiacker封装时间范围选择器(React hook版)

    .katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...