- curry
const curry=x=>y=>x+y;
console.log(curry(2)(3)); //5;
- destructuring
const {name,...user}={name:'komolei',age:24,sex:'female',family:'one'} //name:komolei ;user:{age:24...}
- high order function
[].sort.call([2,1,3,4],(p,n)=>p-n) // 1,2,3,4
[].map.call([2,4,5],item=>item*2) //4,8,10
[].filter.call([2,4,5],item=>item>2) // 4,5
[].reduce.call([2,4,5],(p,n)=>p+=n); // 11
[].forEach.call([2,4,5],item=>console.log(item*2))
- call & apply
var p={
name:'komolei',
add:function(p){
console.log('name',p.name)},
age:function(p){
console.log('age',p.age)}}
p.name // komolei
p.add({name:'ddd'}) // name ddd
// 當(dāng)寫(xiě)成上面這樣的時(shí)候遮婶,我們想要調(diào)用就只能輸入?yún)?shù)進(jìn)行調(diào)用旗扑。
// 能不能這樣調(diào)用:p.add()
// 可以慈省,使用this
var p1={
name:'komolei',
add:function(){
console.log('name',this.name)},
age:function(){
console.log('age',this.age)}}
// p1.add() //name komolei
// p1.add('xxx') //想要這樣傳參數(shù)是error的。不是廢話嘛袱衷?函數(shù)是什么?接受參數(shù)登疗,return 結(jié)果的工具嫌蚤。
// 那怎么傳遞參數(shù)呢?
// p1.add.call({name:'ccc'}) //ccc
// this在函數(shù)中相當(dāng)于占位符智政,當(dāng)調(diào)用的時(shí)候才會(huì)想去替換真正的參數(shù)箱蝠。
// call 傳參有限,apply接受數(shù)組作為參數(shù)疾忍。
- bind
// bind 返回一個(gè)全新的深拷貝過(guò)的函數(shù)床三,同時(shí)綁定的this為返回的函數(shù)的call的this
// mini program
// var that=this
that.onClick=function(){}
// this.onClick.bind(this) //上下相同。
ramda -fp utility tool
這幾天一直在看function program聂渊,簡(jiǎn)稱(chēng)fp四瘫,與平常的面向?qū)ο蟮某绦虿灰粯诱颐邸:冒桑乙膊恢涝趺蠢斫饷嫦驅(qū)ο笙醋觯褪侨f(wàn)物皆對(duì)象,將所有的事物抽象成對(duì)象撰筷,來(lái)模擬現(xiàn)實(shí)的環(huán)境畦徘。對(duì)應(yīng)js抬闯。就是基于原型鏈來(lái)寫(xiě)對(duì)象原型溶握。所有的屬性就是this上的字段蒸播。所有的方法。都寫(xiě)在propertype上肉微。別的也沒(méi)有什么想法了蜡塌。最多es6,class般的語(yǔ)法糖吧劳曹。突然發(fā)現(xiàn)call琅摩,apply,bind的厲害了房资。動(dòng)態(tài)切換this蜕劝。斷言函數(shù)
- 自己的理解:進(jìn)行判斷的函數(shù),(data)=>false|true;
- 在程序設(shè)計(jì)中轰异,斷言(assertion)是一種放在程序中的一階邏輯(如一個(gè)結(jié)果為真或是假的邏輯判斷式)岖沛,目的是為了標(biāo)示與驗(yàn)證程序開(kāi)發(fā)者預(yù)期的結(jié)果-當(dāng)程序運(yùn)行到斷言的位置時(shí),對(duì)應(yīng)的斷言應(yīng)該為真搭独。若斷言不為真時(shí)婴削,程序會(huì)中止運(yùn)行,并給出錯(cuò)誤消息牙肝。
- 跟自己的理解差不多