-块级作用域
“
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].οnclick=function(){}
})(i)
}
for(let i=0;i<5;i++){
li[i].οnclick=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正则
`
\u{20BB7}`);
{
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(
let s=’��’;
console.log(/^.
/.test(s))console.log(/.
/u.test(s))
}
“
字符串的一些api
`
\u0061
{
console.log('a',)
\u{20BB7}`)
console.log('s',
}
{
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