Time of Update: 2018-12-08
又重新閱讀了一遍Andrew的原文,在原文下面的評論中,赫然發現也有人早提出參數個數的問題,同樣懶惰的樓豬直接拷貝原文評論回覆了一下,同時還發現說漏了很重要的一個注意點Array.prototype.slice。下面統一補充說明一下: 1、string.format的參數個數 在Andrew的原文中,已經有人指出: eric d. Hi, thanks for that brilliant article. Made a lot of things a lot clearer! Note:
Time of Update: 2018-12-08
文章目錄
Time of Update: 2018-12-08
即然該功能如此需要,但為什麼js中不提供這樣的函數呢? 目前瀏覽器都是在UI線程解析js,以Firefox瀏覽器為例,我重新編譯了js引擎,並且在js引警中添加了sleep方法,該方法調用c語言的線程睡眠函數. 將方法附加到Object上,方法簽名為sleep();無參數.預設休眠1秒鐘,如果你在js中調用該函數,瀏覽器UI介面將被阻礙。 另外如果你的js函數存在死迴圈,瀏覽器的js解析會檢測到js執行逾時會提醒你是否終止執行本頁面的js.
Time of Update: 2018-12-08
這是一個比較特殊的屬性,Javascript中的繼承一般都依賴這屬性實現。 在Javascript中,一切都是對象,字串是對象,數組是對象,變數是對象,函數也是對象,所以才會允許['a','b','c'].push('d');這樣的操作存在。類本身也是一個對象,也可以定義屬性和方法: 複製代碼 代碼如下:function Test(){}; Test.str = 'str'; Test.fun = function(){return 'fun';}; var r1 = Test.str; //
Time of Update: 2018-12-08
有人問到一個js問題: 複製代碼 代碼如下:var i = 0.07; var r = i*100; alert(r); 結果為什麼是7.0000000000000001? 查了下資料,其實我們知道JavsScript中,變數在儲存時並不區分number和float類型,而是統一按float儲存。而javascript使用IEEE 754-2008 標準定義的64bit浮點格式儲存number,按照IEEE 754的定義: http://en.wikipedia.org/wiki/IEEE_75
Time of Update: 2018-12-08
正好infinte同學提出“更優雅的相容”其實也和這個問題有一定的關聯(我們後面會看到) 在youa的指令碼庫中Function的Helper中,添加支援重載的模式比對 複製代碼 代碼如下:/** * 函數參數重載方法 overload,對函數參數進行模式比對。預設的dispatcher支援*和...以及?,"*"表示一個任意類型的參數,"..."表示多個任意類型的參數,"?"一般用在",?..."表示0個或任意多個參數 * @method overload * @static *
Time of Update: 2018-12-08
複製代碼 代碼如下://首先建立父類 function Person(name, age, address) { this.name = name; this.age = age; this.address = address; } //建立子類 function Student(score) { this.score = score; //可以用call方法或者是apply方法調用函數的建構函式
Time of Update: 2018-12-08
順便提示一下: 詞法範圍:變數的範圍是在定義時決定而不是執行時決定,也就是說詞法範圍取決於源碼,通過靜態分析就能確定,因此詞法範圍也叫做靜態範圍。 with和eval除外,所以只能說JS的範圍機制非常接近詞法範圍(Lexical scope)。 下面是一個簡單的使用全域變數的閉包執行個體: 複製代碼 代碼如下:var sWord="Hello,Welcome to web前端開發工程師的部落格,請多多指教。" function disWord(){ alert(sWord); }
Time of Update: 2018-12-08
下面總結一下JS錯誤處理與調試的方法 方法1:用alert() 和document.write()方法監視變數值。 alert()在彈出對話方塊顯示變數值的同時,會停止代碼的繼續運行,直到使用者單擊“確定”按鈕,而document.write()則在輸出值後繼續運行代碼。調試JS時可以根據具體情況來選擇這種方法。 例如下面代碼:將數組a中以1開頭的資料添加到數組b中 複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Time of Update: 2018-12-08
校正是否全由數字組成 複製代碼 代碼如下:function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } 校正登入名稱:只能輸入5-20個以字母開頭、可帶數字、“_”、“.”的字串 Java代碼 複製代碼 代碼如下:function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,1
Time of Update: 2018-12-08
文章目錄 解析類比 複製代碼 代碼如下:var classA = function(){ this.prop1 = 1; } classA.prototype.func1 = function(){ var that = this, var1 = 2; function a(){ return function(){ alert(var1); alert(this.prop1); }.apply(that); }; a(); } var
Time of Update: 2018-12-08
複製代碼 代碼如下:<script type="text/javascript"> //建立基類 function Person(name, age) { this.name = name; this.age = age; } //通過原型方式給基類添加函數(這樣可以服用此函數) Person.prototype.showName = function () { alert(this.name); } //建立子類 function Student(name, age, score)
Time of Update: 2018-12-08
A 事件流(event flow ) 事件模型分為兩種:冒泡型事件、捕獲型事件。 冒泡型(dubbed bubbling )事件:指事件按照從最精確的對象到最不精確的對象的順序逐一觸發。 捕獲型(event capturing )事件:它與冒泡型事件相反,指事件按照從最不精確的對象到最精確的對象的順序逐一觸發。 捕獲型事件也被稱作自頂向下(DOM層次)的事件模型。 由於IE 瀏覽器不支援捕獲型事件,因此並沒有被廣泛應用。 B 事件監聽 i > 通用監聽方法 樣本一: 複製代碼 代碼如下:&
Time of Update: 2018-12-08
xmlns="http://www.w3.org/1999/xhtml"> 輪迴﹒修真﹒神話 創意新作《岐山》首度公開西遊戰記炫彩登場 1080P高清畫面享受開測前必讀 《西遊戰記》新手問題合輯嘔血推薦 《西遊戰記》36大亮點縱覽1開測前必讀 《西遊戰記》新手問題合輯2開測前必讀 《西遊戰記》新手問題合輯
Time of Update: 2018-12-08
在Javascript中,一切都是對象,字串是對象,數組是對象,變數是對象,函數也是對象,所以才會允許['a','b','c'].push('d');這樣的操作存在。類本身也是一個對象,也可以定義屬性和方法: 複製代碼 代碼如下:function Test(){}; Test.str = 'str'; Test.fun = function(){return 'fun';}; var r1 = Test.str; // str var r2 = Test.fun(); // fun var
Time of Update: 2018-12-08
A 使用alert() 和document.write() 方法監視變數值 如果要中斷代碼的運行,監視變數的值,則使用alert() 方法; 如果需要查看的值很多,則使用document.write() 方法,避免反覆單擊“確定”按鈕; B 使用window.onerror 事件 當頁面出現異常時,onerror 事件會在window 對象上觸發。它能在一定程度上告訴開發人員相關的錯誤資訊。 樣本: 複製代碼 代碼如下:<script type="text/javascript">
Time of Update: 2018-12-08
prototype 屬性的作用: 利用prototype 屬性提供對象的類的一組準系統。對象的新執行個體“繼承”賦予該對象原型的操作。 prototype 屬性的功能: 所有JavaScript 內部對象都有唯讀prototype 屬性。可以為內部對象的原型添加功能,但該對象不能被賦予不同的原型。 然而,使用者定義物件可以被賦給新的原型。 constructor 屬性的作用: constructor 表示建立對象的函數。 constructor 屬性的功能: constructor
Time of Update: 2018-12-08
為得求證,自己寫了一個頁面來驗證怎樣記憶體流失。代碼如下 複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=
Time of Update: 2018-12-08
樣本一:直接編寫AJAX 實現。 用戶端: 複製代碼 代碼如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Ajax實現自動提示的文字框</title> <style> <!--
Time of Update: 2018-12-08
(1)建立一個新的對象,並讓this指標指向它; (2)將函數的prototype對象的所有成員都賦給這個新對象; (3)執行函數體,對這個對象進行初始化操作; (4)返回(1)中建立的對象。 複製代碼 代碼如下:function BB(a){ this.aa(); alert("s"); } //alert(typeof BB.prototype.constructor); BB.prototype.aa=function(){alert("sss");} var nn=new BB("cc"