Time of Update: 2018-12-07
關於JavaScript中的Delete一直沒有弄的很清楚,最近看到兩篇這方面的文章,現對兩文中部分內容進行翻譯(內容有修改和添加,順序不完全一致,有興趣推薦看原文),希望能對大家有所協助。 原文為: 1、http://perfectionkills.com/understanding-delete/(英文) 2、http://nanto.asablo.jp/blog/2008/01/09/2552470(日文) 註:本文首發部落格園(http://jscode.cnblogs.co
Time of Update: 2018-12-07
本文首發部落格園:http://jscode.cnblogs.com,轉載請註明出處。 關於Element跟Node的區別,cilldren跟childNodes的區別很多朋友弄不清楚,本文試圖讓大家明白這幾個概念之間的區別。 Node(節點)是DOM階層中的任何類型的對象的通用名稱,Node有很多類型,如元素節點,屬性節點,文本節點,注釋節點等,通過NodeType區分,常見的有:節點類型NodeType元素element1屬性attr2文本text3注釋comments8文檔docu
Time of Update: 2018-12-07
測試代碼:<div id="test"></div><script> document.oncontextmenu=function(){ return false; }; var oDiv=document.getElementById("test"); oDiv.onmousedown=function(e){ e= e || window.event; var mouseNum =
Time of Update: 2018-12-07
無意中看到某網站的一段JS代碼: 1 function clearSearchText(){ 2 var searchtext = document.getElementById("searchwordl").value 3 document.getElementById("searchwordl").value=""; 4 } 5 function replaceALL(){ 6 var replaceTxt = document.getElementById(
Time of Update: 2018-12-07
我們先看段代碼:var s = "Test";var len=s.length; 我們知道在JavaScript中像上面這樣聲明的字串不是對象,但既然這裡的s不是對象,為什麼會有length的屬性呢? 原因是在JavaScript中只要引用了字串(數字、布爾值也是一樣的)的屬性,JS就會將字串通過調用new
Time of Update: 2018-12-07
代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/*** 時間對象的格式化;*/Date.prototype.format = function(format){ /* * eg:format="YYYY-MM-dd hh:mm:ss"; */ var o = { "M+" : this.getMonth()+1, //month "
Time of Update: 2018-12-07
在博問中看到一個問題(為什麼說這段JavaScript代碼存在循環參考)中有一篇好文章,特轉過來學習下。 原文地址:JavaScript 中的記憶體泄露模式 本文地址:JavaScript 中的記憶體泄露模式【轉】 JavaScript 是用來向 Web 頁面添加動態內容的一種功能強大的指令碼語言。它尤其特別有助於一些日常任務,比如驗證密碼和建立動態菜單組件。JavaScript 易學易用,但卻很容易在某些瀏覽器中引起記憶體的泄漏。在這個介紹性的文章中,我們解釋了
Time of Update: 2018-12-07
2.6 原始類型 ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof來判斷值的類型。1、typeof運算子:1 var sTemp="test string";2 alert(typeof sTemp);//outpus "string"3 alert(typeof 95);//outpus
Time of Update: 2018-12-07
Math對象的屬性E:值e,自然對數的底LN10:10的自然對數LN2:2的自然對數LOG2E:以2為底E的對數LOG10E:以10為底E的對數PI:值派SQRT1_2:1/2 的平方根SQRT2:2的平方根Math對象的方法:最大值與最小值min()&&max()用於取一組數中的最小值跟最大值。樣本:var iMax=Math.Max(1,2,3);alert(iMax);//outputs 3var
Time of Update: 2018-12-07
2.8
Time of Update: 2018-12-07
2.7 類型轉換1、轉換成字串 所有對象都有toString()方法可以轉換成字串,要注意的是Number類型的toString()方法,它有兩種模式,即預設模式和基模式,採用預設模式toString()方法只是用相應的字串輸出對應的10進位數字值,用基模式可以用不同的基輸出數字。樣本:1 var iNum1=10;2 var iNum2=10.0;3 var iNum3=10;4 5 alert(iNum1.toString()); //outpus "10"6
Time of Update: 2018-12-07
工廠方式 建立並返回特定類型的對象。 function createCar(sColor,iDoors,iMpg){var oTempCar=new Object(); oTempCar.color=sColor; oTempCar.doors=iDoors; oTempCar.mpg=iMpg; oTempCar.showColor=function(){ alert(this.color); } return
Time of Update: 2018-12-07
2.9 運算子2.9.1、一元運算子 一元運算子只有一個參數,即要操作的對象或值。 1、delete:刪除對以前定義的對象屬性或方法的引用,但此運算子不能刪除開發人員未定義的屬性和方法。樣本: 1 var o=new Object; 2 o.name="Nicholas"; 3 o.show=function(){ 4 return "test"; 5 }; 6 console.log(o.name); //outpus Nicholas 7
Time of Update: 2018-12-07
繼承 繼承是物件導向語言的必備特徵,即一個類能夠重用另一個類的方法和屬性。在JavaScript中繼承方式的實現方式主要有以下五種:對象冒充、call()、apply()、原型鏈、混合方式。 下面分別介紹。對象冒充 原理:建構函式使用this關鍵字給所有屬性和方法賦值。因為建構函式只是一個函數,所以可以使ClassA的建構函式成為ClassB的方法,然後調用它。ClassB就會收到ClassA的建構函式中定義的屬性和方法。 樣本:function ClassA(sColor){this.
Time of Update: 2018-12-07
續上篇,建構函式+原型 組裝一個類;同一建構函式可以定義出多個類型/** * $class 寫類工具函數之二 * @param {Function} constructor * @param {Object} prototype */function $class(constructor,prototype) {var c = constructor || function(){};var p = prototype || {};return function() {for(var atr
Time of Update: 2018-12-07
XMLHttpRequest的屬性onreadystatechange屬性存有伺服器響應的函數,後面可以跟一個function,每當伺服器狀態改變是執行function.Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->xmlHttp.onreadystatechange=function(){
Time of Update: 2018-12-07
有個網友問了個問題,如下的html,為什麼點擊所有的段落p輸出都是5,而不是alert出對應的0,1,2,3,4。<!DOCTYPE HTML><html><head><meta charset="utf-8" /><title>閉包示範</title><style type="text/css">p {background:gold;}</style><script
Time of Update: 2018-12-07
從這篇起,會由淺到深的分析JS OO之寫類方式,大概會有5-8篇。後面陸續會分析流行庫(架構)的寫類方式。 一些寫類工具函數或架構的寫類方式本質上都是 建構函式+原型。只有理解這一點才能真正明白如何用JavaScript寫出物件導向的代碼,或者說組織代碼的方式使用物件導向方式。當然用JS也可寫出函數式的代碼,它是多泛型的。 為了討論的單一性,暫不考慮類的繼承,(私人,受保護)屬性或方法。EMCAScript中實際沒有類(class)的概念,但可以把它理解為更廣義的概念。 1、建構函式方式/**
Time of Update: 2018-12-07
前段時間溫故了下JS OO之寫類方式,從這篇開始我們看看JS OO之繼承方式。物件導向的語言多數都支援繼承,繼承最重要的優點就是代碼複用,從而構建大型軟體系統。如果一個類能夠重用另一個類的屬性和或方法,就稱之為繼承。從這個角度來看看JS的繼承方式。JS中繼承方式與寫類方式息息相關。不同的寫類方式造成不同的繼承方式。各種流行JS庫繼承方式也各不相同。從最簡單的複用開始。 1、建構函式方式寫類,通過方法調用複製父類屬性/欄位到子類
Time of Update: 2018-12-07
javascript中的Regex對象regExp。建立regExp對象文法new regExp(pattern,attributes);直接量文法/pattern/attributes 也可以是new regExp(/pattern/attributes) 注意:如果用new regExp(pattern,attributes)建立對象pattern作為一個字串需要加引號"";如果用直接量文法,在語句中不需要加引號。regExp對象方法:compile() 編譯Regex