一、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新特性使用小结(一)的更多相关文章

  1. ES6新特性使用小结(三)

    九.数据类型 Symbol /* * Symbol 数据类型 概念: Symbol 提供一个独一无二的值 * */ { let a1 = Symbol(); let a2 = Symbol(); co ...

  2. ES6新特性使用小结(六)

    十三.promise 异步编程 ①.使用 promise 模拟异步操作 { //ES5 中的 callback 解决 异步操作问题 let ajax = function (callback) { c ...

  3. ES6新特性使用小结(四)

    十一.Proxy .Reflect ①.Proxy 的概念和常用方法 { let obj = { //1.定义原始数据对象 对用户不可见 time: '2017-09-20', name: 'net' ...

  4. ES6新特性使用小结(二)

    六.Array 扩展 /* * Array Api Array.of 数组的构建 * */ { let arr = Array.of(, , , , , ); console.log(arr); // ...

  5. ES6新特性使用小结(五)

    十二.class 与 extends ①.类的基本定义和生成实例 { class Parent{ constructor(name='Lain'){ //定义构造函数 this.name = name ...

  6. ES6新特性概览

    本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony( ...

  7. ES6新特性之模板字符串

    ES6新特性概览  http://www.cnblogs.com/Wayou/p/es6_new_features.html 深入浅出ES6(四):模板字符串   http://www.infoq.c ...

  8. Atitit js版本es5 es6新特性

    Atitit js版本es5 es6新特性 Es5( es5 其实就是adobe action script的标准化)1 es6新特性1 Es5( es5 其实就是adobe action scrip ...

  9. ES6新特性:Proxy代理器

    ES6新特性:Proxy: 要使用的话, 直接在浏览器中执行即可, node和babel目前还没有Proxy的polyfill;,要使用的话,直接在浏览器中运行就好了, 浏览器的兼容性为:chrome ...

随机推荐

  1. apace搭建站点

    Listen 127.0.0.1:3310<VirtualHost *:3306> ServerName 127.0.0.1:3306 DocumentRoot "F:/Baid ...

  2. [原创]Java给word中的table赋值

    一.准备工作: 下载PageOffice for  Java:http://www.zhuozhengsoft.com/dowm/ 二. 实现方法: 要调用PageOffice操作Word中的tabl ...

  3. python之系统编程 --线程

    ###########使用线程完成多任务################ from threading import Thread import time #1. 如果多个线程执行的都是同一个函数的话 ...

  4. MySQL学习_计算用户支付方式占比_20161104

    计算用户支付方式占比 SELECT b.*#根据城市ID 年月排序 FROM ( SELECT a.* FROM ( #纵向合并 SELECT b1.ID,a1.城市,a1.收款方式,DATE_FOR ...

  5. Data Guard 异构平台支持手册

    背景 最简单的DG 环境是同数据库版本,同操作系统平台. 但有时需要在异构平台上来部署DG 环境,比如异构下使用DG 来进行数据迁移,从而降低停机时间和风险等等. 1. 查看主备库的Platform ...

  6. BZOJ1018:[SHOI2008]堵塞的交通

    浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...

  7. WPF中Visible设为Collapse时,VisualTreeHelper.GetChildrenCount为0

    今天遇到一个奇怪的问题, 在给一个控件内的子元素绑定事件时,失败. 发现原因是,这个控件初始化时Visible="Collapse",这时控件内的可视树就没有生成.导致绑定事件失败 ...

  8. RDA项目打包

    注意APP的编译搭建: ./aps/Makefile.toolchain //ccoption path的设定 ./aps/rules.mak //统一的编译规则 MAKE -C 1.TOOLS的可执 ...

  9. JSON 的正确用法:Python、MongoDB、JavaScript与AjaxJSON 的正确用法:Python、MongoDB、JavaScript与Ajax

    本文主要总结网站编写以来在传递 JSON 数据方面遇到的一些问题以及目前采用的解决方案.网站数据库采用 MongoDB,后端是 Python,前端采用“半分离”形式的 Riot.js,所谓半分离,是说 ...

  10. bootstrap 全局样式

    reset.css html { font-family: sans-serif; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100% ...