var
1.可以重復(fù)聲明
2.無法限制修改
3.沒有塊級作用域
let?不能重復(fù)聲明政冻,變量-可以修改,塊級作用域
const?不能重復(fù)聲明线欲,變量-不可以修改明场,塊級作用域
箭頭函數(shù)
function?名字(){
}
()=>{}
1.如果只有一個參數(shù) ()可以省
2.如果只有一個return,{}可以省
let?show=a=>a*2
arr.sort((n1,n2)=>n1-n2)
函數(shù)的參數(shù)
1.參數(shù)的擴展和數(shù)組展開
(1)收集剩余的參數(shù)?
function show(a,b,...args){}
(2)數(shù)組的展開
let arr=[1,2,3];
show(...arr);
function show(a,b,c){
alert(a);alert(b);alert(c)
}
let a=[1,1,1]
let b=[2,3,4]
let c=[...a,...b]
2.默認參數(shù)
function a(b=3){}
解構(gòu)賦值
1.左右兩邊結(jié)構(gòu)一樣
2.右邊是個東西
3.聲明和賦值放一起寫
let [a,b,c]=[1,2,3]
let {a,c,d}={a:12,c:5,d:6}
let [{a,b},[n1,n2,n3],num,str]=[{a:12,b:5},[12,3,4],5,'ddf']
數(shù)組:
map?映射? 一個對一個
let arr=[1,2,3]
let result =arr.map(function(item){
return item*2
})
let result =arr.map(item=>item*2)
let score=[19,34,56,75,43]
let result= score.map(item =>item>=60?'及格':'不及格')
reduce?匯總? 一堆出來一個
let arr=[12,23,4,5]
let result=arr.reduce(function(tmp,item,index){
tmp 中間結(jié)果
item 第幾項的值
index 第幾項
})
求平局
let arr =[23,34,54,45]
let result=arr.reduce(function(tmp,item,index){
if(index!=arr.length-1){
? ? return tmp+item;
}else{
? ? ? return(tmp+item)/arr.length
}
})
alert(result)
filter?過濾器
let arr=[12,32,34,99,45]
let result =arr.filter(item=>item%3==0)
alert (result)
let arr=[
{title:'xie',price:74},
{title:'wazi',price:734344},
{title:'kuzi',price:724}
];
let result=arr.filter(json=>json.price>=10000);
console.log(result)
forEach?迭代
let arr=[12,3,4,5]
arr.forEach((item,index)=>{
alert(index+':'+item);
});
字符串
1.startsWith()
2.endsWith()
布爾值
3 字符串模板
let title='標(biāo)題';
let content='內(nèi)容'李丰;
let str=`<div>
<h1>${title}</h1>
<p>${content}</p>
</div>`;
1.可以直接把東西放在字符串里面 ${東西}
2.可以折行
面向?qū)ο?/p>
class User{
constructor(name,pass){
this.name=name;
this.pass=pass;
}
showName(){
? ?alert(this.name);
}
showPass(){
? ? alert(this.pass)
}
}
var u1=new User('dsfs','22')
u1.showName;
u2.showPass;
1.class關(guān)鍵字 構(gòu)造器和類分開
2.class里面直接加方法
繼承:
class VipUser extends User{
? ? constructor(name,pass,level){
? ? super(name,pass);
? ? ?this.level=level;
}
? ? ?showLevel(){
? ? ? ? ?alert(this.level);
? ? ? }
}
var v1=new VipUser('sss','22','3')
json
1.JSON.stringify
JSON.parse
let str='{"a":12,"b":5,"c":"aaa"}';
let json=JSON.parse(str)? ?
let json={a:12,b:5};
let str='http://baidu.com/path/user?data='+encodeURIComponent(JSON.stringify(json));
2簡寫
名字和值(key和value)一樣的 留一個就行
let a=2;
let b=3;
let json={a,b,c:123}
方法: show:function(){...}
show(){...}
:和function一塊刪
promise
1.let p=new Promise(function(resolve,reject){
$.ajax({
url:'data/1.txt',
dataType:'json',
success(arr){
resolve(arr);
},
error(err){
reject(err)
}
})
})
p.then(function(arr){
alert('成功'+arr)
},function(err){
alert('失敗'+err)
});
2.function createPromise(url){
return new Promise(function(resolve,reject){
$.ajax({
url
dataType:'json',
success(arr){
resolve(arr);
},
error(err){
reject(err);
}
})
})
}
Promise.all([
createPromise('data/1.txt'),
createPromise('data/2.txt')
]).then(function(arr){
let [res1,res2]=arr;
},function(){
alert('error')
})
3.
Promise.all([
$.ajax({url:'data/1.txt',dataType:'json'}),
$.ajax({url:'data/2.txt',dataType:'json'})
]).then(function(results){
let [arr,json]=results;
},function(){
alert('error')
})
Promise.all([$.ajax(),$.ajax()]).then(results=>{ok
},error=>{error})
generator 可停函數(shù)
function *show(){
alert('a');
yield;
alert('b');
}
let genObj=show();
genObj.next();
genObj.next();
yield
1.function *show(num1,num2){
alert(`${num1},${num2}`);//99,88
alert('a');
let a=yield;
alert('b');
alert(a);// 5
}
let gen=show(99,88);
gen.next(12);//沒法給yield傳參
gen.next(5);
2.function *show(){
alert('a');
yield 12;
alert('b');
return 55;
}
len gen=show();
len res1=gen.next();
console.log(res1);//{value:12,done:false}
let res2=gen.next();
console.log(res2);//{value:55,done:false}