溫習(xí)js

  • scrollWidth,ClientWidth,OffsetWidth差異

    • scrollWidth 容器內(nèi)容寬度 ->容器內(nèi)部的內(nèi)容最大能把容器撐多大就是它的scroll尺寸,如果沒(méi)撐開(kāi)則是容器的寬度
    • ClientWidth 容器的寬度 ->不包含border
    • OffsetWidth 容器樣式寬高 ->包括border
    • window.innerWidth 瀏覽器窗口內(nèi)顯示區(qū)的寬度(只讀)
  • screenX,pageX,clientX差異

    • 注意pageX,clientX都是以瀏覽器做參照物的,和父容器沒(méi)關(guān)系。screenX是以屏幕做參照物的。
       function getX(e) {
    

// 距離瀏覽器左邊的距離 包含滾動(dòng)隱藏的距離
console.log(e.pageX);
// 距離屏幕左邊的距離
console.log(e.screenX);
// 距離瀏覽器左邊的距離 不包含滾動(dòng)隱藏的距離
console.log(e.clientX);
}
```

  • 判斷字符串是數(shù)字還是字符串

    var str = "abc";
    +abc //NaN
    str = "123"
    +str = 123;

  • 原型角度,vue的雙向數(shù)據(jù)綁定原理

  • 柯里化是什么,用處?

  • 自己實(shí)現(xiàn)一個(gè)柯里化處理函數(shù)

    const currying = function (fn) {
    const argsLen = fn.length;
    const args = [];
    const curryN = function () {
        [].push.apply(args,[].slice.call(arguments));
        if(args.length >= argsLen){
            return fn.apply(null,args.slice(0,argsLen));
        }else{
            return curryN;
        }
    };
    return curryN;
    

};
const g = currying(function (a,b,c) {
console.log(a,b,c);
});
g(2)(3)(4,5); //2,3,4
```
- 用處:
- 延遲計(jì)算

    ```javascript
    const g = currying(function (a,b,c) {
        return a+b+c;
    });
    console.log(g(2)(3)(5));//10
    ```
    
    - 參數(shù)復(fù)用

    ```javascript
var addEvent = currying(function(window,el,sType,fn,capture){
    if (window.addEventListener) {
        el.addEventListener(sType, function(e) {
            fn.call(el, e);
        }, (capture));
    } else if (window.attachEvent) {
        el.attachEvent("on" + sType, function(e) {
            fn.call(el, e);
        });
    }
});
    //    兼容模式的添加函數(shù)
        var addCompatibleEvent = addEvent(window);
        addCompatibleEvent(document.querySelector("#app"),"click",function (e) {
            console.log(e);
        },false);
    ```

柯里化(Currying),又稱(chēng)部分求值(Partial Evaluation),是把接受多個(gè)參數(shù)的函數(shù)變換成接受一個(gè)單一參數(shù)(最初函數(shù)的第一個(gè)參數(shù))的函數(shù),并且返回接受余下的參數(shù)而且返回結(jié)果的新函數(shù)的技術(shù)。

  • 數(shù)組方法
    • push,pop,shift,unshift都是作用在當(dāng)前數(shù)組上的,concat是處理后返回一個(gè)新數(shù)組.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • js知識(shí)點(diǎn) 溫習(xí)js css知識(shí)點(diǎn) 溫習(xí)css jquery溫習(xí) 自己實(shí)現(xiàn)一個(gè)jquery vue框架溫習(xí) 溫習(xí)v...
    Vijay_閱讀 135評(píng)論 0 0
  • js簡(jiǎn)介 Js是一種基于事件和對(duì)象驅(qū)動(dòng)的解釋性、松散性的語(yǔ)言。 一切皆對(duì)象 javascript 布蘭登艾奇 ...
    塔庫(kù)納瑪哈哈閱讀 1,348評(píng)論 0 2
  • JavaScript 將字符串轉(zhuǎn)換為數(shù)字 parseInt() ◆只保留數(shù)字的整數(shù)部分,不會(huì)進(jìn)行四舍五入運(yùn)算。 ...
    AkaTBS閱讀 1,040評(píng)論 0 9
  • 工廠(chǎng)模式類(lèi)似于現(xiàn)實(shí)生活中的工廠(chǎng)可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠(chǎng)模式。簡(jiǎn)單...
    舟漁行舟閱讀 8,130評(píng)論 2 17
  • 原文鏈接 Haskell和scala都支持函數(shù)的柯里化,JavaScript函數(shù)的柯里化還與JavaScript的...
    dreamapple閱讀 2,662評(píng)論 0 24

友情鏈接更多精彩內(nèi)容