let 

全面取代var

大概相似于C++的定义,一个变量必须得先定义后使用,没有预编译

注意let的作用域,一个{}就是一个作用域,上述规则须在一个作用于内

坑:for(let i =0;i < 10; i++){

    let i=20;

  }

这个例子存在父子作用域,即(){}各为一个作用域,所以i可以重复let

const

即静态变量值不允许改变,常用于声明为一个常量

坑:let arr=new array(1,2,3);

  arr.push(4);//arr:1,2,3,4

因为数组为引用,引用的地址不能改变,但地址映射的数组内的值可以改变

要想完全不变则使用:object.freeze();

解构

es6最强大的功能之一,简而言之即左边的结构与右边的结构进行匹配,如果匹配成功则赋值给z左边

eg:

let a = 10,b = 20;

let [c,d] = [b,a];//c = 20,d = 10

//当做左边的与右边的不匹配则为undifine

let [e,f,g] =[b,a]//e=20,f=10,g:undefine

//左边可设默认值,当左边与右边的不匹配时使用默认值

let [h, i,j=100] = [b,a]//h=20,i=10,j=100

//对象赋值,同上,但可取别名,注意对象进行模式匹配时是按照键名进行匹配,不是循序匹配

let json = {

  name:"zjj",

  age:"20",

  sex:"man"

};

let [name,aaaaa,age:Age]=json;//name="zjj" ,aaaaa = undifune, Age = "20"

坑:

1.解构时null视为一个正常值,当右边为null时左边匹配的默认值不会生效,只有当右边完全等于(===)undifine时默认值才会生效

2.解构时的默认值为惰性的,只有使用的才会求值

function f() { console.log('aaa'); }

let [x = f()] = [1];//不会打印出aaa

3.解构时右边的值必须为可以遍历的结构,例如数组,对象,set,map等,let [demo] = 10;//ERROR

4.

let x;

{x} = {x: 1};

上面代码的写法会报错,因为 JavaScript 引擎会将{x}理解成一个代码块,从而发生语法错误。只有不将大括号写在行首,避免 JavaScript 将其解释为代码块,才能解决这个问题。改为

let x;

({x} = {x: 1});

上面代码将整个解构赋值语句,放在一个圆括号里面,就可以正确执行

字符串模板

let name = "zjj",age = 15;
let str=`名字为:${name},年龄:${age}`;//str="名字为:zjj,年龄:15"

字符串使用`,拼接的内容使用${...}的形式

es6 入坑笔记(一)---let,const,解构,字符串模板的更多相关文章

  1. es6 入坑笔记(二)---函数扩展,箭头函数,扩展运算符...

    函数扩展 1.函数可以有默认值 function demo( a = 10,b ){} 2.函数可以使用解构 function demo( { a = 0,b = 0 } = {} ){ } 3.函数 ...

  2. es6 入坑笔记(三)---数组,对象扩展

    数组扩展 循环 arr.foreach(){ //回调函数 function(val,index,arr){ //val:当前读取到的数组的值,index:当前读取道德数组的索引,arr:当前的数组名 ...

  3. es6 入坑笔记(五)

    Symbol 主要用做key或私有变量,Symbol是唯一的不可重复的,也是一个单独的数据类型 定义形式: let demo=Symbol("aaaa"); 1.Symbol不能使 ...

  4. es6 入坑笔记(四)---异步处理

    promise 用于js的异步处理 形式: 1.申明一个promise的对象 let p = new Promise(function(成功时的参数,失败时的参数){ if(....){ 成功时的参数 ...

  5. react 入坑笔记(四) - React 事件绑定和传参

    React 事件处理 建议:在了解 js 的 this 取值后食用更佳. 一.react 与 Html 中用法的异同和注意点 html 中的绑定事件的写法: <button onclick=&q ...

  6. ES6学习笔记之变量的解构赋值

    变量的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 数组的解构赋值 以前,为变量赋值,只能直接指定值: 1 2 3 var a = 1; var b = 2; ...

  7. oracle入坑日记<三>用户详解(角色理解)

    1   用户是什么 1.1.权限管理是Oracle的精华,不同用户登录到同一数据库中,可能看到不同数量的表,拥有不同的权限.Oracle 的权限分为系统权限和数据对象权限,共一百多种.如果把Oracl ...

  8. ES6笔记(3)-- 解构赋值

    系列文章 -- ES6笔记系列 解构赋值,即对某种结构进行解析,然后将解析出来的值赋值给相关的变量,常见的有数组.对象.字符串的解构赋值等 一.数组的解构赋值 function ids() { ret ...

  9. Linux探索之路1---CentOS入坑笔记整理

    前言 上次跟运维去行方安装行内环境,发现linux命令还是不是很熟练.特别是用户权限分配以及vi下的快捷操作.于是决定在本地安装一个CentOS虚拟机,后面有时间就每天学习一点Linux常用命令. 作 ...

随机推荐

  1. Oracle 计算两个日期间隔的天数、月数和年数

    在Oracle中计算两个日期间隔的天数.月数和年数: 一.天数: 在Oracle中,两个日期直接相减,便可以得到天数: select to_date('08/06/2015','mm/dd/yyyy' ...

  2. QQ群文件下载速度慢-解决办法

    QQ群文件下载速度慢-解决办法 本方法是本人亲测测试出来的,特此和大家分享 没有效果让你打我 解决方法 1.打开[手机版 QQ] 2.进入群文件,找到需要下载文件 3.[分享],先点击[发给好友],选 ...

  3. 使用Netty3或Netty4发布Http协议服务

    现在是2018年1月11日18:12分,已经是下班时间了,小Alan今天给大家简单的介绍一下Netty,让大家以后在使用到Netty的时候能够有一定的了解和基础,这样深入学习Netty以及以后灵活应用 ...

  4. C# 元素组合算法

    class Program { static void Main(string[] args) { string[] a = { "A", "B", " ...

  5. leetcode Ch1-Search

    一. Binary Search int binarySearch(vector<int> &array, int target) { , hi = array.size() - ...

  6. 沉淀再出发:java中的CAS和ABA问题整理

    沉淀再出发:java中的CAS和ABA问题整理 一.前言 在多并发程序设计之中,我们不得不面对并发.互斥.竞争.死锁.资源抢占等等问题,归根到底就是读写的问题,有了读写才有了增删改查,才有了所有的一切 ...

  7. 沉淀,再出发:AngularJS初探

    沉淀,再出发:AngularJS初探 一.前言 知识的学习需要形成一个闭环,在这个闭环之内可以自圆其说,从而触类旁通,加以理想创造,从而产生灵感.关于前端的知识,我已经写得差不多了,但是还有一个知识点 ...

  8. 沉淀,再出发:Django的简单使用

    沉淀,再出发:Django的简单使用 一.前言     在学习了python的基础语法之后,其实大家都很怀疑python的使用场景,其实python在很多场合都有很强的适应性,就比如说web开发之中使 ...

  9. cetnos7下openresty使用luarocks 进行lua的包管理

    先安装一下包管理工具 yum install luarocks lua-devel -y luarocks install lpack ln -s /usr/lib64/lua /usr/local/ ...

  10. ZT 打工者买彩票中1000万 5年后变逃犯身上剩80元

    打工者买彩票中1000万 5年后变逃犯身上剩80元   2014-01-07 08:22 来源:都市快报 我有话说 挥霍—— 从800万到80元 在湖南永州零陵区富家桥镇茶叶湾村,陈某是不折不扣的名人 ...