javascript
JavaScript基础内容
1.1 JavaScript基礎概念:
JavaScript (ECMAScript) :JavaScript 是腳本語言。JavaScript和ECMAScript通常被人用來表達相同的含義,但是JavaScript并不是這么一點含義,它是由ECMAScript 核心. DOM 文檔對象模型. BOM 瀏覽器對象模型 這三部分組成。瀏覽器會在讀取代碼時,逐行地執行腳本代碼。而對于傳統編程來說,會在執行前對所有代碼進行編譯。
1.1.1 ECMAScript
組成部分:語法,類型,語句,關鍵字,保留字,操作符,對象。
1.1.2 DOM
文檔對象模型(DOM , Document Object Model)是針對XML但是經過拓展用于HTML的應用程序編程接口。DOM把整個頁面
映射為一個多層節點結構,開發人員借助DOM Api對節點進行操作。
HTML DOM (文檔對象模型)
當網頁被加載時,瀏覽器會創建頁面的文檔對象模型(Document Object Model)。
HTML DOM 模型被構造為對象的樹。
HTML DOM 樹:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
通過可編程的對象模型,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 通過在網頁中加入<Script>…</Script>標記JavaScript的開始和結束,將JavaScript代碼放到<Script>…</Script>之間
2 也可以引入一個外部的JavaScript文件,這個JavaScript文件一般以.js作為擴展名
3 原則上,放在<head></head>之間。但視情況可以放在網頁的任何部分
4 一個頁面可以有幾個<Script>…</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; // 整數123070; //八進制的560xA; //十六進制的100.456; // 浮點數0.4561.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 運算符
- delete:用于刪除對象中屬性的 如:delete o.name; //刪除o對象中的name屬性
void: void 運算符對任何值返回 undefined。沒有返回值的函數真正返回的都是 undefined。
- ++ --
一元加法和一元減法
位運算 NOT ~
位運算 AND &
位運算 OR |
位運算 XOR ^ (不同為1,相同則為0)
左移運算 <<
右移運算 >>
邏輯 NOT ! 運算符 非
邏輯 AND && 運算符 與
邏輯 OR || 運算符 或
乘性運算符:*( 乘) /(除) %(取模)求余
加性運算符: + -
*其中+號具有兩重意思:字串連接和數值求和。
就是加號”+“兩側都是數值則求和,否則做字串連接
關系運算符 > >= < <=
等性運算符 == === != !==
條件運算符 ? : (三元運算符)
賦值運算符 = += -= *= /= %= >>= <<=
10 逗號運算符
用逗號運算符可以在一條語句中執行多個運算。
var iNum1=1, iNum2=2, iNum3=3;1.3.5 操作符
位操作符
32位二進制表示整數,第32位為符號位
~ 按位非(NOT)& 按位與(AND)| 按位或(OR)^ 按位異或(XOR)<< 左移,不影響符號位>> 有符號右移,保留符號位,不影響正負<<< 無符號右移,連著符號位一起右移關系操作符
操作符與C語言的語法基本類似,這里不詳細說明了。
1.3.6 語句
輸出BOM中 window對象的所有屬性
迭代前最好先檢測對象是否為null或undefined。(ECMAScript5中不執行循環體,以前會報錯)
label語句,給代碼添加標簽
break和continue語句(break跳出循環,直接執行循環后的代碼。continue跳出當前循環,接著進入下一次循環)
with語句(不建議使用,可讀性差)
switch語句
var num = 15;switch (true){ //輸出 Between 10 and 20,如果是false就輸出 Less than 0case 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; // 3arr.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的大小,訪問索引時要確保索引不會越界。
首先調用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,Gregalert(people.toString()); //Nicholas,Gregalert(people.toLocaleString()); //Nikolaos,Grigorios
與String類似,Array也可以通過indexOf()來搜索一個指定的元素的位置:
var arr = [10, 20, '30', 'xyz'];arr.indexOf(10); // 元素10的索引為0arr.indexOf(20); // 元素20的索引為1arr.indexOf(30); // 元素30沒有找到,返回-1arr.indexOf('30'); // 元素'30'的索引為2
數字****30****和字符串****’30’****是不同的元素。
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,purplealert(colors3); //green,blue,yellow
push()向Array的末尾添加若干元素,pop()則把Array的最后一個元素刪除掉:
var arr = [1, 2];arr.push('A', 'B'); // 返回Array新的長度: 4arr; // [1, 2, 'A', 'B']arr.pop(); // pop()返回'B'arr; // [1, 2, 'A']arr.pop(); arr.pop(); arr.pop(); // 連續pop 3次arr; // []arr.pop(); // 空數組繼續pop不會報錯,而是返回undefinedarr; // []
如果要往Array的頭部添加若干元素,使用unshift()方法,shift()方法則把Array的第一個元素刪掉:
var arr = [1, 2];arr.unshift('A', 'B'); // 返回Array新的長度: 4arr; // ['A', 'B', 1, 2]arr.shift(); // 'A'arr; // ['B', 1, 2]arr.shift(); arr.shift(); arr.shift(); // 連續shift 3次arr; // []arr.shift(); // 空數組繼續shift不會報錯,而是返回undefinedarr; // []
如果要往Array的頭部添加若干元素,使用unshift()方法,shift()方法則把Array的第一個元素刪掉:
var arr = [1, 2];arr.unshift('A', 'B'); // 返回Array新的長度: 4arr; // ['A', 'B', 1, 2]arr.shift(); // 'A'arr; // ['B', 1, 2]arr.shift(); arr.shift(); arr.shift(); // 連續shift 3次arr; // []arr.shift(); // 空數組繼續shift不會報錯,而是返回undefinedarr; // []
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()把整個Array的元素反轉:
var arr = ['one', 'two', 'three'];arr.reverse();arr; // ['three', 'two', 'one']
splice()方法是修改Array的“萬能方法”,它可以從指定的索引開始刪除若干元素,然后再從該位置添加若干元素: 1.刪除:指定2個參數:要刪除的第一項和要刪除的項數。 2.插入:提供3個參數:起始位置、要刪除的項數、要插入的項數。 3.替換:指定3個參數:起始位置、要刪除的項數、要插入的任意數量的項。
var colors = ["red", "green", "blue"];var removed = colors.splice(0,1); //刪除第一項alert(colors); //green,bluealert(removed); //red - 返回數組中只包含一項removed = colors.splice(1, 0, "yellow", "orange"); //從位置1開始插入兩項alert(colors); //green,yellow,orange,bluealert(removed); //返回的是一個空數組removed = colors.splice(1, 1, "red", "purple"); //插入兩項,刪除一項alert(colors); //green,red,purple,orange,bluealert(removed); //yellow - 返回數組中只包含一項
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()方法是一個非常實用的方法,它把當前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)訪問對象的屬性
objectNamepropertyNamevar 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): constructor 所修立對象的函數參考 prototype能夠為對象加進的屬性和方法 辦法(43): 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()返回布我對象的原始值
屬性: constructor 所樹立對象的函數參考 prototype可以為對于象參加的屬性和方式 length返回字符串的字符長度 法子(20): anchor("name")用來把字符串轉換為HTML錨面標志內(<A NAME=>) big() 把字符串中的文本變成大字體(<BIG>) blink() 把字符串中的文本變成閃耀字體(<BLINK>) bold() 把字符串中的文本變成烏字體(<B>) fixed() 把字符串中的文本變成流動間距字體,便電報情勢(<TT>) fontcolor(color)設置字符串中文本的色彩(<FONT COLOR=>) Fontsize(size) 把字符串中的文本變成指定大小(<FONTSIZE=>) italics() 把字符串中的白原變成斜字體(<I>) Link(url)用來把字符串轉換-HTML鏈交標志中(<A HREF=>) small() 把字符串中的文本變成小字體(<SMALL>) strike() 把字符串中的文本變成劃掉字體(<STRIKE>) sub() 把字符串中的文本變成下標(subscript)字體((SUB>) sup() 把字符串中的文本變成上標(superscript)字體(<SUP>) 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" οnsubmit="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"οnsubmit="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\. srcElement2\. keyCode 鍵盤值
1.6.3 事件 event window.event
1\. srcElement 代表事件源對象2\. keyCode 事件發生時的鍵盤碼 keypress , keydown keyup3\. clientX, clientY 坐標位置4\. screenX, screenY5\. returnValue6\. cancelBubble;//為頁面添加鼠標右點擊事件window.document.οncοntextmenu=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); //FFreturn 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 οnclick="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.availWidth1.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文檔 91.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 //獲取的是顯示的內容,會包含HTMLouterTextouterHTML表單value
c. 操作樣式
aobj.style.backgroundColor="red";aobj.style.fontSize="3cm";classNameaobj.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, Safarixmlhttp=new XMLHttpRequest();}else{// code for IE6, IE5xmlhttp=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");
?
轉載于:https://www.cnblogs.com/WinkJie/p/11286346.html
總結
以上是生活随笔為你收集整理的JavaScript基础内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python猜字游戏(用函数)(最新版)
- 下一篇: 怎样彻底卸载软件?解决卸载残余?例如:总