原创 JavaScript實例1

JavaScript不只是簡單的構建塊 JavaScript對象、基本類型和字面值之間的區別 對象:Object windwow 數組、正則、日期、原型、使用 new 通過構造方法創建的 基本類型:字符串、數值、布爾類型、nul

原创 將對象方法鏈化

問題:想要以鏈化的方式調用方法例如:document.getElementById(“elem”).setAttribute(“class”,”buttondiv”); 解決方案:例如在如下對象中鏈化TechBook.chang

原创 創建能夠記住其狀態的函數

問題:想要創建一個函數,它能夠記住數據,但是不必是全局變量,並且不必對每個函數重新發送相同的數據。 解決方案:使用閉包 function greetingMaker(greeting){ function addName

原创 提供一個默認參數

問題:在調用函數的時候,如果沒有給定參數的值,需要指定一個默認參數 function add(num,num2 = 35){ return num+num2; } console.log(add(10));

原创 使用緩存計算來提高應用程序的性能

問題:想要通過建設重複負責的和CPU消耗大的計算的需求來優化JavaScript應用程序 解決方案:使用緩存保存中間值 var fibonacci = function(){ var memo = [0,1]; var

原创 通過定義一個新的屬性來擴展對象

問題:想要容易的給一個對象添加一個新的屬性,但是又想要以能夠更多地控制此過程的方式來完成。 解決方案:使用 defineProperty()方法來添加該屬性 var data={}; Object.definePro

原创 添加一個頁面覆蓋

問題:要覆蓋Web頁面以顯示一條消息,一張照片或者一個表單 解決方案:爲一個div元素提供一個樣式表設置,使其大小和位置能夠覆蓋整個web <!DOCTYPE html> <html> <head> <title>Ove

原创 訪問一個給定的元素找到其元素和子元素

問題:想要訪問一個特定的文檔元素,並且找到其父元素和子元素 解決方案:給元素一個唯一的標識符 <div id = "demodiv" <p> This is Text. </p> </div> 通

原创 繼承一個對象的功能

問題:當創建一個對象類型時,想要從已有的對象繼承功能 解決方案:使用Object.create()方法 function origObject(){ this.val1 = 'a'; this.val2 = 'b'; }

原创 JavaScript實例2

使用捕獲圓括號交換一個字符串中的單詞 我們可以接受一個帶有名稱和姓氏的輸入字符串,並且交換名稱,以便讓姓氏先出現。 var name = "Abe Lincoln"; var re = /^(\w+)\s(\w+)$/; var

原创 從HTML表格刪除行

問題:想要從一個HTML表格刪除行 解決方案:可以在一個HTML表格行上使用removeChild()方法,並且所有的子元素都將被刪除。 <!DOCTYPE html> <html> <head> <title>Addi

原创 阻止對象可擴展性

問題:想要阻止對象擴展一個對象 解決方案:使用 Object.preventExtensions()方法 var Test={ value1 :"one", value2:function(){ return t

原创 JavaScript Canvas 繪圖

Canvas 繪圖 基本語法 要使用 Canvas繪圖 必須要定義寬度和高度,指定繪圖區域的大小 <canvas id="drawing" width="200" height="200">A drawing of somethi

原创 設置元素的CSS樣式屬性

問題:想要修改在一個特定的Web頁面元素上添加或替換一個樣式設置。 解決方案:通過元素的style屬性來修改: elem.style.backgroundColor = "red" 如果修改單個元素的一個或多個CSS屬性,可以使

原创 使用一個定時器和回調函數防止代碼阻塞

問題:有一段代碼可能比較耗費時間,並且在等待其完成的時候,你不想阻塞其他的代碼處理。但是,當耗時的函數完成的時候,你確實需要執行一些其他的功能 解決方案:將一個回調函數和setTimeout()結合使用,定時器設置爲0. fun