一. let和const

①let声明的变量只在它的块作用域有效({ }括起来)

②let不能重复声明同一变量

③const声明的常量不能改(但对象可以加属性)

④const也有块作用域概念

⑤const声明时必须赋值

二. 解构赋值(左右一 一对应赋值,主要是数组和对象两种)

①数组:

若解构赋值左右没配对上则为undefined

{
let a,b,c,rest;
[a,b,c=3]=[1,2];//可以用默认值
console.log(a,b,c);//1 2 3
}

使用场景:

变量交换 [a,b] = [b,a];

{
let a=1;
let b=2;
[a,b]=[b,a];
console.log(a,b);//2 1
}

函数fn返回值赋给变量 [a,b] = fn( );

{
function f(){
return [1,2]
}
let a,b;
[a,b]=f();
console.log(a,b);//1 2
}

fn返回多个值 [a, , ,b] = fn( );(逗号中间占一个数)

{
function f(){
return [1,2,3,4,5]
}
let a,b,c;
[a,,,b]=f();
console.log(a,b);//1 4
}

不知道fn返回多少个值,我只关心某一个 [a, ,...b] = fn( );(...b是数组)

{
function f(){
return [1,2,3,4,5]
}
let a,b,c;
[a,,...b]=f();
console.log(a,b);//1 [3,4,5]两逗号之间占一个数
}

②对象:

赋值可以覆盖默认值,key相等则value相等

{
let o={p:42,q:true};
let {p,q}=o;
console.log(p,q);//42 true
}

使用场景:

嵌套赋值

{
let metaData={
title:'abc',
test:[{
title:'test',
desc:'description'
}]
}
let {title:esTitle,test:[{title:cnTitle}]}=metaData;
console.log(esTitle,cnTitle);//abc test
}

三.正则扩展

新增特性:构造函数的变化  正则方法的扩展  u修饰符  y修饰符  s修饰符

{
let regex = new RegExp('xyz', 'i'); //第一个参数是字符串,第二个是修饰符
}
{
let regex3 = new RegExp(/abc/ig, 'i');
console.log(regex3.flags);//i,找修饰符
}
{  
 let s = 'bbbb_bbb_bb_b';
 var a1 = /b+/g;
 var a2 = /b+/y;
 console.log(a1.exec(s), a2.exec(s)); // ["bbbb"],["bbbb"]
 console.log(a1.exec(s), a2.exec(s)); // ["bbb"],null /g再次调用往下匹配,/y则不会
 console.log(a1.sticky, a2.sticky); //false,true表示是否开启了粘连模式/y
}
{
 console.log(/\u{61}/.test('a')); // false
console.log(/\u{61}/u.test('a')); // true
// 使用u修饰符后,所有量词都会正确识别大于码点大于0xFFFF的Unicode字符
}

四.字符串扩展

新增特性:Unicode表示法  遍历接口  模板字符串  新增方法

{
console.log(`\u0061`);//a Unicode表示
}
{
let s1='

ECMAScript6语法重点(一)的更多相关文章

  1. ECMAScript6语法重点(二)

    十一.Proxy和Reflect(Proxy保护对象不被外界访问:Object方法移植到Reflect) ①Proxy:原始对象(供应商)通过Proxy(代理商)生成新对象(映射原对象),用户访问的是 ...

  2. ECMAScript6 语法

    声明变量 var let const var(声明局部变量,有局部外可用缺陷) 代码 <!DOCTYPE html> <html lang="en"> &l ...

  3. ECMAScript6语法检查规范错误信息说明

    项目中使用ECMAScript6的时候经查会使用语法检查,下面是常见错误信息的汇总: “Missing semicolon.” : “缺少分号.”, “Use the function form of ...

  4. js语法重点

    1:最新的ES6规范引入了新的数据类型Map:var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);m.get('Michael ...

  5. 07.VUE学习之解决phpstorm不识别ECMASCRIPT6语法的问题

    此时已经识别:

  6. Vue--vue中常用的ECMAScript6语法

    1.对象的写法 es5中对象: {add:add,substrict:substrict} es6中对象: {add,substrict} 注意这种写法的属性名称和值变量是同一个名称才可以简写,否则要 ...

  7. 【重点突破】——Cookie的使用

    cookie:小甜饼 cookie:保存客户端浏览器中一个纯文本文件 版本高的浏览器可查看   F12->Resource  左下方cookie    查看 cookie作用: 保存:[安全性要 ...

  8. 优化MySchool数据库设计之【巅峰对决】

    优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...

  9. JavaScript知识点

    Day 01 1.Javascript 概述 1.什么是Javascript (JS) Javascript 是一种运行于 JS解释器/引擎 中的解释型脚本语言 JS解释器/引擎 :JS运行环境 1. ...

随机推荐

  1. 安装ES6及HEAD插件

    1.下载相应npm包 es6地址:https://www.elastic.co/downloads/elasticsearch head插件地址:https://github.com/mobz/ela ...

  2. mongoose与express

    一.mongoose的使用1.先创建一个项目目录,初始化:npm init -y2.创建一个server.js文件,在该目录下安装mongoose:cnpm install mongoose3.引入m ...

  3. N-Gram的基本原理

    1.N-Gram的介绍 N-Gram是基于一个假设:第n个词出现与前n-1个词相关,而与其他任何词不相关(这也是隐马尔可夫当中的假设).整个句子出现的概率就等于各个词出现的概率乘积.各个词的概率可以通 ...

  4. MyBatis中#{ }和${ }的区别,数据库优化遵循层次和查询方法

    MyBatis中#{ }和${ }的区别详解 1.#将传入的数据当成一个字符串,会对自动传入的数据加一个 双引号. 例如order by #id#,如果传入的值是111,那么解析成sql时变为orde ...

  5. NOI2018 网络同步赛的启示

    D1D2一共6题,暴露出我的许多问题 D1 T1 100 T2 8 T3 0 D2 T1 90? T2 15? T3 0 D1T1:决不能在noip之后便不再写dijkstra 不再写kruskal和 ...

  6. Python Selenium element is not reachable by keyboard

    碰到这个问题,没法解决, 最后这么搞的 pcAction.move_by_offset(571, 534).click().perform() #激活输入框 driver.switch_to.acti ...

  7. oracle merge同时包含增、删、改

    原来一直没注意,merge是可以支持delete,只不过必须的是on条件满足,也就是要求系统支持逻辑删除,而非物理删除. Using the DELETE Clause with MERGE Stat ...

  8. 02:MongoDB操作

    1.1 MongoDB 增加 1.插入数据 1. 插入文档: insert 如果插入数据的时候,collection还不存在,自动创建集合 2. insertOne: 插入一条数据 3. insert ...

  9. 前端 --- 3 css 属性

    一. 标签嵌套规则 块级标签能够嵌套某些块级标签和内敛标签(行内标签) 内敛标签不能嵌套块级标签,只能嵌套内敛标签 二.   属性 1.宽和高 (块级标签能够设置高度和宽度 内敛标签不能设置,设置了没 ...

  10. Mybatis的in使用

    foreach元素的属性主要有 item,index,collection,open,separator,close.    item表示集合中每一个元素进行迭代时的别名,    index指 定一个 ...