鍍金池/ 問答/HTML/ 最近看別人的promise源碼時(shí),有些代碼看的不是特別清楚,希望大??梢詭拖旅?。

最近看別人的promise源碼時(shí),有些代碼看的不是特別清楚,希望大??梢詭拖旅?。

var ret = typeof onFulfilled === 'function' && onFulfilled(value) || value;

這段代碼換ret是怎樣的一種賦值方式??希望可以說清楚一下,謝謝哈~

回答
編輯回答
玄鳥

https://www.cnblogs.com/yy-hh...
看看這個(gè)應(yīng)該能幫到你。

2018年6月3日 01:58
編輯回答
笑忘初

js 中 && 前面的值為true(==true)才會(huì)繼續(xù)向后執(zhí)行, || 前面值為false(==false)才會(huì)繼續(xù)向后執(zhí)行,具體自己理解吧

2018年2月19日 15:19
編輯回答
忘了我

如果onFulfilled的數(shù)據(jù)類型為function,就執(zhí)行onFulfilled,參數(shù)為value,將函數(shù)返回的結(jié)果賦值給ret,否則將value賦值給ret

2018年5月3日 06:45
編輯回答
玄鳥

是要問這段代碼什么意思嗎?
假設(shè)把 typeof onFulfilled === 'function' 看成 true,那么表達(dá)式變成:
var ret = true && onFulfilled(value) || value
接下來就是一個(gè)“與或”的運(yùn)算,自行 google

2018年2月13日 18:57
編輯回答
神曲
function getRet(value) {
    if(typeof onFulfilled === 'function') {
        var fulfilledValue = onFulfilled(value)
        if(fulfilledValue) {
            return fulfilledValue
        } else {
            return value
        }
    } else {
        return value
    }
}
var ret = getRet(value)
2017年3月24日 05:53