ES6 部分知识的认知

//ES6字符串模板语法;
let tt = 'tyu'
let text = `你好上岛咖啡精神可嘉福克斯地方是 ${ tt } 时代峰峻神盾局六块腹肌`
//运算
let o = 1;
let u = 2;
let ii = ` ${ o+ u } `;
let tg = `你好上岛咖啡精神可嘉福克斯地方是 ${ ii } 时代峰峻神盾局六块腹肌`

var arr = [ 'u', 'u', 'i', 'ioi', 'ds', 'fs', 'fs', 'gh', 'tgfh'];
if( arr. indexOf( 'i')){
console. log( arr. indexOf( "i"));
} else{
console. log( 2);
}
//arr中是否有U
if( arr. includes( "gh")){
console. log( 1);
} else{
console. log( 2);
}
//tg中结尾是否有U 只针对字符串
if( tg. endsWith( "你")){
console. log( 1);
} else if( tg. endsWith( "肌")){
console. log( 11);
}
else{
console. log( 2);
}
//tg中开头是否有U 只针对字符串
if( tg. startsWith( "你")){
console. log( 1);
} else{
console. log( 2);
}
//字符串复制 repeat()
console. log( tg. repeat( 4));


//进制转换
//二 Bianry

let binary= 0B010101;

console. log( binary);
//八 Octal
let Octal = 00666;

//判断是否为数字
console. log( Number. isFinite( 10));
console. log( Number.MAX_SAFE_INTEGER);
console. log( Number.MIN_SAFE_INTEGER);
//数组去重,重点在于判断条件,新组中是否已存在该数据
var arr1 = [ 'u', 'u', 'i', 'ioi', 'ds', 'fs', 'fs', 'gh', 'tgfh'],
arr2 = [];
for( let i = 0; i< arr1. length; i++){
if(! arr2. includes( arr1[ i])){
arr2. push( arr1[ i]);
} else{
}
}
// console.log(arr2);
//eval()将字符串转换成数组
//from将json转换成数组
// Arr.from()
//主动抛出异常 throw new Error("")

//ES6 的新数据结构 set 特点:自动去重 针对数组
let setArr = new Set( arr);
// console.log(arr);
// console.log(setArr);
for ( val of setArr){
// console.log(val);
}
//增加值 add 查找 has 删除 clear 值的数量size

//weakSet 针对对象 学习的时候并未给出取值方法
let weakSet = new WeakSet();
let obj = { a: '1', b: '2', c: '3'};
weakSet. add( obj);
// console.log(weakSet);
// ES6 map 数据结构 已知的数据结构为 json 、set
// 取值 get 删除特定 delete 删除全部 clear 增加值set 值的数量size 查找 has
var map = new Map();
map. set( obj, 'iii');
console. log( map);
map. set( 'dfff', obj);
console. log( map);
console. log( map. get( 'dfff'));
console. log( map. delete( 'dfff'));
console. log( map);

//proxy 代理 ES6 增强对象和函数 先行执行特性
let obj1 = {
add : function(){
console. log( 3);
},
name: 'tttty'
}
let proxy = new Proxy({
add : function(){
console. log( 3);
},
name: 'tttty'
},{
get : function( target, key, property){
console. log( 2);
return target[ key];
//先行执行get而target为传过来的第一个参数对象
},
set : function( target, key, value, receiver){
console. log( "对proxy的值进行预先处理");
return target[ key] = value; //改变根值,若不返回改变则根植不变
}
});
// so
// console.log(proxy.name);
proxy. add();
//promise 多重回调优化,使用then进行下一步操作

//三步曲
let state = 1;
function step ( resolve, reject){
console. log( '开始');
if( state== 1){
resolve( '完成');
step2() //一层回调
} else{
reject( '出错');
}
}
function step2 ( resolve, reject){
console. log( '开始1');
if( state== 1){
resolve( '完成1');
step3() //二层回调
} else{
reject( '出错1');
}
}
function step3 ( resolve, reject){
console. log( '开始12');
if( state== 1){
resolve( '完成12');
} else{
reject( '出错12');
}
}
//一般写法

function state1(){
step(); //里面有二重回调嵌套,数据结构不够简洁,逻辑不够清晰
}


//使用promise对多重嵌套回调函数进行执行,优点:数据结构简洁,逻辑清晰
new Promise( step)
. then( function( val){
console. log( val);
return new Promise( step2); //返回执行下一步函数,一步错误,就不再执行下一步,
})
. then( function( val){
console. log( val);
return new Promise( step3);
})
. then( function( val){
console. log( val);
});
// ES6 类 此类非element上的target.class
//声明一个类,类里面多个函数不用逗号隔开,直接写就可以了
class Coder {
name( val){
console. log( val);
return val;
}
skill(){
console. log( this. name( 'I miss you too'))
}
//此方法为类的参数,并不是方法的参数
constructor( a, b){
this. a = a;
this. b = b;
}
add(){
return this. a+ this. b;
}
}
//对类进行实例化
let test = new Coder;
//执行
test. name( "ttt");
//类里面的一个方法需要调用另外一个方法,就需要被调用函数做返回值,使调用者获取到返回值进行操作
test. skill();
//用类里面的方法,使用类的参数
let ttt = new Coder( 1, 3);
console. log( ttt. add());
//类和类的继承,作用类似于对象继承,不过比对象继承更简单 例:
// 新声明一个类,继承了Coder类
class hh extends Coder{}

//实例新类
let newClass = new hh;
newClass. name( "kao ");


//ES6的模块化 export 输出 export default 默认输出 import 引入




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值