成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript語言精粹

mist14 / 719人閱讀

摘要:函數(shù)調(diào)用一個函數(shù)會暫停當(dāng)前函數(shù)的執(zhí)行,控制權(quán)轉(zhuǎn)交給新的函數(shù)。語句可以使函數(shù)提前返回,中斷函數(shù)的運(yùn)行。如果沒有指定返回值,則返回。任何語句都會返回值,在瀏覽器面板執(zhí)行語句后的值就是返回值。在情況下不能正常工作。

對象

對象屬性的名字可以是空字符串,屬性值可以是undefined(原文為屬性值可以是除undefined以外的任何值,但是測試可以為undefined)。

嘗試從undefined的屬性中取值會導(dǎo)致TypeError,可以通過&&運(yùn)算符避免。(obj.name && obj.name.oldName)

函數(shù)

調(diào)用一個函數(shù)會暫停當(dāng)前函數(shù)的執(zhí)行,控制權(quán)轉(zhuǎn)交給新的函數(shù)。每個函數(shù)都接受兩個附加的參數(shù):thisarguments。this有四種調(diào)用情況不再贅述。

當(dāng)一個函數(shù)運(yùn)行時,它從第一個語句開始執(zhí)行,并在遇到關(guān)閉函數(shù)體的}時結(jié)束。return語句可以使函數(shù)提前返回,中斷函數(shù)的運(yùn)行。

throw語句也能中斷函數(shù)的執(zhí)行,并且拋出一個錯誤對象。

函數(shù)總會返回一個值。如果沒有指定返回值,則返回undefined。(任何語句都會返回值,在瀏覽器console面板執(zhí)行語句后的值就是返回值)。

柯里化延遲調(diào)用,把函數(shù)看做一個值,在函數(shù)之前傳遞。

遞歸優(yōu)化: 記憶。利用閉包建立一個儲存區(qū),避免重復(fù)運(yùn)算。如

  var fibonacci = function (n){
    return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);
  }

  // 自己的代碼
  var fibonacci = (function (){
    var memo = {};
    return function (n){
      if (n < 2) {
        return n;
      }
      if (!memo[n]) {
        memo[n] = fibonacci(n-1)+fibonacci(n-2);
      }
      return memo[n];
    }
    })()
    
   // 書上原版
   var fibonacci = function () {
     var memo = [0, 1];
     var fib = function (n) {
       var result = memo[n];
       if (typeof result !== "number") {
         result = fib(n - 1) + fib(n - 2);
         memo[n] = result;
       }
       return result;
     };
     return fib;
   }();

然后自己測試了一下性能,在大量運(yùn)算的時候確實很厲害。一開始傳了個100進(jìn)去,然后瀏覽器就卡死了。。。
此外書中還提供了一個包裝函數(shù)如下:

  var memoizer = function(memo, formula) {
    var recur = function(n) {
      var result = memo[n];
      if (typeof result !== "number") {
        result = formula (recur, n);
      }
      return result;
    }
    return recur;
  }

  例如調(diào)用一個階乘函數(shù): var factorial = memoizer([1, 1], function(recur, n) {
    return n * recur (n - 1);
    })

區(qū)別數(shù)組和對象的好方法。Object.prototype.toString.apply(someObj) 返回一個"[object Array]"或者"[object Object]".用constructor不確定性太多。instanceof在iframe情況下不能正常工作。Array.isArray()也是極好的,只是IE8下不兼容。

方法

array.slice方法對array中的一段做淺復(fù)制,[obj,obj]中的對象改變會反應(yīng)在兩個數(shù)組上。

array.shift方法要比array.pop慢上30%左右。

毒瘤

自動插入分號,如:

return
  {
    some: 1
  }
 // 直接執(zhí)行了 return;

typeof null返回"object"。

其它的一些缺點因為已經(jīng)習(xí)慣了就沒放上來了。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81975.html

相關(guān)文章

  • Javascript的內(nèi)置函數(shù)(ES5)-讀Javascript語言精粹

    摘要:的內(nèi)置函數(shù)整理了一些語言精粹的方法一章的整理出的的內(nèi)置方法之后還會整理標(biāo)準(zhǔn)入門的新添加的方法整理這些作用一方面是更好的理解記憶另一方面是對于類數(shù)組可以使用原型鏈的調(diào)用即可中的一些函數(shù)輸出的為的結(jié)果因此的作用是連接數(shù)組當(dāng)然可以是數(shù)字也會加入到 Javascript的內(nèi)置函數(shù)(ES5) 整理了一些Javascript語言精粹的方法一章的整理出的ES5的內(nèi)置方法; 之后還會整理ES6標(biāo)準(zhǔn)入門...

    gekylin 評論0 收藏0
  • JavaScript語言精粹》 代碼摘錄

    摘要:最近在讀這本評價頗高的語言精粹,其作者是的創(chuàng)造者,在業(yè)界頗有名氣。 最近在讀這本評價頗高的《JavaScript語言精粹》,其作者Douglas Crockford 是JSON的創(chuàng)造者,在業(yè)界頗有名氣。以下是閱讀過程中認(rèn)為比較有用的摘錄的代碼,希望能對各位有所啟發(fā) 自定義的method方法 Function.prototype.method = function(name,func...

    haitiancoder 評論0 收藏0
  • javascript語言精粹》學(xué)習(xí)筆記 - 數(shù)組方法實現(xiàn)

    摘要:在中數(shù)組是經(jīng)常被使用到的,我們除了要學(xué)習(xí)數(shù)組的方法,還需要了解誒一下某一些方法是如何來實現(xiàn)的。然而我看了語言精粹中方法的一章,想記錄下書上的代碼,以便加深印象。方法移除數(shù)組中的第一個元素并且放回該元素。 在js中數(shù)組是經(jīng)常被使用到的,我們除了要學(xué)習(xí)數(shù)組的方法,還需要了解誒一下某一些方法是如何來實現(xiàn)的。然而我看了《javascript語言精粹》中方法的一章,想記錄下書上的代碼,以便加深印...

    felix0913 評論0 收藏0
  • JavaScript 語言精粹》讀書筆記 - 函數(shù)

    摘要:語言精粹讀書筆記第四章函數(shù)函數(shù)字面量函數(shù)字面量包含個部分第一部分,保留字第二部分,函數(shù)名,它可以被忽略。這個超級延遲綁定使得函數(shù)對高度復(fù)用。構(gòu)造器調(diào)用模式一個函數(shù),如果創(chuàng)建的目的就是希望結(jié)合的前綴來調(diào)用,那它就被稱為構(gòu)造器構(gòu)造。 《JavaScript 語言精粹》 讀書筆記 第四章 函數(shù) Functions 函數(shù)字面量 函數(shù)字面量包含4個部分: 第一部分, 保留字 function...

    wdzgege 評論0 收藏0
  • 摘自<JavaScript語言精粹>經(jīng)典案例----------持續(xù)更新

    摘要:定義一個函數(shù)它設(shè)置一個節(jié)點為黃色然后把它漸變成白色不想當(dāng)廚子的畫家不是一個好老師郭德綱根據(jù)書上的例子有感而發(fā)自己用遞歸也寫了一個類似的使用記憶功能技巧編寫斐波那契數(shù)列得到的總數(shù)原例一普通遞歸的斐波那契數(shù)列共調(diào)用了函數(shù)多次升級 1.定義一個函數(shù),它設(shè)置一個DOM節(jié)點為黃色,然后把它漸變成白色 var fade = function (node) { var level = 1; ...

    張遷 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<