JavaScript 秘密花園 PDF 究竟能帶給我們什么樣的收獲呢?對于熟練掌握 JavaScript 的開發者來說,通讀該書會發現其中有不少干貨可供借鑒。本文將向讀者詳細介紹 JavaScript 秘密花園 PDF。
JavaScript 秘密花園 PDF 是《JavaScript 性能優化》和《JavaScript 底層深入》的作者花費大量時間編寫的一本面向專業 JavaScript 開發者的優秀書籍。它以非常詳實、深入的探討方式講解了 JavaScript 相關的各個方面。閱讀后深感修改之前所實現的 JavaScript 代碼都非常淺薄。
下面,我們來看一些該書中提到的 JavaScript 進階技術。
作為函數的一等公民
function add(x, y) { return x + y; } function subtract(x, y) { return x - y; } function multiply(x, y) { return x * y; } function divide(x, y) { return x / y; } // 首先定義一個符號和相應函數映射起來的對象 var operators = { '+': add, '-': subtract, '*': multiply, '/': divide }; function calculate(a, operator, b) { return operators[operator](a, b); } var result = calculate(1, '+', 2); // 3
利用該方法,常規的 if else 處理可以得到較好的改良。
拓展內置方法
// example 1 String.prototype.reverse = function() { return this.split('').reverse().join(''); } var str = 'Hello world'; console.log(str.reverse()); // dlrow olleH // example 2 Array.prototype.flatten = function() { return this.reduce(function(a, b) { if (Array.isArray(b)) { return a.concat(b.flatten()); } else { return a.concat(b); } }, []); } var arr = [1, [2, [3, 4], 5]]; console.log(arr.flatten()); // [1, 2, 3, 4, 5]
這種技術有很多應用,例如為 Array 包含更多相關的工具方法,或者是為字符串添加實用工具函數等。
減少算法和計算的時間復雜度
function hasDuplicates(arr) { var i, n; var obj = {}; for (i = 0, n = arr.length; i< n; i++) { if (obj[arr[i]]) { return true; } obj[arr[i]] = true; } return false; } console.log(hasDuplicates([1, 2, 3, 4])); // false console.log(hasDuplicates([1, 2, 3, 2])); // true
該方法在判斷是否存在重復元素時可以像數組和對象一樣自由使用。同時,當數組成員數量很多時,其性能也能夠保持在較好的水平,不會因為元素的數量增加而降低性能。
總結
JavaScript 秘密花園 PDF 可以幫助我們更加深入地理解和使用 JavaScript,讓我們在使用中能夠更靈活、更高效地完成相應的工作。好書,值得讀!