Time of Update: 2018-12-08
Window對象 視窗操作 Window對象對操作瀏覽器視窗非常有用,開發人員可以移動或調整瀏覽器視窗的大小。可用四種方法實現這些操作: moveBy(dx,dy):把瀏覽器視窗相對當前位置水平移動dx個像素,垂直移動dy個像素。dx值為負左移,dy為負上移。 moveTo(x,y):行動瀏覽器視窗,使它的左上方位於使用者螢幕的(x,y)處。可以使用負數,不過這樣會把部分視窗移出螢幕的可視地區。 resizeBy(dw,dh):相對瀏覽器視窗當前大小,把視窗的寬度調整dw個像素,
Time of Update: 2018-12-08
繼承 繼承是物件導向語言的必備特徵,即一個類能夠重用另一個類的方法和屬性。在JavaScript中繼承方式的實現方式主要有以下五種:對象冒充、call()、apply()、原型鏈、混合方式。 下面分別介紹。 對象冒充 原理:建構函式使用this關鍵字給所有屬性和方法賦值。因為建構函式只是一個函數,所以可以使ClassA的建構函式成為ClassB的方法,然後調用它。ClassB就會收到ClassA的建構函式中定義的屬性和方法。 樣本: 複製代碼 代碼如下:function
Time of Update: 2018-12-08
工廠方式 建立並返回特定類型的對象。 複製代碼 代碼如下: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 oTempCar; } 調用樣本: 複製代碼
Time of Update: 2018-12-08
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 3 var iMin=Math.Min(
Time of Update: 2018-12-08
排序代碼 複製代碼 代碼如下:function SortTable(sTableID, iCol, sDataType){ this.oTable=document.getElementById(sTableID); this.oTBody=this.oTable.tBodies[0]; this.colDataRows=this.oTBody.rows; this.aTRs=[]; this.iCol=iCol; this.sDataType=sDataType; }
Time of Update: 2018-12-08
1、<DIV id=div1><h1>This is an DIV</h1></div> <button onclick=alert(div1.outerHTML)>outerHTML</button> <button onclick=alert(div1.innerHTML)>innerHTML</button> <button
Time of Update: 2018-12-08
跨平台的事件EventUtil對象 EventUtil: 複製代碼 代碼如下:var EventUtil={ addEventHandler:function(oTarget, sEventType, fnHandler){ if(oTarget.addEventListener){ oTarget.addEventListener(sEventType,fnHandler,false); } else if(oTarget.attachEvent){
Time of Update: 2018-12-08
一、事件流 IE中是冒泡型事件,即從最特定的事件目標到最不特定的事件目標。 Netscape Navigator使用的是捕獲型事件,這個跟IE中採用的冒泡型事件相反。 DOM事件流同時支援兩種事件模型,但捕獲型事件先發生。 二、事件處理函數/監聽函數 事件是使用者或瀏覽器自身進行的特定行為。這些事件都有自己的名字,如click、load、mouseover等。 事件處理函數有兩種分配方式:在JavaScript中或者在HTML中。
Time of Update: 2018-12-08
檢測瀏覽器的方式 1、對象特徵檢測法:判斷瀏覽器能力的通用方法。如果更關注瀏覽器的能力而不在乎它的實際身份,就可以使用這種檢測方法。常見的原生Ajax寫法中就用這種方法來建立XMLHttpRequest: 複製代碼 代碼如下:IXHR: function(){ if(window.ActiveXObject){ XHR=new ActiveXObject('Microsoft.XMLHTTP'); }else if(window.XMLHttpRequest){ XHR=new
Time of Update: 2018-12-08
1、建立Regex 第一種方式:注意這裡的Regex不能使用單引號或者雙引號,如下 var pattern1 = /[abc]/i; // 匹配第一個"a"或"b"或"c",不區分大小寫 第二種方式:使用RegExp建構函式建立,該建構函式傳入兩個參數,都是字串,所以需要特別注意"\"符號的轉換,所有元字元(下面有講元字元)需要雙重轉義,如下 複製代碼 代碼如下:var patt1 = new RegExp("[abc]","gi"); // 這裡等價於 var patt1 =
Time of Update: 2018-12-08
一、變數 •全域變數 JavaScript的兩個特徵,不自覺地建立出全域變數是出乎意料的容易。首先,你可以甚至不需要聲明就可以使用變數;第二,JavaScript有隱含的全域概念,意味著你不聲明的任何變數都會成為一個全域對象屬性(不是真正意義上的全域變數,可以用delete刪除) 複製代碼 代碼如下:function sum(x,y) { // result 未聲明,為隱式全域變數 result = x + y; return result; } function foo() { //
Time of Update: 2018-12-08
局部變數也就可以理解為在函數內部定義的變數,很明顯訪問局部變數要比域外的變數要快,因為它位於範圍鏈的第一個變數對象中(關於範圍鏈的介紹可以閱讀這篇文章)。變數在範圍鏈的位置越深,訪問所需要的時間就越長,全域變數總是最慢的,因為它們位於範圍鏈的最後一個變數對象。 每種資料類型的訪問都需要付出點效能代價,對於直接量和局部變數基本都能消費得起,而訪問數組項和對象成員則要代價高點。顯示了不同瀏覽器,分別對這四種資料類型進行了200'000次操作所用的時間。
Time of Update: 2018-12-08
資料類型 JavaScript中有5種單一資料型別(也稱為基礎資料型別 (Elementary Data Type)):Undefined、Null、Boolean、Number和String。還有1種複雜資料類型——Object,Object本質上是由一組無序的名值對組成的。 typeof操作符 介於JavaScript是鬆散類型的,因此需要有一種手段來檢測給定變數的資料類型——typeof就是負責提供者方面資訊的操作符。對一個值使用typeof操作符可能返回下列某個字串: ●
Time of Update: 2018-12-08
1.1.1 摘要 相信有C++、C#或Java等編程經驗的各位,對於this關鍵字再熟悉不過了。由於Javascript是一種物件導向的程式設計語言,它和C++、C#或Java一樣都包含this關鍵字,接下來我們將向大家介紹Javascript中的this關鍵字。 本文目錄 全域代碼中的this 函數中的this 參考型別 函數調用以及非參考型別 參考型別以及this的null值 函數作為構造器被調用時this的值 手動設定函數調用時this的值 1.1.2 本文
Time of Update: 2018-12-08
今天周五,很閑,坐在電腦前沒什麼事可做,產品線的人也沒提什麼新的需求,可能下周會有新的需求和工作安排,但那是下周的事了。今天就想寫點技術的東西,也就當作是記記筆記,本人水平有限,希望大家多多指教,嘴下留情,哈哈。 有時候我們會想擴充DOM元素的功能,可以添加一些自訂的方法,以讓它用起來更加靈活、方便;先來舉個例子:複製代碼 代碼如下:<!DOCTYPE html><html lang="zh"> <head>
Time of Update: 2018-12-08
首先建立html頁面為sort.html ,並把下面的內容複寫進去 複製代碼 代碼如下:<!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
Time of Update: 2018-12-08
•類比塊級範圍 大家都知道在JavaScript中沒有塊級範圍的概念,我們可以通過使用閉包來類比實現塊級範圍,看下面的樣本: 複製代碼 代碼如下:(function () { for (var i = 0; i < 10; i++) { //Do Nothing } alert(i); //輸出10 })(); 第6行可以訪問到for迴圈塊中的變數i,如果我們稍微修改以上代碼,把for迴圈塊放置在閉包中,情況就不一樣了: 複製代碼 代碼如下:(function () {
Time of Update: 2018-12-08
這本書中第一個重要的內容就是介面。大家對介面應該都不陌生,簡單的說介面就是一個契約或者規範。在強型別的面相對象語言中,介面可以很容易的實現。但是在javascript中並沒有原生的建立或者實現介面的方式,或者判定一個類型是否實現了某個介面,我們只能利用js的靈活性的特點,類比介面。 在javascript中實現介面有三種方式:注釋描述、屬性驗證、鴨子模型。 note:因為我看的是英文書,翻譯水平有限,不知道有些詞彙如何翻譯,大家只能領會精神了。 1. 注釋描述 (Describing
Time of Update: 2018-12-08
一、建立Regex 建立Regex和建立字串類似 , 建立Regex提供了兩種方法 , 一種是採用 new運算子,另一個是採用字面量方式。 複製代碼 代碼如下: var dog = new RegExp('dog'); // 第一個參數字串 var dog = new RegExp('dog', 'ig'); // 第二個參數可選模式修飾符 var dog = /dog/; var dog = /dog/ig; //字面量方式。 RegExp 對象包含兩個方法 : test()
Time of Update: 2018-12-08
1、每個函數都包含兩個非繼承而來的方法:apply()和call()。 2、他們的用途相同,都是在特定的範圍中調用函數。 3、接收參數方面不同,apply()接收兩個參數,一個是函數啟動並執行範圍(this),另一個是參數數組。call()方法第一個參數與apply()方法相同,但傳遞給函數的參數必須列舉出來。 例1: 複製代碼 代碼如下:window.firstName = "diz"; window.lastName = "song"; var myObject = {