<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # 1.1 JavaScript基礎概念 JavaScript (ECMAScript) :JavaScript 是腳本語言。JavaScript和ECMAScript通常被人用來表達相同的含義,但是JavaScript并不是這么一點含義,它是由ECMAScript 核心. DOM 文檔對象模型. BOM 瀏覽器對象模型 這三部分組成。瀏覽器會在讀取代碼時,逐行地執行腳本代碼。而對于傳統編程來說,會在執行前對所有代碼進行編譯。 ## 1.1.1 ECMAScript 組成部分:語法,類型,語句,關鍵字,保留字,操作符,對象。 ## ECMAScript簡介 **ECMAScript**是一種由[Ecma國際](https://baike.baidu.com/item/Ecma%E5%9B%BD%E9%99%85)(前身為[歐洲計算機制造商協會](https://baike.baidu.com/item/%E6%AC%A7%E6%B4%B2%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%88%B6%E9%80%A0%E5%95%86%E5%8D%8F%E4%BC%9A/2052072),英文名稱是European Computer Manufacturers Association)通過ECMA-262標準化的腳本[程序設計語言](https://baike.baidu.com/item/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E8%AF%AD%E8%A8%80)。這種語言在[萬維網](https://baike.baidu.com/item/%E4%B8%87%E7%BB%B4%E7%BD%91)上應用廣泛,它往往被稱為[JavaScript](https://baike.baidu.com/item/JavaScript)或[JScript](https://baike.baidu.com/item/JScript),所以它可以理解為是JavaScript的一個標準,但實際上后兩者是ECMA-262標準的實現和擴展。 # 1.1.2 DOM ## 文檔對象模型(DOM , Document Object Model)是針對XML但是經過拓展用于HTML的應用程序編程接口。DOM把整個頁面映射為一個多層節點結構,開發人員借助DOM Api對節點進行操作。 # HTML DOM (文檔對象模型) 當網頁被加載時,瀏覽器會創建頁面的文檔對象模型(Document Object Model)。 HTML DOM 模型被構造為對象的樹。 # HTML DOM 樹 ![](https://box.kancloud.cn/79aa14bda594d2e402e5d92e5bab2c60_527x284.png) ### 通過可編程的對象模型,JavaScript 獲得了足夠的能力來創建動態的 HTML。 ### · JavaScript 能夠改變頁面中的所有 HTML 元素 ### · JavaScript 能夠改變頁面中的所有 HTML 屬性 ### · JavaScript 能夠改變頁面中的所有 CSS 樣式 ### · JavaScript 能夠對頁面中的所有事件做出反應 # 1.1.3 BOM ## 瀏覽器對象模型(Browser Object Model)使用BOM控制瀏覽器顯示頁面意外的部分。 ## 1.2 在HTML中使用JavaScript方式 ### 1.2.1 javaScript腳本加載的位置 1 通過在網頁中加入…標記JavaScript的開始和結束,將JavaScript代碼放到…之間 2 也可以引入一個外部的JavaScript文件,這個JavaScript文件一般以.js作為擴展名 3 原則上,放在之間。但視情況可以放在網頁的任何部分 4 一個頁面可以有幾個…</Script,不同部分的方法和變量,可以共享。 ### 1.2.2 javaScript語句的注意點 (1)對大小寫敏感 (2)自動忽略多余的空格 (3)在文本字符串中使用反斜杠對代碼行進行換行 (4)單行注釋(//)多行注釋(/\* \*/) ## 1.3 JavaScript基本語法: ## 1.3.1 變量: 什么是變量? 變量是用于存儲信息的容器 變量的聲明 語法: var 變量名 變量名 = 值; 變量要先聲明再賦值 變量可以重復賦值 變量的命名規則 變量必須以字母開頭; 變量也能以$和\_符號開頭(不過我們不推薦這么做); 變量名稱對大小寫敏感(a和A是不同的變量)。 ## 1.3.2 數據類型 ### typeof操作符:用于檢測給定變量的數據類型。 ### · undefined類型 只有一個特殊的值就是undefined,在使用var聲明變量但未初始化時,變量的值是undefined。 ### · null類型 只有一個特殊的值就是null,null值表示一個空對象指針,使用typeof操作符檢測null值會返回“object”。 ### · boolean類型 布爾值和布爾代數的表示完全一致,一個布爾值只有true、false兩種值,要么是true,要么是false,可以直接用true、false表示布爾值,也可以通過布爾運算計算出來。**boolean\*\*\*\*類型的字面值\*\*\*\*true\*\*\*\*和\*\*\*\*false\*\*\*\*是區分大小寫的**。 ### · number類型 JavaScript不區分整數和浮點數,統一用Number表示,以下都是合法的Number類型: ~~~ 123; // 整數123 070; //八進制的56 0xA; //十六進制的10 0.456; // 浮點數0.456 1.2345e3; // 科學計數法表示1.2345x1000,等同于1234.5 -99; // 負數 NaN; // NaN表示Not a Number,當無法計算結果時用NaN表示 Infinity; // Infinity表示無限大,當數值超過了JavaScript的Number所能表示的最大值時,就表示為Infinity ~~~ · string類型 字符串是以單引號’或雙引號”括起來的任意文本,比如’abc’,”xyz”等等。請注意,”或”“本身只是一種表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c這3個字符。 如果’本身也是一個字符,那就可以用”“括起來,比如”I’m OK”包含的字符是I,’,m,空格,O,K這6個字符。 如果字符串內部既包含’又包含”怎么辦?可以用轉義字符\\來標識,比如: `'I\'m \"OK\"!';` 表示的字符串內容是:I’m “OK”! 轉義字符\\可以轉義很多字符,比如\\n表示換行,\\t表示制表符,字符\\本身也要轉義,所以\\表示的字符就是\\。 · object類型 創建object類型的實例并為其添加屬性和方法,就可以創建自定義對象。 對象:由花括號分隔,。在括號內部,對象的屬性以名稱和值對的形式 (name : value) 來定義。屬性由逗號分隔 對象屬性有兩種尋址方式: ~~~ name=person.lastname; name=person["lastname"]; ~~~ ## 1.3.3 類型轉換: 使用:Number()、parseInt() 和parseFloat() 做類型轉換 ~~~ Number()強轉一個數值(包含整數和浮點數)。 *parseInt()強轉整數, *parseFloat()強轉浮點數 ~~~ 函數isNaN()檢測參數是否不是一個數字。 is not a number ECMAScript 中可用的 3 種強制類型轉換如下: ~~~ Boolean(value) - 把給定的值轉換成 Boolean 型; Number(value) - 把給定的值轉換成數字(可以是整數或浮點數); String(value) - 把給定的值轉換成字符串; ~~~ ## 1.3.4 運算符 1. 一元運算符 * delete:用于刪除對象中屬性的 如:delete o.name; //刪除o對象中的name屬性 void: void 運算符對任何值返回 undefined。沒有返回值的函數真正返回的都是 undefined。 * ++ -- 一元加法和一元減法 2. 位運算符 位運算 NOT ~ 位運算 AND & 位運算 OR | 位運算 XOR ^ (不同為1,相同則為0) 左移運算 << 右移運算 >> 3. 邏輯運算符 邏輯 NOT ! 運算符 非 邏輯 AND && 運算符 與 邏輯 OR || 運算符 或 4. 乘性運算符:\*( 乘) /(除) %(取模)求余 5. 加性運算符: + - \*其中+號具有兩重意思:字串連接和數值求和。 就是加號”+“兩側都是數值則求和,否則做字串連接 6. 關系運算符 > >= < <= 7. 等性運算符 == === != !== 8. 條件運算符 ? : (三元運算符) 9. 賦值運算符 = += -= \*= /= %= >>= <<= 10 逗號運算符 用逗號運算符可以在一條語句中執行多個運算。 ~~~ var iNum1=1, iNum2=2, iNum3=3; ~~~ ## 1.3.5 操作符 位操作符 32位二進制表示整數,第32位為符號位 ~~~ ~ 按位非(NOT) & 按位與(AND) | 按位或(OR) ^ 按位異或(XOR) << 左移,不影響符號位 >> 有符號右移,保留符號位,不影響正負 <<< 無符號右移,連著符號位一起右移 ~~~ 關系操作符 操作符與C語言的語法基本類似,這里不詳細說明了。 ## 1.3.6 語句 1. for-in 精準的迭代語句,可以用來枚舉對象的屬性 ~~~ for(var propName in window){ document.write(propName); } ~~~ 輸出BOM中 window對象的所有屬性 迭代前最好先檢測對象是否為null或undefined。(ECMAScript5中不執行循環體,以前會報錯) 2. label語句,給代碼添加標簽 3. break和continue語句(break跳出循環,直接執行循環后的代碼。 continue跳出當前循環,接著進入下一次循環) ~~~ var num =0; outer: for(var i=0;i<10;i++){ for(var j=0;j<10;j++){ if(i == 5 && j==5){ continue outer; } num++; } } alert(num); //95 ~~~ 4. with語句(不建議使用,可讀性差) 5. switch語句 ~~~ var num = 15; switch (true){ //輸出 Between 10 and 20,如果是false就輸出 Less than 0 case num<0: alert("Less than 0"); break; case num>=0&&num<=1: alert("Between 0 and 1"); break; case num>10&&num<=20: alert("Between 10 and 20"); break; default: alert("More than 20"); } ~~~ ## 1.3.7 數組 JavaScript的Array可以包含任意數據類型,并通過索引來訪問每個元素。 要取得Array的長度,直接訪問length屬性: ~~~ var arr = [1, 2, 3.14, 'Hello', null, true]; arr.length; // 6 ~~~ 這里要注意,直接給Array的length賦一個新的值會導致Array大小發生變化: ~~~ var arr = [1, 2, 3]; arr.length; // 3 arr.length = 6; arr; // arr變為[1, 2, 3, undefined, undefined, undefined] arr.length = 2; arr; // arr變為[1, 2] ~~~ Array可以通過索引把對應的元素修改為新的值,因此,對Array的索引進行賦值會直接修改這個Array: ~~~ var arr = ['A', 'B', 'C']; arr[1] = 99; arr; // arr現在變為['A', 99, 'C'] ~~~ 請注意,如果通過索引賦值時,索引超過了范圍,同樣會引起Array大小的變化: ~~~ var arr = [1, 2, 3]; arr[5] = 'x'; arr; // arr變為[1, 2, 3, undefined, undefined, 'x'] ~~~ 大多數其他編程語言不允許直接改變數組的大小,越界訪問索引會報錯。然而,JavaScript的Array卻不會有任何錯誤。在編寫代碼時,不建議直接修改Array的大小,訪問索引時要確保索引不會越界。 * 轉換方法 所有對象都具有toLocaleString(),toString(),valueOf()方法。 ~~~ · var colors = ["red", "blue", "green"]; //creates an array with three strings · alert(colors.toString()); //red,blue,green · alert(colors.valueOf()); //red,blue,green · alert(colors); //red,blue,green ~~~ 首先調用toString()方法,返回數組的字符串表示。toLocaleString()方法經常返回與toString()和valueOf()方法相同的值,但不同的是,調用的是每一項的toLocaleString()方法,而不是toString()。 ~~~ var person1 = { toLocaleString : function () { return "Nikolaos"; }, toString : function() { return "Nicholas"; } }; var person2 = { toLocaleString : function () { return "Grigorios"; }, toString : function() { return "Greg"; } }; var people = [person1, person2]; alert(people); //Nicholas,Greg alert(people.toString()); //Nicholas,Greg alert(people.toLocaleString()); //Nikolaos,Grigorios ~~~ * indexOf 與String類似,Array也可以通過indexOf()來搜索一個指定的元素的位置: ~~~ var arr = [10, 20, '30', 'xyz']; arr.indexOf(10); // 元素10的索引為0 arr.indexOf(20); // 元素20的索引為1 arr.indexOf(30); // 元素30沒有找到,返回-1 arr.indexOf('30'); // 元素'30'的索引為2 ~~~ **數字\*\*\*\*30\*\*\*\*和字符串\*\*\*\*’30’\*\*\*\*是不同的元素。** * slice slice()就是對應String的substring()版本,它截取Array的部分元素,然后返回一個新的Array: ~~~ var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; arr.slice(0, 3); // 從索引0開始,到索引3結束,但不包括索引3: ['A', 'B', 'C'] arr.slice(3); // 從索引3開始到結束: ['D', 'E', 'F', 'G'] ~~~ 注意到slice()的起止參數包括開始索引,不包括結束索引。 如果不給slice()傳遞任何參數,它就會從頭到尾截取所有元素。利用這一點,我們可以很容易地復制一個Array: ~~~ var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; var aCopy = arr.slice(); aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G'] aCopy === arr; // false ~~~ 在只有一個參數時,返回從該參數指定位置開始到當前數組末尾的所有項,如果有兩個參數,返回起始和結束位置之間的一項(但不包括結束位置的項)。 **slice(\*\*\*\*)方法不會影響原始數組** ~~~ var colors = ["red", "green", "blue", "yellow", "purple"]; var colors2 = colors.slice(1); var colors3 = colors.slice(1,4); alert(colors2); //green,blue,yellow,purple alert(colors3); //green,blue,yellow ~~~ * push和pop push()向Array的末尾添加若干元素,pop()則把Array的最后一個元素刪除掉: ~~~ var arr = [1, 2]; arr.push('A', 'B'); // 返回Array新的長度: 4 arr; // [1, 2, 'A', 'B'] arr.pop(); // pop()返回'B' arr; // [1, 2, 'A'] arr.pop(); arr.pop(); arr.pop(); // 連續pop 3次 arr; // [] arr.pop(); // 空數組繼續pop不會報錯,而是返回undefined arr; // [] ~~~ * unshift和shift 如果要往Array的頭部添加若干元素,使用unshift()方法,shift()方法則把Array的第一個元素刪掉: ~~~ var arr = [1, 2]; arr.unshift('A', 'B'); // 返回Array新的長度: 4 arr; // ['A', 'B', 1, 2] arr.shift(); // 'A' arr; // ['B', 1, 2] arr.shift(); arr.shift(); arr.shift(); // 連續shift 3次 arr; // [] arr.shift(); // 空數組繼續shift不會報錯,而是返回undefined arr; // [] ~~~ * unshift和shift 如果要往Array的頭部添加若干元素,使用unshift()方法,shift()方法則把Array的第一個元素刪掉: ~~~ var arr = [1, 2]; arr.unshift('A', 'B'); // 返回Array新的長度: 4 arr; // ['A', 'B', 1, 2] arr.shift(); // 'A' arr; // ['B', 1, 2] arr.shift(); arr.shift(); arr.shift(); // 連續shift 3次 arr; // [] arr.shift(); // 空數組繼續shift不會報錯,而是返回undefined arr; // [] ~~~ * sort sort()可以對當前Array進行排序,它會直接修改當前Array的元素位置,直接調用時,按照默認順序排序: ~~~ var arr = ['B', 'C', 'A']; arr.sort(); arr; // ['A', 'B', 'C'] ~~~ 比較函數 ~~~ function compare(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; } } var values = [0, 1, 5, 10, 15]; values.sort(compare); alert(values); //0,1,5,10,15 ~~~ 降序排序 ~~~ function compare(value1, value2) { if (value1 < value2) { return 1; } else if (value1 > value2) { return -1; } else { return 0; } } var values = [0, 1, 5, 10, 15]; values.sort(compare); alert(values); //15,10,5,1,0 ~~~ * reverse reverse()把整個Array的元素反轉: ~~~ var arr = ['one', 'two', 'three']; arr.reverse(); arr; // ['three', 'two', 'one'] ~~~ * splice splice()方法是修改Array的“萬能方法”,它可以從指定的索引開始刪除若干元素,然后再從該位置添加若干元素: 1.刪除:指定2個參數:要刪除的第一項和要刪除的項數。 2.插入:提供3個參數:起始位置、要刪除的項數、要插入的項數。 3.替換:指定3個參數:起始位置、要刪除的項數、要插入的任意數量的項。 ~~~ var colors = ["red", "green", "blue"]; var removed = colors.splice(0,1); //刪除第一項 alert(colors); //green,blue alert(removed); //red - 返回數組中只包含一項 removed = colors.splice(1, 0, "yellow", "orange"); //從位置1開始插入兩項 alert(colors); //green,yellow,orange,blue alert(removed); //返回的是一個空數組 removed = colors.splice(1, 1, "red", "purple"); //插入兩項,刪除一項 alert(colors); //green,red,purple,orange,blue alert(removed); //yellow - 返回數組中只包含一項 ~~~ * concat concat()方法把當前的Array和另一個Array連接起來,并返回一個新的Array: ~~~ var arr = ['A', 'B', 'C']; var added = arr.concat([1, 2, 3]); added; // ['A', 'B', 'C', 1, 2, 3] arr; // ['A', 'B', 'C'] ~~~ **concat()\*\*\*\*方法并沒有修改當前\*\*\*\*Array\*\*\*\*,而是返回了一個新的\*\*\*\*Array\*\*\*\*。** 實際上,concat()方法可以接收任意個元素和Array,并且自動把Array拆開,然后全部添加到新的Array里: ~~~ var arr = ['A', 'B', 'C']; arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4] ~~~ * join join()方法是一個非常實用的方法,它把當前Array的每個元素都用指定的字符串連接起來,然后返回連接后的字符串: ~~~ var arr = ['A', 'B', 'C', 1, 2, 3]; arr.join('-'); // 'A-B-C-1-2-3' ~~~ 如果Array的元素不是字符串,將自動轉換為字符串后再連接。 ## 1.3.8 對象 屬性是與對象相關的值。 方法是能夠在對象上執行的動作。 (1)創建 javaScript對象 JavaScript 中的幾乎所有事務都是對象:字符串、數字、數組、日期、函數,等等。 你也可以創建自己的對象。 ~~~ person=new Object(); person.firstname="Bill"; person.lastname="Gates"; person.age=56; person.eyecolor="blue"; ~~~ (2)訪問對象的屬性 ~~~ objectNamepropertyName var message="Hello World!"; var x=message.length; ~~~ (3)訪問對象的方法 ~~~ objectNamemethodNamevar message="Hello world!"; var x=message.toUpperCase(); ~~~ Date對象: 創建方式: ~~~ myDate = new Date(); ~~~ 日期起始值:1970年1月1日00:00:00 主要方法 ~~~ getYear(): 返回年數 setYear(): 設置年數 getMonth(): 返回月數 setMonth():設置月數 getDate(): 返回日數 setDate():設置日數 getDay(): 返回星期幾 setDay():設置星期數 getHours():返回小時數 setHours():設置小時數 getMinutes():返回分鐘數 setMintes():設置分鐘數 getSeconds():返回秒數 setSeconds():設置秒數 getTime() : 返回毫秒數 setTime() :設置毫秒數 ~~~ ## 1.3.9 異常 try 語句測試代碼塊的錯誤。 catch 語句處理錯誤。 throw 語句創建自定義錯誤。 **(\*\*\*\*1\*\*\*\*)\*\*\*\*JavaScript** **測試和捕捉** try 語句允許我們定義在執行時進行錯誤測試的代碼塊。 catch 語句允許我們定義當 try 代碼塊發生錯誤時,所執行的代碼塊。 JavaScript 語句 try 和 catch 是成對出現的。 **(\*\*\*\*2\*\*\*\*)\*\*\*\*Throw** **語句** throw 語句允許我們創建自定義錯誤。 正確的技術術語是:創建或拋出異常(exception)。 如果把 throw 與 try 和 catch 一起使用,那么您能夠控制程序流,并生成自定義的錯誤消息。 ~~~ <script> function myFunction() { try { var x=document.getElementById("demo").value; if(x=="") throw "empty"; if(isNaN(x)) throw "not a number"; if(x>10) throw "too high"; if(x<5) throw "too low"; } catch(err) { var y=document.getElementById("mess"); y.innerHTML="Error: " + err + "."; } } </script> ~~~ ### 1.3.10 函數 (1)函數語法 ~~~ function functionname() { 這里是要執行的代碼 } ~~~ (2)帶參數的函數 ~~~ function myFunction(var1,var2) { 這里是要執行的代碼 } ~~~ (3)帶有返回值的函數 ~~~ function myFunction() { var x=5; return x; } ~~~ 若僅僅希望退出函數時 ,也可使用 return 語句 ~~~ function myFunction(a,b) { if (a>b) { return; } x=a+b } ~~~ ### 1.3.11 內置函數 1. Date:日期函數 > 屬性(1): constructor 所修立對象的函數參考 prototype能夠為對象加進的屬性和方法 > getDay() 返回一周中的第幾天(0-6) > getYear() 返回年份.2000年以前為2位,2000(包括)以后為4位 > getFullYear()返回完全的4位年份數 > getMonth()返回月份數(0-11) > getDate() 返回日(1-31) > getHours() 返回小時數(0-23) > getMinutes() 返回分鐘(0-59) > getSeconds() 返回秒數(0-59) > getMilliseconds() 返回毫秒(0-999) > getUTCDay() 依據國際時間來得到如今是禮拜幾(0-6) > getUTCFullYear() 根據邦際時間來失掉完全的年份 > getUTCMonth()依據國際時間來得到月份(0-11) > getUTCDate() 依據國際時間來失掉日(1-31) > getUTCHours() 依據國際時間來失掉小時(0-23) > getUTCMinutes() 根據邦際光陰來往歸分鐘(0-59) > getUTCSeconds() 依據國際時間來返回秒(0-59) > getUTCMilliseconds()依據國際時間來返回毫秒(0-999) > getTime() 前往自1970年1月1號0:0:0到如今一同花來的毫秒數 > getTimezoneoffset()往歸時區偏偏差值,便格林威亂均勻時光(GMT)取運轉足原的盤算機所處時區設置之間相差的分鐘數) > parse(dateString) 返回正在Date字符串中自從1970年1月1日00:00:00以來的毫秒數 > setYear(yearInt)設置年份.2位數或4位數 > setFullYear(yearInt)設置年份.4位數 > setMonth(monthInt)設放月份(0-11) > setDate(dateInt) 設置日(1-31) > setHours(hourInt) 設置小時數(0-23) > setMinutes(minInt) 設置分鐘數(0-59) > setSeconds(secInt) 設放秒數(0-59) > setMilliseconds(milliInt) 設放毫秒(0-999) > setUTCFullYear(yearInt) 依據國際時間來設置年份 > setUTCMonth(monthInt)依據國際時間來設置月(0-11) > setUTCDate(dateInt) 依據國際時間來設置日(1-31) > setUTCHours(hourInt) 依據國際時間來設置小時 > setUTCMinutes(minInt)依據國際時間來設置分鐘 > setUTCSeconds(secInt)依據國際時間來設置秒 > setUTCMilliseconds(milliInt)根據邦際時間來設置毫秒 > setTime(timeInt)設置自1970年1月1日開端的時間.毫秒數 > toGMTString()依據格林威亂時光將Date對于象的日期(一個數值)改變成一個GMT光陰字符串,如:Weds,15 June l997 14:02:02 GMT > toUTCString() 依據通用時間將一個Date對象的日期轉換為一個字符串 > toLocaleString()把Date對象的日期(一個數值)改變成一個字符串,使用所在盤算機上配置使用的特定日期格局 > toSource()顯示對象的源代碼 > toString()將日期對象轉換為字符串 UTC(yyyy, mm, dd, hh, mm, ss, msec)往歸自格林威亂尺度光陰到指訂時光的差距,雙位為毫秒 > valueOf()返回日期對象的本初值 2.Math:數學函數 > constructor 所樹立對象的函數參考 > prototype可以為對于象參加的屬性和方式 > E歐推常質,天然對數的頂(約等于2.718) > LN2 2的天然對數(約即是0.693) > LN10 10的天然對數(約等于2.302) > LOG2E 以2為頂的e的對數.(約等于1.442) > LOG10E 以10為頂的e的對數(約等于0.434) > PI ∏的值(約即是3.14159) > SQRT1\_2 1/2(0.5)的平方根(便l除以2的平方根,約即是o.707) > SQRT2 2的平方根(約等于1.414) > 方法: abs(x) 返回數字的相對值 > acos(x)返回數字的反余弦值 > asin(x)返回數字的反正弦值 > atan(x)返回位于-PI/2 和 PI/2 的反正切值 > atan2(y,x)前往(x,y)位于 -PI 到 PI 之間的角度 > ceil(x)返回 x 四舍五入后的最大整數 > cos(x)前往一個數字的余弦值 > exp(x)返回 E^x 值 > floor(x)返回 x 四舍五入后的最小整數 > log(x)返回底數為E的自然對數 > max(x,y)返回 x 和 y 之間較大的數 > min(x,y)返回 x 和 y 之間較小的數 > pow(x,y)返回 y^x 的值 > random()返回位于 0 到 1 之間的隨機函數 > round(x)四舍五進后與整 > sin(x)返回數字的正弦值 > sqrt(x)返回數字的平方根 > tan(x)返回一個角度的正切值 > toSource()顯示對象的流代碼 > valueOf()返回數教對象的本初值3.Number 屬性: MAX\_VALUE > The largest possible value a number in JavaScript can have 1.7976931348623157E+308 MIN\_VALUE The smallest possible value a number in JavaScript can have 5E-324 NaN Equal to a value that is not a number. NEGATIVE\_INFINITY A value that is less than MIN\_VALUE. POSOTIVE\_INFINITY A value that is greater than MAX\_VALUE. prototype A static property of the Number object 方法: toString Returns a string representing the specified object valueOf() 返回數教對象的本初值4.Boolean屬性: constructor 所樹立對象的函數參考 prototype可以為對象參加的屬性和方式 法子: toSource() 顯示對象的流代碼 toString()將布我值轉換為字符串,并且返回成果 valueOf()返回布我對象的原始值 3. String :字符函數 > 屬性: constructor 所樹立對象的函數參考 prototype可以為對于象參加的屬性和方式 length返回字符串的字符長度 法子(20): anchor("name")用來把字符串轉換為HTML錨面標志內() big() 把字符串中的文本變成大字體() blink() 把字符串中的文本變成閃耀字體() bold() 把字符串中的文本變成烏字體() fixed() 把字符串中的文本變成流動間距字體,便電報情勢() fontcolor(color)設置字符串中文本的色彩() Fontsize(size) 把字符串中的文本變成指定大小() italics() 把字符串中的白原變成斜字體() Link(url)用來把字符串轉換-HTML鏈交標志中() small() 把字符串中的文本變成小字體() strike() 把字符串中的文本變成劃掉字體() sub() 把字符串中的文本變成下標(subscript)字體((SUB>) sup() 把字符串中的文本變成上標(superscript)字體() charAt(index) 返回指定索引處的字符 charCodeAt(index)返回一個整數,該整數表現String對象中指定位置處的字符的Unicode編碼 concat(string2)銜接兩條或少條字符串 fromCharCode(num1, num2, …,BB霜, numN)獲取指定的Unicode值并返回字符串 indexOf(searchString, startIndex)返回字符串中第一個呈現指定字符串的地位 lastlndexOf(searchString, startIndex)返回字符串中最后一個呈現指定字符串的地位 match(regex)在字符串中查覓指定值 replace(regex, newString)將字符串中的某些字符替代成其它字符 search(regex)針對某施行值對字符串入止查覓 slice(startIndex, endIndex)將部門字符抽出并在新的字符串中返回剩余局部 split(delimiter)將字符串分配為數組 substr(startIndex, length)從startIndex與,取length個字符 substring(startIndex, endIndex)從startIndex和endIndex之間的字符,沒有包含endIndex toLowerCase() 把字符串中的文本變成小寫 toUpperCase()把字符串中的白本變成大寫 toSource()顯示對象的源代碼 valueOf()返回字符串對象的原始值 4.Array :數組函數 > 屬性: constructor 所修立對象的函數參考 prototype能夠為對象加入的屬性和方法 index For an array created by a regular expression match, the zero-based index of the match in the string. input For an array created by a regular expression match, reflects the original string against which the regular expression was matched. length獲取數組元素的個數,即最大下標加1辦法(13):concat(array1,arrayn)將兩個或兩個以上的數組值銜接止來,合并后返回成果 join(string)將數組中元素合并為字符串,十月媽咪,string為分隔符.如省詳參數則直交合并,不再分隔 pop()移除數組中的最后一個元素并返回當元素 push(value)在數組的終尾加上一個或多個元素,并且返回新的數組長度值 reverse()倒置數組中元素的次序,反背排列 shift()移除數組中的第一個元素并返回當元素 slice(start, deleteCount, \[item1\[, item2\[,...\[,itemN\]\]\]\])返從一個數組中移除一個或少個元素,假如必要,在所移除元素的地位上拔出新元素,返回所移除的元素 sort(compare Function)在已指定排序號的情形下,依照元素的字女次序排列,假如不是字符串類型則轉換成字符串再排序,返回排序后的數組 splice()為數組刪除并加加新的元素 toSource()顯示對象的源代碼 toString()將數組一切元素返回一個字符串,其間用逗號分隔 unshift(value)為數組的開端部門加上一個或者少個元葷,并且返回當數組的新長度 valueOf()返回數組對象的原始值 5.齊局 > 屬性: Infinity 指定一個正負無限大的數值 NaN指定一個 “非數字” 值 undefined指訂一個已被賦值的變質法子:decodeURI() 為加稀的URI入止解碼 decodeURIComponent()為加稀的URI組件解碼 encodeURI()將字符串加密為URI encodeURIComponent() 將字符串加稀為URI組件 escape(string)加密一個字符串 ()使用escape()對一個字符串入止解碼 eval\_r(string)斷定一個字符串并將其以足本代碼的情勢施行 isFinite(number)檢測一個值能否為一個有限數字,返回True或False isNaN(string) 檢測一個值能否沒有是一個有限數字 Number()將一個對象的值轉換為一個數字 parseFloat(string)將一個字符串解析為一個浮面數字 parseInt(string)將一個字符串解析為一個整數,沒有是四舍五進操做,而是切尾 String(object)將一個對象值轉換為一個字符串 number(object) 6.事情 > 屬性: a.窗心事件,只在body和frameset元素中才有效 onload頁里或者圖片加載完成時 onunload用戶分開頁里時 b.表雙元素事情,正在表雙元素中才有效 onchange框內容轉變時 onsubmit點打降接按鈕時 onreset沉新點擊鼠標按鍵時 onselect白原被挑選時 onblur元素失來焦點時 onfocus該元素獲與焦面時 c.鍵盤事情,base,bdo,br,frame,frameset,head,html,iframe,meta,param,script,style,title元素里皆無效 onkeydown按下鍵盤按鍵時 onkeypress按下或按住鍵盤按鍵時 onkeyup擱啟鍵盤按鍵時 d.正在base,bdo,br,frame,frameset,head,html,iframe,meta,param,script,style,title元葷里皆無效 onclick鼠標點打一個對象時 ondblclick鼠標雙打一個對象時 onmousedown鼠本被按下時 onmousemove鼠標被挪動時 onmouseout鼠本分開元葷時 onmouseover鼠標經由元素時 onmouseup開釋鼠本按鍵時 ## 1.4 JavaScript常用技巧函數: ### 1.4.1 HTML的標簽(節點)操作 ~~~ document.write(""); //輸出的 document.getElementById("id名"); //獲取html頁面標簽中,標簽id屬性等于此值的對象。 如:var id = document.getElementById("hid"); //獲取id值為hid的標簽對象 document.getElementsByTagName("標簽名"); //獲取當前文檔執行的標簽對象 ~~~ ### 1.4.2 HTML標簽對象的操作: ~~~ 標簽對象.innerHTML="內容";//在標簽對象內放置指定內容 標簽對象.style.css屬性名="值" //改變標簽對象的樣式。 示例:id.style.color="red"; 注意:屬性名相當于變量名,所以css屬性名中的減號要去掉,將后面的首字母大寫。 如:font-size(css)---> fontSize(JS屬性) 標簽對象.value; //獲取標簽對象的value值 標簽對象.value=”值“;//設置標簽對象的value值 ~~~ ### 1.4.3 輸出內容(document.write) document.write()直接在網頁中輸出內容。 第一種:輸出內容用“”括起,直接輸出“”號內的內容。 ~~~ document.write("I love JavaScript!"); ~~~ 第二種:通過變量,輸出內容 ~~~ var mystr = "hello world"; document.write(mysrt);//直接寫變量名,輸出變量存儲的內容 ~~~ 第三種:輸出多項內容,內容之間用+號連接。 ~~~ var mystr = "hello"; document.write(mystr + "I love Java Script");//多項內容之間用+號連接 ~~~ 第四種:輸出HTML標簽,并起作用,標簽使用“”括起來。 ~~~ var mystr="hello"; document.write(mystr+"<br>");//輸出hello后,輸出一個換行符 document.write("JavaScript"); ~~~ ### 1.4.4 警告(alert 消息對話框) 我們在訪問網站的時候,有時會突然彈出一個小窗口,上面寫著一段提示信息文字。如果你不點擊“確定”,就不能對網頁做任何操作,這個小窗口就是使用alert實現的。 語法:alert(字符串或變量); ~~~ var mynum = 30; alert("hello!"); alert(mynum); ~~~ 結果:按順序彈出消息框(alert彈出消息對話框包含一個確定按鈕) 注意: 1\. 在點擊對話框"確定"按鈕前,不能進行任何其它操作。 2\. 消息對話框通常可以用于調試程序。 3\. alert輸出內容,可以是字符串或變量,與document.write 相似 ### 1.4.5 確認選擇(confirm 消息對話框) 除了向用戶提供信息,我們還希望從用戶那里獲得信息。這里就用到了confirm 消息對話框。 confirm 消息對話框通常用于允許用戶做選擇的動作,如:“你對嗎?”等。彈出對話框(包括一個確定按鈕和一個取消按鈕)。 語法:confirm(str); 參數說明:str:在消息對話框中要顯示的文本 返回值:Boolean值 返回值: 當用戶點擊"確定"按鈕時,返回true 當用戶點擊"取消"按鈕時,返回false 注: 通過返回值可以判斷用戶點擊了什么按鈕 ~~~ <script type="text/javascript"> var mymessage=confirm("你喜歡JavaScript嗎?"); if(mymessage==true){ document.write("很好,加油!"); }else{ document.write("JS功能強大,要學習噢!"); } </script> ~~~ ### 1.4.6 提問(prompt 消息對話框) 有時候,不僅希望用戶回答Yes/No。而是希望得到更特定的響應。這中情況我們可以利用prompt。 prompt彈出消息對話框,通常用于詢問一些需要與用戶交互的信息。彈出消息對話框(包含一個確定按鈕、取消按鈕與一個文本輸入框)。 語法: ~~~ prompt(str1,str2); ~~~ 參數說明: str1:要顯示在消息對話框中的文本,不可修改 str2:文本框中的內容,可以修改 返回值: 1、點擊確定按鈕,文本框中的內容將作為函數返回值 2、點擊取消按鈕,將返回null ~~~ function rec(){ var score; //score變量,用來存儲用戶輸入的成績值。 score = prompt("請輸入你的成績","90"); if(score>=90){ document.write("你很棒!"); }else if(score>=75){ document.write("不錯吆!"); }else if(score>=60){ document.write("要加油!"); }else{ document.write("要努力了!"); }; } ; <script> var myName = prompt("輸入您的名字"); if(myName != null && myName != ""){ document.write("welcom to" + myName); }else{ document.write("welcom to my friend"); } </script> ~~~ ### 1.4.7 打開新窗口(window.open) 語法: ~~~ window.open([URL], [窗口名稱], [參數字符串]) ~~~ 參數說明: URL:可選參數,在窗口中要顯示網頁的網址或路徑。如果省略這個參數,或者它的值是空字符串,那么窗口就不顯示任何文檔。 窗口名稱:可選參數,被打開窗口的名稱。 1.該名稱由字母、數字和下劃線字符組成。 2.窗口名稱:可選,該字符串是一個由逗號分隔的特征列表,聲明了被打開窗口的名稱。可以是"\_top"、"\_blank"、"\_selft"、"\_parent"等。 ~~~ _blank 在新窗口顯示目標網頁 _selft 在當前窗口顯示目標網頁 _parent 框架網頁中當前整個窗口位置顯示目標網頁 _top 框架網頁中在上部窗口中顯示目標網頁 ~~~ 3.相同 name 的窗口只能創建一個,要想創建多個窗口則 name 不能相同。 4.name 不能包含有空格。 參數字符串:可選參數,設置窗口參數,各參數用逗號隔開。 參數表: ~~~ top    Number  窗口頂部離開屏幕頂部的像素數 left    Number  窗口左端離開屏幕左端的像素數 width    Number  窗口的寬度 height    Number  窗口的高度 menubar    yes,no  窗口有沒有菜單 toolbar    yes,no  窗口有沒有工具條 scrollbars    yes,no   窗口有沒有滾動條 status      yes,no   窗口有沒有狀態欄 ~~~ ~~~ <script type="text/javascript"> window.open('http://','_blank','width=300,height=200,menubar=no,toolbar=no, status=no,scrollbars=yes') ~~~ ### 1.4.8 關閉窗口(window.close) close()關閉窗口 用法: ~~~ window.close();//關閉本窗口 <窗口對象>.close();//關閉指定的窗口 ~~~ 例如:關閉新建的窗口。 ~~~ <script type="text/javascript"> var mywin=window.open('//www.jb51.net'); //將新打的窗口對象,存儲在變量mywin中 mywin.close(); </script> ~~~ ### 1.4.9 innerHTML屬性 innerHTML屬性用于獲取或替換HTML元素的內容。 語法: ~~~ Object.innerHTML ~~~ Object是獲取的元素對象,如通過document.getElementById("ID")獲取元素。 ~~~ <h2 id="con">javascript</H2> <script type="text/javascript">   var mychar=document.getElementById("con");   document.write("原標題:"+mychar.innerHTML+"<br>"); //輸出原h2標簽內容   mychar.innerHTML="hello world"   document.write("修改后的標題:"+mychar.innerHTML); //輸出修改后h2標簽內容 </script> ~~~ ### 1.4.10 改變HTML樣式 語法: ~~~ Object.style.property=new style; ~~~ 注意:Object是獲取的元素對象,如通過document.getElementById("id")獲取的元素 ~~~ <h2 id="con">I love JavaScript</h2> <script type="text/javascript"> var mychar= document.getElementById("con"); mychar.style.color="red"; mychar.style.background="#ccc"; mychar.style.width="300px"; </script> ~~~ ### 1.4.11 顯示和隱藏(display屬性) 語法: ~~~ Object.style.display = value ~~~ value值: ~~~ none 此元素不會被顯示(及隱藏) block 此元素將顯示為塊級元素(即顯示) mychar.style.display = "block" ~~~ ### 1.4.12 控制類名(className屬性) className屬性設置或返回元素的class屬性。 語法: ~~~ object.className = classname ~~~ 作用: 1、獲取元素的class屬性 2、為網頁內的某個元素指定一個css樣式來更改該元素的外觀 ~~~ p2.className = "two"; ~~~ 以上這篇Javascript基礎學習筆記(菜鳥必看篇)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。 ## 1.5 JavaScript 表單驗證 JavaScript 可用來在數據被送往服務器前對HTML 表單中的這些輸入數據進行驗證 被JavaScript 驗證的這些典型的表單數據有: · 用戶是否已填寫表單中的必填項目? · 用戶輸入的郵件地址是否合法? · 用戶是否已輸入合法的日期? · 用戶是否在數據域 (numeric field) 中輸入了文本? ### 1.5.1 利用onsubmit表單認證 如下為一個javacript的一個重要功能應用,利用onsubmit表單認證 ~~~ <html> <head> <script type="text/javascript"> fuvtion check(){ if(document.text.t.value==""){ alert("字符不能為空"); return false; } return true; } </script> </head> <body> <from name="test" action="test.html" onsubmit ="return check()"> <input type="text" name="t"> <input type="submit" value="OK"> </body> </html> ~~~ ### 1.5.2 必填(或必選)項目 ~~~ <html> <head> <script type="text/javascript"> function validate_required(field,alerttxt) { with (field) { if (value==null||value=="") {alert(alerttxt);return false} else {return true} } } function validate_form(thisform) { with (thisform) { if (validate_required(email,"Email must be filled out!")==false) {email.focus();return false} } } </script> </head> <body> <form action="submitpage.htm" onsubmit="return validate_form(this)" method="post"> Email: <input type="text" name="email" size="30"> <input type="submit" value="Submit"> </form> </body> </html> ~~~ ### 1.5.3 E-mail驗證 意思就是說,輸入的數據必須包含 @ 符號和點號(.)。同時,@ 不可以是郵件地址的首字符,并且 @ 之后需有至少一個點 ~~~ <html> <head> <script type="text/javascript"> function validate_email(field,alerttxt) { with (field) { apos=value.indexOf("@") dotpos=value.lastIndexOf(".") if (apos<1||dotpos-apos<2) {alert(alerttxt);return false} else {return true} } } function validate_form(thisform) { with (thisform) { if (validate_email(email,"Not a valid e-mail address!")==false) {email.focus();return false} } } </script> </head> <body> <form action="submitpage.htm"onsubmit="return validate_form(this);" method="post"> Email: <input type="text" name="email" size="30"> <input type="submit" value="Submit"> </form> </body> </html> ~~~ 說明: with(field){};設定作用域 focus() 方法用于給予該元素焦點。這樣用戶不必點擊它,就能編輯顯示的文本了。 ## 1.6 JavaScript事件處理: ### 1.6.1 使用一個匿名或回調函數添加事件 有三種方法加事件 第一種: 格式: ~~~ <tag on事件="事件處理程序" /> ~~~ \*第二種: ~~~ <script> 對象.on事件=事件處理程序 </script> ~~~ 第三種:(火狐不兼容) ~~~ <script for="事件源ID" event="on事件">事件處理程序</script> ~~~ ### 1.6.2 事件對象: 屬性: ~~~ 1\. srcElement 2\. keyCode 鍵盤值 ~~~ ### 1.6.3 事件 event window.event ~~~ 1\. srcElement 代表事件源對象 2\. keyCode 事件發生時的鍵盤碼 keypress , keydown keyup 3\. clientX, clientY 坐標位置 4\. screenX, screenY 5\. returnValue 6\. cancelBubble; ~~~ ~~~ //為頁面添加鼠標右點擊事件 window.document.oncontextmenu=function(ent){ //兼容IE和火狐瀏覽器兼容 var event=ent || window.event; //獲取事件坐標位置 var x=event.clientX; var y=event.clientY; ... } /*********************對象添加事件*******************/ function addEvent(obj,type,fun){ obj=$(obj); if(obj.addEventListener){ obj.addEventListener(type,fun); //FF return true; }else if(obj.attachEvent){ return obj.attachEvent("on"+type,fun); //IE }else{ return false; }; }; /*********************對象刪除事件*******************/ function delEvent(obj,type,fun){ obj=$(obj); if(obj.addEventListener){ obj.removeEventListener(type,fun); return true; }else if(obj.attachEvent){ obj.detachEvent("on"+type,fun); return true; }else{ return false; }; }; ~~~ ~~~ document.getElementById("one").offsetHeight; //獲取one對應對象的高度 obj.offsetTop 指 obj 距離上方或上層控件的位置,整型,單位像素。 obj.offsetLeft 指 obj 距離左方或上層控件的位置,整型,單位像素。 obj.offsetWidth 指 obj 控件自身的寬度,整型,單位像素。 obj.offsetHeight 指 obj 控件自身的高度,整型,單位像素。 document.all ? 'IE' : 'others':在IE下document.all值為1,而其他瀏覽器下的值為0; ~~~ ## 1.7 BOM ### 1.7.1 window對象 ~~~ <button onclick="window.location=''">跳轉</button> ~~~ 常用的屬性: ~~~ *document :對 Document 對象的只讀引用 *history :對 History 對象的只讀引用。 *location:用于窗口或框架的 Location 對象 Navigator: 對 Navigator 對象的只讀引用 *parent: 返回父窗口。 length: 設置或返回窗口中的框架數量。 Screen: 對 Screen 對象的只讀引用 status: 設置窗口狀態欄的文本。 top: 返回最頂層的先輩窗口。 ~~~ 常用方法: ~~~ alert() 顯示帶有一段消息和一個確認按鈕的警告框。 confirm() 顯示帶有一段消息以及確認按鈕和取消按鈕的對話框。 prompt() 顯示可提示用戶輸入的對話框。 close() 關閉瀏覽器窗口。 open() 打開一個新的瀏覽器窗口或查找一個已命名的窗口。 scrollTo() 把內容滾動到指定的坐標。 setTimeout() 在指定的毫秒數后調用函數或計算表達式。 clearTimeout() 取消由 setTimeout() 方法設置的 timeout。 setInterval() 按照指定的周期(以毫秒計)來調用函數或計算表達式。 clearInterval() 取消由 setInterval() 設置的 timeout。 ~~~ ### 1.7.2 Navigator 對象 Navigator 對象包含的屬性描述了正在使用的瀏覽器。可以使用這些屬性進行平臺專用的配置。 常用屬性: ~~~ with(document) { write ("你的瀏覽器信息:<ul>"); write ("<li>代碼:"+navigator.appCodeName+"</li>"); write ("<li>名稱:"+navigator.appName+"</li>"); write ("<li>版本:"+navigator.appVersion+"</li>"); write ("<li>語言:"+navigator.language+"</li>"); write ("<li>編譯平臺:"+navigator.platform+"</li>"); write ("<li>用戶表頭:"+navigator.userAgent+"</li>"); write ("</ul>"); } ~~~ ### 1.7.3 Screen 對象 Screen 對象包含有關客戶端顯示屏幕的信息 常用屬性: ~~~ document.write( "屏幕寬度:"+screen.width+"px<br />" ); document.write( "屏幕高度:"+screen.height+"px<br />" ); document.write( "屏幕可用寬度:"+screen.availWidth+"px<br />" ); document.write( "屏幕可用高度:"+screen.availHeight+"px" ); ~~~ 參考了解其他屬性信息獲取方式 ~~~ 網頁可見區域寬: document.body.clientWidth 網頁可見區域高: document.body.clientHeight 網頁可見區域寬: document.body.offsetWidth (包括邊線的寬) 網頁可見區域高: document.body.offsetHeight (包括邊線的高) 網頁正文全文寬: document.body.scrollWidth 網頁正文全文高: document.body.scrollHeight 網頁被卷去的高: document.body.scrollTop 網頁被卷去的左: document.body.scrollLeft 網頁正文部分上: window.screenTop 網頁正文部分左: window.screenLeft 屏幕分辨率的高: window.screen.height 屏幕分辨率的寬: window.screen.width 屏幕可用工作區高度: window.screen.availHeight 屏幕可用工作區寬度: window.screen.availWidth ~~~ ### 1.7.4 History 對象 History 對象包含用戶(在瀏覽器窗口中)訪問過的 URL。 ### 1.7.5 Location 對象 Location 對象包含有關當前 URL 的信息。 ~~~ //獲取頁面中第二form表單中,一個username輸入框的值(7種方式) //alert(document.forms[1].username.value); alert(document.myform.username.value); //alert(document.forms.myform.username.value); //alert(document.forms.item(1).username.value); //alert(document.forms['myform'].username.value); //alert(document['myform'].username.value); //alert(document.forms.item('myform').username.value); //火狐不兼容 ~~~ ## 1.8 DOM ### 1.8.1 基本概念 HTML DOM 定義了訪問和操作HTML文檔的標準方法。 HTML DOM 把 HTML 文檔呈現為帶有元素、屬性和文本的樹結構(節點樹)。 DOM 被分為不同的部分: 1.Core DOM 定義了一套標準的針對任何結構化文檔的對象 2.XML DOM 定義了一套標準的針對 XML 文檔的對象 3.HTML DOM 定義了一套標準的針對 HTML 文檔的對象。 節點:根據 DOM,HTML 文檔中的每個成分都是一個節點。 DOM 是這樣規定的: > 整個文檔是一個文檔節點 > 每個 HTML 標簽是一個元素節點 > 包含在 HTML 元素中的文本是文本節點 > 每一個 HTML 屬性是一個屬性節點 > 注釋屬于注釋節點 節點彼此間都存在關系。 > 除文檔節點之外的每個節點都有父節點。 > 大部分元素節點都有子節點。 > 當節點分享同一個父節點時,它們就是同輩(同級節點)。 > 節點也可以擁有后代,后代指某個節點的所有子節點,或者這些子節點的子節點 > 節點也可以擁有先輩。先輩是某個節點的父節點,或者父節點的父節點 查找并訪問節點 你可通過若干種方法來查找您希望操作的元素: > 通過使用 getElementById() 和 getElementsByTagName() 方法 > 通過使用一個元素節點的 parentNode、firstChild 以及 lastChild childNodes屬性 節點信息 每個節點都擁有包含著關于節點某些信息的屬性。這些屬性是: ~~~ nodeName(節點名稱) nodeValue(節點值) nodeType(節點類型) nodeName 屬性含有某個節點的名稱。 元素節點的 nodeName 是標簽名稱 屬性節點的 nodeName 是屬性名稱 文本節點的 nodeName 永遠是 #text 文檔節點的 nodeName 永遠是 #document ~~~ ### 1.8.2 HTML DOM 對象參考 ~~~ Document: 代表整個 HTML 文檔,可被用來訪問頁面中的所有元素 常用集合屬性:forms Anchor : 代表 <a> 元素 Area : 代表圖像映射中的 <area> 元素 Base : 代表 <base> 元素 Body : 代表 <body> 元素 Button : 代表 <button> 元素 Event : 代表某個事件的狀態 Form : 代表 <form> 元素 Frame : 代表 <frame> 元素 Frameset: 代表 <frameset> 元素 Iframe : 代表 <iframe> 元素 Image : 代表 <img> 元素 Input button : 代表 HTML 表單中的一個按鈕 Input checkbox : 代表 HTML 表單中的復選框 Input file : 代表 HTML 表單中的文件上傳 Input hidden : 代表 HTML 表單中的隱藏域 Input password : 代表 HTML 表單中的密碼域 Input radio : 代表 HTML 表單中的單選按鈕 Input reset : 代表 HTML 表單中的重置按鈕 Input submit : 代表 HTML 表單中的確認按鈕 Input text : 代表 HTML 表單中的文本輸入域(文本框) Link : 代表 <link> 元素 Meta : 代表 <meta> 元素 Object : 代表 <Object> 元素 Option : 代表 <option> 元素 Select : 代表 HTML 表單中的選擇列表 Style : 代表單獨的樣式聲明 Table : 代表 <table> 元素 TableData : 代表 <td> 元素 TableRow : 代表 <tr> 元素 Textarea : 代表 <textarea> 元素 ~~~ ### 1.8.3 HTML的DOM ~~~ Object : 代表 <Object> 元素 Option : 代表 <option> 元素 Select : 代表 HTML 表單中的選擇列表 Style : 代表單獨的樣式聲明 Table : 代表 <table> 元素 TableData : 代表 <td> 元素 TableRow : 代表 <tr> 元素 Textarea : 代表 <textarea> 元素 ~~~ ## 1.9 XML的DOM DOM (Document Object Model) 文檔對象模型 ### 1.9.1 document 文檔 HTML XML 文件 (標記語言) ~~~ <body> <div> <!-- --> <a href="#">wwww</a> </div> </body> ~~~ 節點: 將文檔想成一個倒樹, 每一個部分(根、元素、文本(內容), 屬性, 注釋)都是一節點。 根據 DOM,HTML 文檔中的每個成分都是一個節點。 DOM 是這樣規定的: ~~~ 1\. 整個文檔是一個文檔節點(根節點) 2\. 每個 HTML 標簽是一個元素節點 3\. 包含在 HTML 元素中的文本是文本節點 4\. 每一個 HTML 屬性是一個屬性節點 5\. 注釋屬于注釋節點 ~~~ ### 1.9.2 父、子和同級節點 節點樹中的節點彼此之間都有等級關系。 父、子和同級節點用于描述這種關系。父節點擁有子節點,位于相同層級上的子節點稱為同級節點(兄弟或姐妹)。 ~~~ 1\. 在節點樹中,頂端的節點成為根節點 2\. 根節點之外的每個節點都有一個父節點 3\. 節點可以有任何數量的子節點 4\. 葉子是沒有子節點的節點 5\. 同級節點是擁有相同父節點的節點 ~~~ 只要知道一個節點, 按關系找到其它節點 父節點: parentNode 子節點(第一個, 最后一個) childNodes firstChild lastChild 同胞(同輩)節點 (上一個, 下一個)nextSibling previousSibling ### 1.9.3 獲取節點的方式: ~~~ array getElementsByTagName("節點名"); //獲取所對應節點名(所有),返回的是數組 object getElementById("id名"); //獲取id名的唯一節點對象 ~~~ 示例:(找節點) ~~~ document.getElementsByTagName("li"); //所有所有li節點 document.getElementById("lid"); //獲取id值為lid的唯一節點 document.getElementById("uid").getElementsByTagName("li"); //獲取id值為uid中所有li子節點 document.getElementsByTagName("ul")[0].getElementsByTagName("li"); //獲取第一個ul節點中所有li子節點 ~~~ 獲取到的標記名(多個)、 id(唯一)、 name(多個) ### 1.9.4 每個節點中的內容 ~~~ 節點類型nodeType、節點名nodeName,節點值nodeValue 節點名nodeName: nodeName 是只讀的 元素節點的 nodeName 與標簽名相同 屬性節點的 nodeName 是屬性的名稱 文本節點的 nodeName 永遠是 #text 文檔節點的 nodeName 永遠是 #document 節點值nodeValue 元素節點的 nodeValue 是 undefined 文本節點的 nodeValue 是文本自身 屬性節點的 nodeValue 是屬性的值 nodeType(節點類型) 元素類型 節點類型 元素 1 屬性 2 文本 3 注釋 8 文檔 9 ~~~ ### 1.9.5 Object 對象 (HTML元素 轉成的對象(js對象)) 注意: 如果使用js操作HTML文檔, 就需要選將HTML文檔結構轉成Js對象 a. 操作屬性: ~~~ nodeName(節點名稱) nodeValue(節點值) nodeType(節點類型) 其他屬性:(針對于節點) childNodes 返回節點到子節點的節點列表。 firstChild 返回節點的首個子節點。 lastChild 返回節點的最后一個子節點。 nextSibling 返回節點之后緊跟的同級節點。 previousSibling 屬性可返回某節點之前緊跟的節點(處于同一樹層級) parentNode 返回節點的父節點。 textContent設置或返回節點及其后代的文本內容。 ~~~ b. 操作內容 ~~~ innerText(IE) textContent(FF) //獲取的是顯示的內容,不包含HTML標簽 innerHTML //獲取的是顯示的內容,會包含HTML outerText outerHTML 表單 value ~~~ c. 操作樣式 ~~~ aobj.style.backgroundColor="red"; aobj.style.fontSize="3cm"; className aobj.className="test"; aobj.className+=" demo"; aobj.className=""; ~~~ e. 操作節點: ~~~ appendChild() 向節點的子節點列表的結尾添加新的子節點。 cloneNode() 復制節點。 removeChild() 刪除(并返回)當前節點的指定子節點。 replaceChild() 用新節點替換一個子節點。 hasAttributes() 判斷當前節點是否擁有屬性。 hasChildNodes() 判斷當前節點是否擁有子節點。 insertBefore() 在指定的子節點前插入新的子節點。 ~~~ f. 創建節點: ~~~ * createElement() 創建元素節點 createAttribute() 來創建屬性節點 可以:元素節點.屬性名=值; createTextNode() 來創建新的文本節點 可以:元素節點.innerHTML=文本內容; ~~~ 有了以上三點的操作之前先轉成對象 轉成對象的兩種形式: 1\. 標記名(多個)、 id(唯一)、 name(多個) document中的三個方法 ~~~ var objs=document.getElementsByTagName("div"); //獲取多個 var objs=document.getElementById("one"); //獲取一個 var objs=document.getElementsByName("two"); ~~~ ## 1.10 Ajax var xmlhttp; ### 1.10.1 創建請求對象 ~~~ if(window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else{ // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } ~~~ ### 1.10.2 設置回調函數(監聽) ~~~ xmlhttp.onreadystatechange=函數名; 或 xmlhttp.onreadystatechange=function(){ 函數體。。。 } ~~~ ### 1.10.3 初始化: ~~~ xmlhttp.open("GET","gethint.php?q="+str,true); //異步以get方式發送到gethint.php ~~~ ### 1.10.4 發送: ~~~ xmlhttp.send(); ~~~ 其中:xmlhttp請求對象: \*\*屬性: ~~~ *readyState //請求狀態:0,1,2,3,4 *responseText//響應內容 responseXML //xml響應對象 *status //瀏覽器響應狀態:200正常, 404 請求地址不存在 ,, statusText //狀態內容 *onreadystatechange //回調函數屬性 ~~~ 方法: ~~~ abort() //取消當前響應,關閉連接并且結束任何未決的網絡活動。 getAllResponseHeaders() //把 HTTP 響應頭部作為未解析的字符串返回。 getResponseHeader() //返回指定的 HTTP 響應頭部的值 *open() //初始化 HTTP 請求參數 *send() //發送 HTTP 請求,使用傳遞給 open() 方法的參數 *setRequestHeader() //向一個打開但未發送的請求設置或添加一個 HTTP 請求。 ~~~ 模擬POST提交代碼: ~~~ xmlhttp.open("POST","ajax_test.php",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("fname=Bill&lname=Gates"); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看