ECMAScript6语法重点(一)
一. 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语法重点(一)的更多相关文章
- ECMAScript6语法重点(二)
十一.Proxy和Reflect(Proxy保护对象不被外界访问:Object方法移植到Reflect) ①Proxy:原始对象(供应商)通过Proxy(代理商)生成新对象(映射原对象),用户访问的是 ...
- ECMAScript6 语法
声明变量 var let const var(声明局部变量,有局部外可用缺陷) 代码 <!DOCTYPE html> <html lang="en"> &l ...
- ECMAScript6语法检查规范错误信息说明
项目中使用ECMAScript6的时候经查会使用语法检查,下面是常见错误信息的汇总: “Missing semicolon.” : “缺少分号.”, “Use the function form of ...
- js语法重点
1:最新的ES6规范引入了新的数据类型Map:var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);m.get('Michael ...
- 07.VUE学习之解决phpstorm不识别ECMASCRIPT6语法的问题
此时已经识别:
- Vue--vue中常用的ECMAScript6语法
1.对象的写法 es5中对象: {add:add,substrict:substrict} es6中对象: {add,substrict} 注意这种写法的属性名称和值变量是同一个名称才可以简写,否则要 ...
- 【重点突破】——Cookie的使用
cookie:小甜饼 cookie:保存客户端浏览器中一个纯文本文件 版本高的浏览器可查看 F12->Resource 左下方cookie 查看 cookie作用: 保存:[安全性要 ...
- 优化MySchool数据库设计之【巅峰对决】
优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...
- JavaScript知识点
Day 01 1.Javascript 概述 1.什么是Javascript (JS) Javascript 是一种运行于 JS解释器/引擎 中的解释型脚本语言 JS解释器/引擎 :JS运行环境 1. ...
随机推荐
- 高性能NIO框架Netty入门篇
http://cxytiandi.com/blog/detail/17345 Netty介绍 Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具 ...
- 1069: 统计字符gets函数
题目描述 编制程序,统计文本stdin中字符$出现的次数,并将结果写入文件stdout 输入 字符文本 输出 $次数 样例输入 as$dfkjhkjkjdhf asdfkj$lskdfj werijw ...
- 编写一个JavaWeb项目
基本流程:JSP文件显示页面,在前端页面输入赋值,使用form或href超链接传值到Servlet中方法,在Servlet方法中调用Dao层的类对象,将数据传到数据库中,并实现对数据库里的数据的增删改 ...
- c++ STL中的set和multiset
1.结构 set和multiset会根据特定的排序原则将元素排序.两者不同之处在于,multisets允许元素重复,而set不允许重复. set中的元素可以是任意类型的,但是由于需要排序,所以元素必须 ...
- MySQL&MyBatis 时间处理的配合
1:Mysql 时间类型 mysql数据库:时间类型 1)datetime datetime: "yyyy-mm-dd hh:mm:ss" datetime "1000- ...
- csrf_token(跨站伪造)
Django跨站请求伪造 跨站请求伪造(Cross-site request forgery),也被称为one-click attack或者session riding,通常缩写为CSRF或者XSR ...
- 12: xlrd 处理Excel文件
1.1 xlrd处理.xlsx 文件 1.xlrd常用方法 #!/usr/bin/python # coding:utf-8 # 用xlrd读取Excel文件基本用法 import sys impor ...
- bzoj 4318 OSU! - 动态规划 - 概率与期望
Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1 ...
- 装了as之后提示NO JVM installation found.....
如图. 解决:在AS安装目录下,找到对应的程序[jdk是多少位就打开多少位的]
- DPAA1是如何辅助cpu进行网络加速的?
1.为何会出现DPAA1? 1.1 如果没有多核处理器的出现可能就不会出现这个东东了! 1.2 怎么会跟多核处理器扯上关系呢? 1.2.1 先聊聊单核处理器会怎么处理网络包呢? 单核同一时刻只能处理一 ...