const I_LOVE_YOU = true; //声明静态变量即所谓的常量,一旦赋值就不可更改
let [a, b, ...c] = [1, 2,3,4,5,6];//声明多个变量
console.log("a:",a);
console.log("b:",b);
console.log("c:",c);
let obj = {
name:'XXX',
wifi:'XXX'
};
let {name,wifi} = obj;//将obj对象的属性赋值给变量
console.log("name:", name);
console.log("wifi:",wifi);
let {floor,pow} =Math;//可通过此方式直接调用foolr pow方法
console.log("floor(2):",floor(2));
console.log("pow(2,3):",pow(2,3));
console.log("I_LOVE_YOU.toString():",I_LOVE_YOU.toString());
let obje = {
name: 'zhiYuan Li',
wifi: 'ping Dai'
};
function con({name, wifi}) {
console.log("name:", name);
console.log("wifi:", wifi);
}
con(obje);
/**
打印结果:
name: zhiYuan Li
wifi: ping Dai
*/
let obje1 = {
wifi: 'ping Dai'
};
function con1({name = 'default', wifi}) { //将对象解构成几个参数 如果传进来的name为undefined或者不存在 则name='default'
console.log("name:", name);
console.log("wifi:", wifi);
}
con1(obje1);
//打印如下:
/**
name: default
wifi: ping Dai
*/
//将字符串分割
let [one,...a] ='yo.'; //将“yo.” 解构为数组
console.log("one:",one); //打印 =》 one:y
console.log("a:",a); //打印 =》 a:['o','.']
let {length} = 'yo.'; //解构出字符串的长度,并赋值给length
console.log("length:",length); //打印:=》 length:3
//ES6新出的 判断字符串是不是以指定的字符串开头
console.log('yo.'.startsWith('o')); //打印:false
// 判断字符串是不是以指定的字符串结尾
console.log('yo.'.endsWith('o')); //打印:false
//判断字符串当中是否包含指定的字符/字符串 原始写法: 'yo.'.indexof('.') !== -1
console.log('yo.'.includes('.'));//打印 =》 true
//将字符串以指定数值进行重复打印
console.log('yo.'.repeat(2)); //打印 =》 yo.yo.
//ES6声明多个变量写法
let[title,info]=['测试模板字符串','模板字符串写法'];
//ES5:模板字符串写法
let tpl1 ="<div>"+title+'<span>'+info+'</span>'+'</div>';
//ES6: 用反引号 `` 即数字1旁边的按键 里面的变量需要用${变量名}的方式引入
let tpl2 = `
<div>${title}
<span>${info}</span>
</div>
`;
console.log("tpl1:",tpl1); //打印=》 tpl1: <div>测试模板字符串<span>模板字符串写法</span></div>
console.log("tpl2:",tpl2); //
/**
打印如下=》
tpl2:
<div>测试模板字符串
<span>info</span>
</div>
*/
let n = Symbol(); //ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。
//基本数据类型有6种:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)
let user ={
fullName:function () {
return this.fname + " "+ this.lname;
},
na:function () {
return this.n;
}
};
user.fname = 'zhiYuan';
user.lname = 'Li';
user.n = n;
console.log("user.fullName():",user.fullName());
console.log("user.na():", user.na());
//ES6代理模式
let user1 = new Proxy({},{
get:function (obj,prop) { //obj即为user1对象, prop =》 对象.prop
if (prop ==="fullName")
return obj.fname +' '+obj.lname;
}
});
user1.fname = 'zhiYuan';
user1.lname = 'Li';
//通过代理模式 即可通过属性名称来获取方法
console.log("user1.fullName:",user1.fullName);
console.log("user1.age:",user1.age);
console.log("user1.lname :",user1.lname = 'YYY');
console.log("user1.fullName:",user1.fullName);
//set集合 与java当中的set集合一样 不允许有重复的值
let set = new Set([user,user1]);
console.log("set:",set);