es6<一>

来源:互联网 发布:广州知行通航 编辑:程序博客网 时间:2024/06/05 12:00

-块级作用域

function test(){
// var a=2;
for(let i=1;i<3;i++){
console.log(i)
}
// console.log(i). 报错
}
// test();


for(var I=0;i<5;i++ ){
(function(i){
li[i].onclick=function(){}
})(i)
}


for(let i=0;i<5;i++){
li[i].onclick=function(){}
}

-常量

const PI=1.34
const声明一个只读的常量。一旦声明,常量的值就不能改变。
对于复合类型的变量,变量名不指向数据,而是指向数据所在的地址。const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变。

解构赋值


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


{
let a,b,rest;
[a,b,…rest]=[1,2,3,4,5,6,7];
console.log(a,b,rest)
}


{
let a,b;
({a,b}={a:1,b:2})
console.log(a,b)
}


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


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


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


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


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


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


{
let json={
title:’abc’,
test:[{
title:’test’,
desc:’description’
}]
}
let {title:esTitle,test:[{title:cnTitle}]}=json
console.log(esTitle,cnTitle)
}

es6正则

`
{
let regex= new RegExp('xyz','i');
let regex2=new RegExp(/xyz/i);
console.log(regex.test('xyz123'),regex2.test('xyz123'))
let regex3=new RegExp(/xyz/gi,'i');
console.log(regex3.flags)
}
{
let s='bbb_bb_b';
let a1=/b+/gi;
let a2=/b+/y;
//沾粘 y会_开始
console.log(a1.exec(s),a2.exec(s))
console.log(a1.exec(s),a2.exec(s))
console.log(a1.sticky)
//判断沾粘
}
{
console.log('u',/^\uD83D/.test('\uD83D\uDC2A'))
console.log('u-1',/^\uD83D/u.test('\uD83D'))
//unicode
}
{
console.log(/\u{61}/.test('a'))
console.log(/\u{61}/u.test('a'))
console.log(
\u{20BB7}`);
let s=’��’;
console.log(/^./.test(s))console.log(/./u.test(s))

}

字符串的一些api

`
{
console.log('a',
\u0061)
console.log('s',
\u{20BB7}`)
}
{
let s=’��a’;
console.log(s.length)

console.log(s.codePointAt(0).toString(16))

console.log(s.codePointAt(1))
console.log(s.charAt(0))
console.log(s.charAt(1))
console.log(s.charCodeAt(0))
console.log(s.charCodeAt(1))
}
{
console.log(String.fromCharCode(“0x20bb7”))
console.log(String.fromCodePoint(“0x20bb7”))

let str=’\u{20bb7}abc’
// for(let i=0;i