一. 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. Vue2.0,Express实现的简单跨域

    https://www.cnblogs.com/kevin-zjy-blog/p/7357220.html 1. 通过jsonp跨域2. document.domain + iframe跨域3. lo ...

  2. [转载]ASP.NET页面之间传递值的几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  3. spark机器学习笔记01

     1)外部数据源 val distFile1 = sc.textFile("data.txt") //本地当前目录下文件 val distFile2 =sc.textFile(& ...

  4. linux学习笔记---grep

    先来讲讲grep(搜索过滤) 1.命令格式: grep [option] pattern file 2.命令参数: -a 不要忽略二进制的数据 -A<显示行数>          除了显示 ...

  5. Django框架----Form组件

    Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...

  6. 利用yum搭建lamp环境并进一步创建博客

    用yum搭建lamp环境 第一.安装apache yum -y install httpd 第二.安装mariadb Yum -y mariadb mariadb-server 第三.安装php Yu ...

  7. python的一些遗漏用法

    一. 补充基础数据类型的相关知识点 1. str. join() 把列表变成字符串 li = ["李嘉诚", "麻花藤", "⻩海峰", & ...

  8. django的url配置

    在一个请求到达的时候,最先达到的就是视图层,然后根据url映射到视图函数.这一部分我们来说明url的配置. 概述 为了给一个应用设计URL,你需要创建一个Python 模块,通常称为URLconf(U ...

  9. kivy中文

    from kivy.config import Config Config.set('kivy', 'default_font', [ 'msgothic', 'DroidSansFallback.t ...

  10. redis-3.2 集群

    目录 简介 集群简介 Redis 集群的数据分片 Redis 集群的主从复制模型 Redis 一致性保证 redis 集群间的通信 环境 安装Ruby 部署 安装Redis略 创建集群 集群节点信息 ...