ES6新特性使用小结(一)
一、let const 命令
'use strict';
/*function test(){
//let a = 1;
for(let i=1;i<3;i++){
console.log(i)
}
console.log(i); //引用错误 let a = 1;
let a= 2; //报错 let 不能重复定义同一个变量
}
test();
*/
function last(){
const PI = 3.1515926;
//const 也具有块级作用域 const 声明变量时 *必须赋值
// PI = 8; 报错 const声明的原始类型常量无法修改 PI is readOnly
// console.log(PI); const K = {
a:1
};
K.b=3; //const声明的引用类型可以随意修改 const指向指针
K.a = 0;
console.log(PI,K);
}
last();
二、解构赋值
{
let a, b, reset;
[a, b] = [1, 2];
console.log(a, b); // a =1 b =2
}
{
let a, b, reset;
[a, b, ...reset] = [1, 2, 3, 4, 5, 6];
console.log(a, b, reset); //a = 1 b= 2 reset = [3,4,5,6]
}
{
let a, b;
({a, b} = {a: 1, b: 2});
console.log(a, b) //1,2
}
{
let a, b, c;
[a, b, c = 3] = [1, 2];
console.log(a, b, c); //1,2,3
[a, b, c] = [1, 2];
console.log(a, b, c); //1,2, undefined
}
{
let a = 1; // 使用场景 1 、变量交换
let b = 2;
[a,b]=[b,a];
console.log(a,b); // 2 1
}
{
function f (){ // 使用场景 2、 接收函数返回的多个值
return [1,2];
}
let a ,b;
[a,b]=f();
console.log(a,b); //1 2
}
{
function f(){
return[1,2,3,4,5]
}
let a,b,c;
[a,,,b,c]=f();
console.log(a,b,c) //1 4 5 选择性接收
}
{
function f(){
return[1,2,3,4,5]
}
let a,b,c;
/*
[a,...b]=f();
console.log(a,b) //1 [2,3,4,5] 选择性接收
*/
[a,,...b]=f();
console.log(a,b) //1 [3,4,5] 选择性接收
}
{
let o = {p:42,q:true};
let {p,q} = o;
console.log(p,q); // 42 true
}
{
let {a=10,b=5} = {a:3};
console.log(a,b) // 3 5
}
{
let metaData = {
title:'abc',
test:[{
title:'test',
desc:'description'
}]
}
let {title:esTitle,test:[{title:cnTitle}]} = metaData;
console.log(esTitle,cnTitle); // abc test
}
三、RegExp扩展
{
// ES5 中创建 RegExp 对象的两种方式
let regexp = new RegExp('xyz', 'i'); // i 忽略大小写
let regexp1 = new RegExp(/xyz/i);
console.log(regexp.test('xyz123')); //true
console.log(regexp1.test('xyz123')); //true
// ES6
let regexp2 = new RegExp(/xyz/ig,'i'); //ES6中可以接受两个参数 第二参数会覆盖修饰符
console.log(regexp2.flags); // i RegExp.flags 得到修饰符
}
{
let s = 'bb_bbb_bbbb';
let a1 = /b+/g;
let a2 = /b+/y;
/*
* 修饰符 g y
* g修饰符会在匹配过程中碰到不匹配的字符就忽略
* y修饰符从开始检测在碰到不匹配的字符就停止 粘连模式
* */
console.log('one',a1.exec(s),a2.exec(s)); //[bb] [bb]
console.log('two',a1.exec(s),a2.exec(s)); //[bb] null
//RegExp.sticky 判断一个正则对象是否开启的粘连模式
console.log(a1.sticky,a2.sticky); //fasle true
}
{
/*
* 修饰符 u 通关unicode码来匹配 对大于两个字符的要用 u 来匹配
* */
}
四、String扩展
{
/*
* 字符UNICODE表示法
* */
console.log('a', `\u0061`); //a a
console.log('s', `\u20bb7`); //s ₻7 当unicode码超过了 0xffff 时 会显示为两个字符
//\u20bb 7
console.log('s', `\u{20bb7}`); //s
ES6新特性使用小结(一)的更多相关文章
- ES6新特性使用小结(三)
九.数据类型 Symbol /* * Symbol 数据类型 概念: Symbol 提供一个独一无二的值 * */ { let a1 = Symbol(); let a2 = Symbol(); co ...
- ES6新特性使用小结(六)
十三.promise 异步编程 ①.使用 promise 模拟异步操作 { //ES5 中的 callback 解决 异步操作问题 let ajax = function (callback) { c ...
- ES6新特性使用小结(四)
十一.Proxy .Reflect ①.Proxy 的概念和常用方法 { let obj = { //1.定义原始数据对象 对用户不可见 time: '2017-09-20', name: 'net' ...
- ES6新特性使用小结(二)
六.Array 扩展 /* * Array Api Array.of 数组的构建 * */ { let arr = Array.of(, , , , , ); console.log(arr); // ...
- ES6新特性使用小结(五)
十二.class 与 extends ①.类的基本定义和生成实例 { class Parent{ constructor(name='Lain'){ //定义构造函数 this.name = name ...
- ES6新特性概览
本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony( ...
- ES6新特性之模板字符串
ES6新特性概览 http://www.cnblogs.com/Wayou/p/es6_new_features.html 深入浅出ES6(四):模板字符串 http://www.infoq.c ...
- Atitit js版本es5 es6新特性
Atitit js版本es5 es6新特性 Es5( es5 其实就是adobe action script的标准化)1 es6新特性1 Es5( es5 其实就是adobe action scrip ...
- ES6新特性:Proxy代理器
ES6新特性:Proxy: 要使用的话, 直接在浏览器中执行即可, node和babel目前还没有Proxy的polyfill;,要使用的话,直接在浏览器中运行就好了, 浏览器的兼容性为:chrome ...
随机推荐
- Contiki 2.7 Makefile 文件(四)
3.第三部分 这里我们假设TARGET为native (1) OBJECTDIR = obj_$(TARGET) LOWERCASE = -abcdefghijklmnopqrstuvwxyz UPP ...
- TCP/IP协议数据包文件PCAP分析器
一.设计原理 1.PCAP文件构成 参考http://blog.csdn.net/gulu_gulu_jp/article/details/50494909 PCAP文件由一个PCAP文件头和多个PC ...
- python3 - 写一个生成双色球号码的一个程序,生成的号码写到文件里面
写一个生成双色球号码的一个程序,生成的号码写到文件里面 # 中奖号码由6个红色球号码和1个蓝色球号码组成 # 篮球范围:01-16 # 红球范围:01-33 def swq(num): random. ...
- jsp日期插件My97DatePicker 强大的日期控件 使用方便简单(转)
本文属转载(希望对编程爱好者有所帮助)详情请访问官方网站 http://www.my97.net/dp/index.asp 一. 简介 1. 简介 目前的版本是:4.7 2. 注意事项 My97Dat ...
- linux 加密解密文件小程序
代码见下面,编译之后就可以用:建议放在bash下,或者添加环境变量. 使用方法:encrypt .两次输入密码.加密密码与解密密码不一致解码后就不是原文件了! #include <stdio.h ...
- 3D Flip
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Stamps
链接 分析:dp[i][j]表示前i个数,组成j,最少需要多少个.dp[i][j]=min(dp[i-1][j],dp[i-1][j-k*v[i]]+k),则可以转化为完全背包问题,同样的方法进行降维 ...
- bzoj 2251: 外星联络 后缀Trie
题目大意 http://www.lydsy.com/JudgeOnline/problem.php?id=2251 题解 本来以为这道题应该从01序列的性质入手 结果就想歪了 等自己跳出了01序列这个 ...
- Codeforces 758A. Holiday Of Equality 贪心
题目大意: 给定一个长为\(n\)序列,每次操作在一个数上+1,求最小的操作次数使所有的数大小相同. 题解: 对这种题无话可说 #include <cstdio> #include < ...
- HDU1828:Picture
浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:http://acm.hdu.edu.cn/showproblem.php? ...