javascript復習總結


1.如何插入javascript

JavaScript代碼寫在<script></script>之間。

 

2.引用JS外部文件

<script src="script.js"></script>

3、js在頁面中的位置

放在<head>部分
最常用的方式是在頁面中head部分放置<script>元素,瀏覽器解析head部分就會執行這個代碼,然后才解析頁面的其余部分。
放在<body>部分
JavaScript代碼在網頁讀取到該語句的時候就會執行。

4、javascript語句和符號

  • “;”分號要在英文狀態下輸入,同樣,JS中的代碼和符號都要在英文狀態下輸入。
  •  雖然分號“;”也可以不寫,記得在語句末尾寫上分號。

5、注釋

單行注釋,在注釋內容前加符號 “//”。

<script type="text/javascript">
document.write("單行注釋使用'//'"); // 我是注釋,該語句功能在網頁中輸出內容
</script>
多行注釋以"/*"開始,以"*/"結束。

<script type="text/javascript">
document.write("多行注釋使用/*注釋內容*/");
/*
多行注釋
養成書寫注釋的良好習慣
*/
</script>

6、變量

定義變量使用關鍵字var,語法如下:

var 變量名

變量名可以任意取名,但要遵循命名規則:

    1.變量必須使用字母、下划線(_)或者美元符($)開始。

    2.然后可以使用任意多個英文字母、數字、下划線(_)或者美元符($)組成。

    3.不能使用JavaScript關鍵詞與JavaScript保留字。

變量要先聲明再賦值,如下:

var mychar;
mychar="javascript";
var mynum = 6;

變量可以重復賦值,如下:

var mychar;
mychar="javascript";
mychar="hello";

注意:

1. 在JS中區分大小寫,如變量mychar與myChar是不一樣的,表示是兩個變量。

2. 變量雖然也可以不聲明,直接使用,但不規范,需要先聲明,后使用。

7、判斷語句

語法:

if(條件)
{ 條件成立時執行的代碼 }
else
{ 條件不成立時執行的代碼 }
假設我們通過年齡來判斷是否為成年人,如年齡大於等於18歲,是成年人,否則不是成年人。代碼表示如下:

<script type="text/javascript">
var myage = 18;
if(myage>=18) //myage>=18是判斷條件
{ document.write("你是成年人。");}
else //否則年齡小於18
{ document.write("未滿18歲,你不是成年人。");}
</script>

8、函數

如何定義一個函數呢?基本語法如下:

function 函數名()
{
     函數代碼;
}

說明:

1. function定義函數的關鍵字。

2. "函數名"你為函數取的名字。

3. "函數代碼"替換為完成特定功能的代碼。

我們來編寫一個實現兩數相加的簡單函數,並給函數起個有意義的名字:“add2”,代碼如下:

function add2(){
   var sum = 3 + 2;
   alert(sum);
}
add2();

函數調用:

9、輸出內容

document.write() 可用於直接向 HTML 輸出流寫內容。簡單的說就是直接在網頁中輸出內容。

第一種:輸出內容用""括起,直接輸出""號內的內容。

<script type="text/javascript">
  document.write("I love JavaScript!"); //內容用""括起來,""里的內容直接輸出。
</script>

第二種:通過變量,輸出內容

<script type="text/javascript">
  var mystr="hello world!";
  document.write(mystr);  //直接寫變量名,輸出變量存儲的內容。
</script>

第三種:輸出多項內容,內容之間用+號連接。

<script type="text/javascript">
  var mystr="hello";
  document.write(mystr+"I love JavaScript"); //多項內容之間用+號連接
</script>

第四種:輸出HTML標簽,並起作用,標簽使用""括起來。

<script type="text/javascript">
  var mystr="hello";
document.write(mystr+"<br>");//輸出hello后,輸出一個換行符
  document.write("JavaScript");
</script>

10、JS中如何輸出空格

解決方法:

1. 使用輸出html標簽&nbsp;來解決

 document.write("&nbsp;&nbsp;"+"1"+"&nbsp;&nbsp;&nbsp;&nbsp;"+"23");
 結果:  1    23

2. 使用CSS樣式來解決

 document.write("<span style='white-space:pre;'>"+"  1        2    3    "+"</span>");
 結果:  1       2     3    

 在輸出時添加“white-space:pre;”樣式屬性。這個樣式表示"空白會被瀏覽器保留"

11、alert對話框

語法:

alert(字符串或變量);  

看下面的代碼:

<script type="text/javascript">
   var mynum = 30;
   alert("hello!");
   alert(mynum);
</script>

注:alert彈出消息對話框(包含一個確定按鈕)。

 12、JavaScript-提問(prompt 消息對話框)

prompt彈出消息對話框,通常用於詢問一些需要與用戶交互的信息。彈出消息對話框(包含一個確定按鈕、取消按鈕與一個文本輸入框)。

語法:

prompt(str1, str2);
參數說明:

str1: 要顯示在消息對話框中的文本,不可修改
str2:文本框中的內容,可以修改
返回值:

1. 點擊確定按鈕,文本框中的內容將作為函數返回值
2. 點擊取消按鈕,將返回null

看看下面代碼:

var myname=prompt("請輸入你的姓名:");
if(myname!=null)
  {   alert("你好"+myname); }
else
  {  alert("你好 my friend.");  }

結果:

注:在用戶點擊對話框的按鈕前,不能進行任何其它操作。

13、打開新窗口(window.open)

open() 方法可以查找一個已經存在或者新建的瀏覽器窗口。

語法:

window.open([URL], [窗口名稱], [參數字符串])
參數說明:

URL:可選參數,在窗口中要顯示網頁的網址或路徑。如果省略這個參數,或者它的值是空字符串,那么窗口就不顯示任何文檔。
窗口名稱:可選參數,被打開窗口的名稱。
1.該名稱由字母、數字和下划線字符組成。
2."_top"、"_blank"、"_self"具有特殊意義的名稱。
_blank:在新窗口顯示目標網頁
_self:在當前窗口顯示目標網頁
_top:框架網頁中在上部窗口中顯示目標網頁
3.相同 name 的窗口只能創建一個,要想創建多個窗口則 name 不能相同。
4.name 不能包含有空格。
參數字符串:可選參數,設置窗口參數,各參數用逗號隔開。
參數表:

 

例如:打開https://i.cnblogs.com網站,大小為300px * 200px,無菜單,無工具欄,無狀態欄,有滾動條窗口:

<script type="text/javascript"> window.open(https://i.cnblogs.com','_blank','width=300,height=200,menubar=no,toolbar=no, status=no,scrollbars=yes')
</script>
注意:運行結果考慮瀏覽器兼容問題。

14、關閉窗口(window.close)

close()關閉窗口

用法:

window.close(); //關閉本窗口

<窗口對象>.close(); //關閉指定的窗口
例如:關閉新建的窗口。

<script type="text/javascript">
var mywin=window.open('http://www.imooc.com'); //將新打的窗口對象,存儲在變量mywin中
mywin.close();
</script>
注意:上面代碼在打開新窗口的同時,關閉該窗口,看不到被打開的窗口。

15、確認(confirm 消息對話框)

confirm 消息對話框通常用於允許用戶做選擇的動作,如:“你對嗎?”等。彈出對話框(包括一個確定按鈕和一個取消按鈕)。

語法:

confirm(str);
參數說明:

str:在消息對話框中要顯示的文本
返回值: Boolean值
返回值:

當用戶點擊"確定"按鈕時,返回true
當用戶點擊"取消"按鈕時,返回false
注: 通過返回值可以判斷用戶點擊了什么按鈕

16、dom結構

 

HTML文檔可以說由節點構成的集合,三種常見的DOM節點:

 

1. 元素節點:<html>、<body>、<p>等都是元素節點,即標簽。

 

2. 文本節點:向用戶展示的內容,如<li>...</li>中的JavaScript、DOM、CSS等文本。

 

3. 屬性節點:元素屬性,如<a>標簽的鏈接屬性href="http://www.imooc.com"。

17、通過id獲取元素放在

語法:

document.getElementById(“id”)

注意:放在獲取元素語句下面

18、innerHTML使用

innerHTML 屬性用於獲取或替換 HTML 元素的內容。

語法:

Object.innerHTML
解釋:獲取對象文本節點,可作為變量並賦值修改

注意:

1.Object是獲取的元素對象,如通過document.getElementById("ID")獲取的元素。

2.注意書寫,innerHTML區分大小寫。實例如下:

19、改變元素屬性及樣式

語法:

Object.style.property=new style;

注意:Object是獲取的元素對象,如通過document.getElementById("id")獲取的元素。

基本屬性表(property):

注意:該表只是一小部分CSS樣式屬性,其它樣式也可以通過該方法設置和修改。

 20、顯示和隱藏(display屬性)

網頁中經常會看到顯示和隱藏的效果,可通過display屬性來設置。

語法:

Object.style.display = value

注意:Object是獲取的元素對象,如通過document.getElementById("id")獲取的元素。

value取值:

 

21、變量

1.必須以字母、下划線或美元符號開頭,后面可以跟字母、下划線、美元符號和數字。如下:

正確:           
    mysum            
    _mychar         
    $numa1          
錯誤:
  6num  //開頭不能用數字
  %sum //開頭不能用除(_ $)外特殊符號,如(%  + /等)
  sum+num //開頭中間不能使用除(_ $)外特殊符號,如(%  + /等)

2.變量名區分大小寫,如:A與a是兩個不同變量。

3.不允許使用JavaScript關鍵字和保留字做變量名。

聲明變量語法: var 變量名;    

var,在JavaScript中是關鍵字(即保留字),這個關鍵字的作用是聲明變量,並為"變量"准備位置(即內存)。

var mynum ; //聲明一個變量mynum

可以一次找多個盒子,所以Var還可以一次聲明多個變量,變量之間用","逗號隔開。

var num1,mun2 ; //聲明一個變量num1

注意:變量也可以不聲明,直接使用,但為了規范,需要先聲明,后使用。

 22、自加一,自減一 ( ++和- -)

算術操作符除了(+、-、*、/)外,還有兩個非常常用的操作符,自加一“++”;自減一“--”。首先來看一個例子:

mynum = 10;
mynum++; //mynum的值變為11
mynum--; //mynum的值又變回10
上面的例子中,mynum++使mynum值在原基礎上增加1,mynum--使mynum在原基礎上減去1,其實也可以寫成:

mynum = mynum + 1;//等同於mynum++
mynum = mynum - 1;//等同於mynum--

23、邏輯操作符

邏輯或操作符值表:

注意: 如果A為真,A || B為真,不會在執行B; 反之,如果A為假,要由 B 的值來決定 A || B 的值。

 24、數組

創建數組語法:

數組的表達方式:
第一步:創建數組var myarr=new Array(); 
第二步:給數組賦值
        myarr[1]=" 張三";
        myarr[2]=" 李四";
var array=['11','22']

注意:

和java不一樣,數組是[]來括起來數組內容的,

java是{}來括起來里面的內容

語法:

myarray.length; //獲得數組myarray的長度

 25、二位數組

1. 二維數組的定義方法一

var myarr=new Array();  //先聲明一維 
for(var i=0;i<2;i++){   //一維長度為2
   myarr[i]=new Array();  //再聲明二維 
   for(var j=0;j<3;j++){   //二維長度為3
   myarr[i][j]=i+j;   // 賦值,每個數組元素的值為i+j
   }
 }

將上面二維數組,用表格的方式表示:

2. 二維數組的定義方法二

var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3]]

3. 賦值

myarr[0][1]=5; //將5的值傳入到數組中,覆蓋原有值。

說明: myarr[0][1] ,0 表示表的行,1表示表的列。

 26、if語句

語法:

if(條件)
{ 條件成立時執行代碼}

語法:

if(條件)
{ 條件成立時執行的代碼}
else
{條件不成立時執行的代碼}

多重判斷嵌套

語法:

if(條件1)
{ 條件1成立時執行的代碼}
else if(條件2)
{ 條件2成立時執行的代碼}
...
else if(條件n)
{ 條件n成立時執行的代碼}
else
{ 條件1、2至n不成立時執行的代碼}

27、多種選擇(switch語句)

語法:

switch(表達式)
{
case值1:
執行代碼塊 1
break;
case值2:
執行代碼塊 2
break;
...
case值n:
執行代碼塊 n
break;
default:
與 case值1 、 case值2...case值n 不同時執行的代碼
}
語法說明:

Switch必須賦初始值,值與每個case值匹配。滿足執行該 case 后的所有語句,並用break語句來阻止運行下一個case。

28、for循環

for語句結構:

for(初始化變量;循環條件;循環迭代)
{
循環語句
}

29、while/do...while循環

while語句結構:

while(判斷條件)
{
循環語句
}

do...while語句結構:

do
{
循環語句
}
while(判斷條件)

30、定義函數

 

function 函數名( )
{
函數體;
}

31、有參數的函數

function 函數名(參數1,參數2)
{
函數代碼
}

32、返回值函數

function add2(x,y)
{
sum = x + y;
return sum; //返回函數值,return后面的值叫做返回值。
}

33、事件

  1. 鼠標單擊事件( onclick )
  2. 鼠標經過事件(onmouseover)
  3. 鼠標移開事件(onmouseout)
  4. 光標聚焦事件(onfocus)
  5. 失焦事件(onblur)
  6. 內容選中事件(onselect)
  7. 文本框內容改變事件(onchange)

34、加載事件(onload)

事件會在頁面加載完成后,立即發生,同時執行被調用的程序。
注意:1. 加載頁面時,觸發onload事件,事件寫在<body>標簽內。

2. 此節的加載頁面,可理解為打開一個新頁面時。
如下代碼,當加載一個新頁面時,彈出對話框“加載中,請稍等…”。

35、卸載事件(onunload)

當用戶退出頁面時(頁面關閉、頁面刷新等),觸發onUnload事件,同時執行被調用的程序。

注意:不同瀏覽器對onunload事件支持不同。

如下代碼,當退出頁面時,彈出對話框“您確定離開該網頁嗎?”。

 36、date對象

定義一個時間對象 :

var Udate=new Date(); 

注意:使用關鍵字new,Date()的首字母必須大寫。 

使 Udate 成為日期對象,並且已有初始值:當前時間(當前電腦系統時間)。

如果要自定義初始值,可以用以下方法:

var d = new Date(2012, 10, 1);  //2012年10月1日
var d = new Date('Oct 1, 2012'); //2012年10月1日

我們最好使用下面介紹的“方法”來嚴格定義時間。

訪問方法語法:“<日期對象>.<方法>”

Date對象中處理時間和日期的常用方法:

37、返回/設置年份方法

get/setFullYear() 返回/設置年份,用四位數表示。

var mydate=new Date();//當前時間2014年3月6日
document.write(mydate+"<br>");//輸出當前時間
document.write(mydate.getFullYear()+"<br>");//輸出當前年份
mydate.setFullYear(81); //設置年份
document.write(mydate+"<br>"); //輸出年份被設定為 0081年。
注意:不同瀏覽器, mydate.setFullYear(81)結果不同,年份被設定為 0081或81兩種情況。

結果:

Thu Mar 06 2014 10:57:47 GMT+0800
2014
Thu Mar 06 0081 10:57:47 GMT+0800
注意:

1.結果格式依次為:星期、月、日、年、時、分、秒、時區。(火狐瀏覽器)

2. 不同瀏覽器,時間格式有差異。

3.getDay() 返回星期,返回的是0-6的數字,0 表示星期天。

4.get/setTime() 返回/設置時間

38、String字符串

聲明:
var mystr = "I love JavaScript!"
定義mystr字符串后,我們就可以訪問它的屬性和方法。
獲得字符串長度:
var mystr="Hello World!";
var myl=mystr.length;
將字符串小寫字母轉換為大寫:
使用 String 對象的 toUpperCase() 方法來
var mystr="Hello world!";
var mynum=mystr.toUpperCase();

使用toLowerCase()方法,將字符串所有大寫字母都變成小寫的字符串。

39、返回指定位置的字符

語法:

stringObject.charAt(index)

參數說明:


注意:

1.字符串中第一個字符的下標是 0。最后一個字符的下標為字符串長度減一(string.length-1)。

2.如果參數 index 不在 0 與 string.length-1 之間,該方法將返回一個空字符串。

40、返回指定的字符串首次出現的位置

indexOf() 方法可返回某個指定的字符串值在字符串中首次出現的位置。

語法

stringObject.indexOf(substring, startpos)

參數說明:


說明:

1.該方法將從頭到尾地檢索字符串 stringObject,看它是否含有子串 substring。

2.可選參數,從stringObject的startpos位置開始查找substring,如果沒有此參數將從stringObject的開始位置查找。

3.如果找到一個 substring,則返回 substring 的第一次出現的位置。stringObject 中的字符位置是從 0 開始的。

注意:

1.indexOf() 方法區分大小寫。

2.如果要檢索的字符串值沒有出現,則該方法返回 -1。

41、字符串分割split()

知識講解:

split() 方法將字符串分割為字符串數組,並返回此數組。

語法:

stringObject.split(separator,limit)
limit返回數組的長度最大值

參數說明:

注意:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每個字符之間都會被分割。

使用指定符號分割字符串,代碼如下:

var mystr = "www.imooc.com";
document.write(mystr.split(".")+"<br>");
document.write(mystr.split(".", 2)+"<br>");

42、提取字符串substring()

語法:
stringObject.substring(startPos,stopPos)
注意:
1. 返回的內容是從 start開始(包含start位置的字符)到 stop-1 處的所有字符,其長度為 stop 減start。
2. 如果參數 start 與 stop 相等,那么該方法返回的就是一個空串(即長度為 0 的字符串)。
3. 如果 start 比 stop 大,那么該方法在提取子串之前會先交換這兩個參數。

43、提取指定數目的字符substr()

substr() 方法從字符串中提取從 startPos位置開始的指定數目的字符串。
語法:
stringObject.substr(startPos,length)
參數說明:

 

注意:如果參數startPos是負數,從字符串的尾部開始算起的位置。也就是說,-1 指字符串中最后一個字符,-2 指倒數第二個字符,以此類推。
如果startPos為負數且絕對值大於字符串長度,startPos為0。
使用 substr() 從字符串中提取一些字符,

44、Math對象

Math對象,提供對數據的數學計算。
使用 Math 的屬性和方法,代碼如下:
<script type="text/javascript">
var mypi=Math.PI;
var myabs=Math.abs(-15);
document.write(mypi);
document.write(myabs);
</script>
注意:Math 對象是一個固有的對象,無需創建它,直接把 Math 作為對象使用就可以調用其所有屬性和方法。這是它與Date,String對象的區別。

Math 對象屬性:

Math 對象方法:

45、向上取整ceil()

ceil() 方法可對一個數進行向上取整。
語法:
Math.ceil(x)
參數說明:
注意:它返回的是大於或等於x,並且與x最接近的整數。

46、向下取整floor()

floor() 方法可對一個數進行向下取整。

語法:

Math.floor(x)

47、四舍五入round()

round() 方法可把一個數字四舍五入為最接近的整數。

語法:

Math.round(x)

參數說明:

注意:

1. 返回與 x 最接近的整數。

2. 對於 0.5,該方法將進行上舍入。(5.5 將舍入為 6)

3. 如果 x 與兩側整數同等接近,則結果接近 +∞方向的數字值 。(如 -5.5 將舍入為 -5; -5.52 將舍入為 -6),如下圖:

 

48、隨機數 random()

random() 方法可返回介於 0 ~ 1(大於或等於 0 但小於 1 )之間的一個隨機數。

語法:

Math.random();

注意:返回一個大於或等於 0 但小於 1 的符號為正的數字值。

49、Array 數組對象

數組對象是一個對象的集合,里邊的對象可以是不同類型的。數組的每一個成員對象都有一個“下標”,用來表示它在數組中的位置,是從零開始的

數組定義的方法:

1. 定義了一個空數組:

var  數組名= new Array();

2. 定義時指定有n個空元素的數組:

var 數組名 =new Array(n);

3.定義數組的時候,直接初始化數據:

var  數組名 = [<元素1>, <元素2>, <元素3>...];

我們定義myArray數組,並賦值,代碼如下:

var myArray = [2, 8, 6]; 

說明:定義了一個數組 myArray,里邊的元素是:myArray[0] = 2; myArray[1] = 8; myArray[2] = 6。

數組元素使用:

數組名[下標] = 值;

注意: 數組的下標用方括號括起來,從0開始。

數組屬性:

length 用法:<數組對象>.length;返回:數組的長度,即數組里有多少個元素。它等於數組里最后一個元素的下標加一。

數組方法:

50、數組連接concat()

concat() 方法用於連接兩個或多個數組。此方法返回一個新數組,不改變原來的數組。
語法
arrayObject.concat(array1,array2,...,arrayN)
注意: 該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。

實例:

<script type="text/javascript">
  var mya1= new Array("hello!") var mya2= new Array("I","love"); var mya3= new Array("JavaScript","!"); var mya4=mya1.concat(mya2,mya3); document.write(mya4); </script>

51、指定分隔符連接數組元素join()

join()方法用於把數組中的所有元素放入一個字符串。元素是通過指定的分隔符進行分隔的。

語法:

arrayObject.join(分隔符)

參數說明:

注意:返回一個字符串,該字符串把數組中的各個元素串起來,用<分隔符>置於元素與元素之間。這個方法不影響數組原本的內容。

52、顛倒數組元素順序reverse()

reverse() 方法用於顛倒數組中元素的順序。

語法:

arrayObject.reverse()

注意:該方法會改變原來的數組,而不會創建新的數組。

53、選定元素slice()

slice() 方法可從已有的數組中返回選定的元素。

語法

arrayObject.slice(start,end)

參數說明:

1.返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。

2. 該方法並不會修改數組,而是返回一個子數組。

注意:

1. 可使用負值從數組的尾部選取元素。

2.如果 end 未被規定,那么 slice() 方法會選取從 start 到數組結尾的所有元素。

3. String.slice() 與 Array.slice() 相似。

54、數組排序sort()

sort()方法使數組中的元素按照一定的順序排列。

語法:

arrayObject.sort(方法函數)

參數說明:

1.如果不指定<方法函數>,則按unicode碼順序排列。

2.如果指定<方法函數>,則按<方法函數>所指定的排序方法排序。

myArray.sort(sortMethod);

注意: 該函數要比較兩個值,然后返回一個用於說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下: 

  若返回值<=-1,則表示 A 在排序后的序列中出現在 B 之前。
  若返回值>-1 && <1,則表示 A 和 B 具有相同的排序順序。
  若返回值>=1,則表示 A 在排序后的序列中出現在 B 之后。

1.使用sort()將數組進行排序,代碼如下:

<script type="text/javascript">
  var myarr1 = new Array("Hello","John","love","JavaScript"); 
  var myarr2 = new Array("80","16","50","6","100","1");
  document.write(myarr1.sort()+"<br>");
  document.write(myarr2.sort());
</script>

運行結果:

Hello,JavaScript,John,love
1,100,16,50,6,80

注意:上面的代碼沒有按照數值的大小對數字進行排序。

2.如要實現這一點,就必須使用一個排序函數,代碼如下:

<script type="text/javascript">
  function sortNum(a,b) {
  return a - b;
 //升序,如降序,把“a - b”該成“b - a”
}
 var myarr = new Array("80","16","50","6","100","1");
  document.write(myarr + "<br>");
  document.write(myarr.sort(sortNum));
</script>

運行結果:

80,16,50,6,100,1
1,6,16,50,80,100

55、JavaScript 計時器

在JavaScript中,我們可以在設定的時間間隔之后來執行代碼,而不是在函數被調用后立即執行。
計時器類型:
一次性計時器:僅在指定的延遲時間之后觸發一次。
間隔性觸發計時器:每隔一定的時間間隔就觸發一次。
計時器方法:

56、計時器setInterval()

在執行時,從載入頁面后每隔指定的時間執行代碼。

語法:

setInterval(代碼,交互時間);

參數說明:

1. 代碼:要調用的函數或要執行的代碼串。

2. 交互時間:周期性執行或調用表達式之間的時間間隔,以毫秒計(1s=1000ms)。

返回值:

一個可以傳遞給 clearInterval() 從而取消對"代碼"的周期性執行的值。

調用函數格式(假設有一個clock()函數):

setInterval("clock()",1000)
或
setInterval(clock,1000)

57、計時器setTimeout()

setTimeout()計時器,在載入后延遲指定時間后,去執行一次表達式,僅執行一次。

語法:

setTimeout(代碼,延遲時間);

參數說明:

1. 要調用的函數或要執行的代碼串。
2. 延時時間:在執行代碼前需等待的時間,以毫秒為單位(1s=1000ms)。

當我們打開網頁3秒后,在彈出一個提示框,代碼如下:

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
  setTimeout("alert('Hello!')", 3000 );
</script>
</head>
<body>
</body>
</html>

當按鈕start被點擊時,setTimeout()調用函數

58、取消計時器clearTimeout()

setTimeout()和clearTimeout()一起使用,停止計時器。

語法:

clearTimeout(id_of_setTimeout)

參數說明:
id_of_setTimeout:由 setTimeout() 返回的 ID 值。該值標識要取消的延遲執行代碼塊。

59、History 對象

history對象記錄了用戶曾經瀏覽過的頁面(URL),並可以實現瀏覽器前進與后退相似導航的功能。

注意:從窗口被打開的那一刻開始記錄,每個瀏覽器窗口、每個標簽頁乃至每個框架,都有自己的history對象與特定的window對象關聯。

語法:

window.history.[屬性|方法]

注意:window可以省略。

History 對象屬性

History 對象方法

使用length屬性,當前窗口的瀏覽歷史總長度,代碼如下:

<script type="text/javascript">
  var HL = window.history.length;
  document.write(HL);
</script>

 60、返回瀏覽歷史中的其他頁面

go()方法,根據當前所處的頁面,加載 history 列表中的某個具體的頁面。

語法:

window.history.go(number);

參數:

瀏覽器中,返回當前頁面之前瀏覽過的第二個歷史頁面,代碼如下:

window.history.go(-2);

注意:和在瀏覽器中單擊兩次后退按鈕操作一樣。

同理,返回當前頁面之后瀏覽過的第三個歷史頁面,代碼如下:

window.history.go(3);

61、Location對象

location用於獲取或設置窗體的URL,並且可以用於解析URL。

語法:

location.[屬性|方法]

location對象屬性圖示:

location 對象屬性:

location 對象方法:

62、Navigator對象

Navigator 對象包含有關瀏覽器的信息,通常用於檢測瀏覽器與操作系統的版本。

對象屬性:

查看瀏覽器的名稱和版本,代碼如下:

<script type="text/javascript">
   var browser=navigator.appName;
   var b_version=navigator.appVersion;
   document.write("Browser name"+browser);
   document.write("<br>");
   document.write("Browser version"+b_version);
</script>

63、userAgent

返回用戶代理頭的字符串表示(就是包括瀏覽器版本信息等的字符串)

語法

navigator.userAgent

幾種瀏覽的user_agent.,像360的兼容模式用的是IE、極速模式用的是chrom的內核。

使用userAgent判斷使用的是什么瀏覽器(假設使用的是IE8瀏覽器),代碼如下:

function validB(){ 
  var u_agent = navigator.userAgent; 
  var B_name="Failed to identify the browser"; 
  if(u_agent.indexOf("Firefox")>-1){ 
      B_name="Firefox"; 
  }else if(u_agent.indexOf("Chrome")>-1){ 
      B_name="Chrome"; 
  }else if(u_agent.indexOf("MSIE")>-1&&u_agent.indexOf("Trident")>-1){ 
      B_name="IE(8-10)";  
  }
    document.write("B_name:"+B_name+"<br>");
    document.write("u_agent:"+u_agent+"<br>"); 
} 

64、screen對象

screen對象用於獲取用戶的屏幕信息。

語法:

window.screen.屬性

對象屬性:

65、屏幕分辨率的高和寬

window.screen 對象包含有關用戶屏幕的信息。
1. screen.height 返回屏幕分辨率的高
2. screen.width 返回屏幕分辨率的寬
注意:
1.單位以像素計。
2. window.screen 對象在編寫時可以不使用 window 這個前綴。
我們來獲取屏幕的高和寬,代碼如下:

<script type="text/javascript">
  document.write( "屏幕寬度:"+screen.width+"px<br />" );
  document.write( "屏幕高度:"+screen.height+"px<br />" );
</script>

 

66、屏幕可用高和寬度

1. screen.availWidth 屬性返回訪問者屏幕的寬度,以像素計,減去界面特性,比如任務欄。

2. screen.availHeight 屬性返回訪問者屏幕的高度,以像素計,減去界面特性,比如任務欄。

注意:

不同系統的任務欄默認高度不一樣,及任務欄的位置可在屏幕上下左右任何位置,所以有可能可用寬度和高度不一樣。

我們來獲取屏幕的可用高和寬度,代碼如下:

<script type="text/javascript">
document.write("可用寬度:" + screen.availWidth);
document.write("可用高度:" + screen.availHeight);
</script>

注意:根據屏幕的不同顯示值不同。

<a href="javascript:goback();">返回</a>
href中:通過javascript:加方法名,可以形成后面超鏈接顯示文本,不要忘了冒號
innerHTML向所在標簽進行文本替換

67、getElementsByName()方法

返回帶有指定名稱的節點對象的集合。

語法:

document.getElementsByName(name)

與getElementById() 方法不同的是,通過元素的 name 屬性查詢元素,而不是通過 id 屬性。

注意:

1. 因為文檔中的 name 屬性可能不唯一,所有 getElementsByName() 方法返回的是元素的數組,而不是一個元素。

2. 和數組類似也有length屬性,可以和訪問數組一樣的方法來訪問,從0開始。

68、getElementsByTagName()方法

返回帶有指定標簽名的節點對象的集合。返回元素的順序是它們在文檔中的順序。

語法:

document.getElementsByTagName(Tagname)

說明:

1. Tagname是標簽的名稱,如p、a、img等標簽名。

2. 和數組類似也有length屬性,可以和訪問數組一樣的方法來訪問,所以從0開始。

69、getElementsByTagName()方法

返回帶有指定標簽名的節點對象的集合。返回元素的順序是它們在文檔中的順序。

語法:

document.getElementsByTagName(Tagname)

說明:

1. Tagname是標簽的名稱,如p、a、img等標簽名。

2. 和數組類似也有length屬性,可以和訪問數組一樣的方法來訪問,所以從0開始。

70、區別getElementByID,getElementsByName,getElementsByTagName

以人來舉例說明,人有能標識身份的身份證,有姓名,有類別(大人、小孩、老人)等。

1. ID 是一個人的身份證號碼,是唯一的。所以通過getElementById獲取的是指定的一個人。

2. Name 是他的名字,可以重復。所以通過getElementsByName獲取名字相同的人集合。

3. TagName可看似某類,getElementsByTagName獲取相同類的人集合。如獲取小孩這類人,getElementsByTagName("小孩")。

把上面的例子轉換到HTML中,如下:

<input type="checkbox" name="hobby" id="hobby1">  音樂

input標簽就像人的類別。

name屬性就像人的姓名。

id屬性就像人的身份證。

方法總結如下:

注意:方法區分大小寫

71、getAttribute()方法

通過元素節點的屬性名稱獲取屬性的值。

語法:

elementNode.getAttribute(name)

說明:

1. elementNode:使用getElementById()、getElementsByTagName()等方法,獲取到的元素節點。

2. name:要想查詢的元素節點的屬性名字

72、setAttribute()方法

setAttribute() 方法增加一個指定名稱和值的新屬性,或者把一個現有的屬性設定為指定的值。

語法:

elementNode.setAttribute(name,value)

說明:

1.name: 要設置的屬性名。

2.value: 要設置的屬性值。

注意:

1.把指定的屬性設置為指定的值。如果不存在具有指定名稱的屬性,該方法將創建一個新屬性。

2.類似於getAttribute()方法,setAttribute()方法只能通過元素節點對象調用的函數。

73、節點屬性

在文檔對象模型 (DOM) 中,每個節點都是一個對象。DOM 節點有三個重要的屬性 :

1. nodeName : 節點的名稱

2. nodeValue :節點的值

3. nodeType :節點的類型

一、nodeName 屬性: 節點的名稱,是只讀的。

1. 元素節點的 nodeName 與標簽名相同
2. 屬性節點的 nodeName 是屬性的名稱
3. 文本節點的 nodeName 永遠是 #text
4. 文檔節點的 nodeName 永遠是 #document

二、nodeValue 屬性:節點的值

1. 元素節點的 nodeValue 是 undefined 或 null
2. 文本節點的 nodeValue 是文本自身
3. 屬性節點的 nodeValue 是屬性的值

三、nodeType 屬性: 節點的類型,是只讀的。以下常用的幾種結點類型:

元素類型    節點類型
  元素          1
  屬性          2
  文本          3
  注釋          8
  文檔          9

74、訪問子節點childNodes

訪問選定元素節點下的所有子節點的列表,返回的值可以看作是一個數組,他具有length屬性。

語法:

elementNode.childNodes

注意:

如果選定的節點沒有子節點,則該屬性返回不包含節點的 NodeList。

75、訪問子節點的第一和最后項

一、firstChild 屬性返回‘childNodes’數組的第一個子節點。如果選定的節點沒有子節點,則該屬性返回 NULL。

語法:

node.firstChild

說明:與elementNode.childNodes[0]是同樣的效果。 

二、 lastChild 屬性返回‘childNodes’數組的最后一個子節點。如果選定的節點沒有子節點,則該屬性返回 NULL。

語法:

node.lastChild

說明:與elementNode.childNodes[elementNode.childNodes.length-1]是同樣的效果。 

注意: 上一節中,我們知道Internet Explorer 會忽略節點之間生成的空白文本節點,而其它瀏覽器不會。我們可以通過檢測節點類型,過濾子節點。 (以后章節講解)

 76、訪問父節點parentNode

獲取指定節點的父節點

語法:

elementNode.parentNode

注意:父節點只能有一個。

看看下面的例子,獲取 P 節點的父節點,代碼如下:

<div id="text">
  <p id="con"> parentNode 獲取指點節點的父節點</p>
</div> 
<script type="text/javascript">
  var mynode= document.getElementById("con");
  document.write(mynode.parentNode.nodeName);
</script>

運行結果:

parentNode 獲取指點節點的父節點
DIV

訪問祖節點:

elementNode.parentNode.parentNode

看看下面的代碼:

<div id="text">  
  <p>
    parentNode      
    <span id="con"> 獲取指點節點的父節點</span>
  </p>
</div> 
<script type="text/javascript">
  var mynode= document.getElementById("con");
  document.write(mynode.parentNode.parentNode.nodeName);
</script>

運行結果:

parentNode獲取指點節點的父節點
DIV

注意: 瀏覽器兼容問題,chrome、firefox等瀏覽器標簽之間的空白也算是一個文本節點。

77、訪問兄弟節點

1. nextSibling 屬性可返回某個節點之后緊跟的節點(處於同一樹層級中)。

語法:

nodeObject.nextSibling

說明:如果無此節點,則該屬性返回 null。

2. previousSibling 屬性可返回某個節點之前緊跟的節點(處於同一樹層級中)。

語法:

nodeObject.previousSibling  

說明:如果無此節點,則該屬性返回 null。

注意: 兩個屬性獲取的是節點。Internet Explorer 會忽略節點間生成的空白文本節點(例如,換行符號),而其它瀏覽器不會忽略。

78、插入節點appendChild()

在指定節點的最后一個子節點列表之后添加一個新的子節點。

語法:

appendChild(newnode)

參數:

newnode:指定追加的節點。

我們來看看,div標簽內創建一個新的 P 標簽,代碼如下:

 

79、插入節點insertBefore()

insertBefore() 方法可在已有的子節點前插入一個新的子節點。

語法:

insertBefore(newnode,node);

參數:

newnode: 要插入的新節點。

node: 指定此節點前插入節點。

我們在來看看下面代碼,在指定節點前插入節點。

80、刪除節點removeChild()

 

removeChild() 方法從子節點列表中刪除某個節點。如刪除成功,此方法可返回被刪除的節點,如失敗,則返回 NULL。

語法:

nodeObject.removeChild(node)

參數:

node :必需,指定需要刪除的節點。

我們來看看下面代碼,刪除子點。

 

81、替換元素節點replaceChild()

replaceChild 實現子節點(對象)的替換。返回被替換對象的引用。 

語法:

node.replaceChild (newnode,oldnew ) 

參數:

newnode : 必需,用於替換 oldnew 的對象。 
oldnew : 必需,被 newnode 替換的對象。

我們來看看下面的代碼:

 

效果: 將文檔中的 Java 改為 JavaScript。

注意: 

1. 當 oldnode 被替換時,所有與之相關的屬性內容都將被移除。 

2. newnode 必須先被建立。 

82、創建元素節點createElement

createElement()方法可創建元素節點。此方法可返回一個 Element 對象。

語法:

document.createElement(tagName)

參數:

tagName:字符串值,這個字符串用來指明創建元素的類型。

注意:要與appendChild() 或 insertBefore()方法聯合使用,將元素顯示在頁面中。

83、創建文本節點createTextNode

createTextNode() 方法創建新的文本節點,返回新創建的 Text 節點。

語法:

document.createTextNode(data)

參數:

data : 字符串值,可規定此節點的文本。

我們來創建一個<div>元素並向其中添加一條消息,代碼如下:

84、瀏覽器窗口可視區域大小

獲得瀏覽器窗口的尺寸(瀏覽器的視口,不包括工具欄和滾動條)的方法:

一、對於IE9+、Chrome、Firefox、Opera 以及 Safari:

•  window.innerHeight - 瀏覽器窗口的內部高度

•  window.innerWidth - 瀏覽器窗口的內部寬度

二、對於 Internet Explorer 8、7、6、5:

•  document.documentElement.clientHeight表示HTML文檔所在窗口的當前高度。

•  document.documentElement.clientWidth表示HTML文檔所在窗口的當前寬度。

或者

Document對象的body屬性對應HTML文檔的<body>標簽

•  document.body.clientHeight

•  document.body.clientWidth

在不同瀏覽器都實用的 JavaScript 方案:

var w= document.documentElement.clientWidth
      || document.body.clientWidth;
var h= document.documentElement.clientHeight
      || document.body.clientHeight;

85、網頁尺寸scrollHeight

scrollHeight和scrollWidth,獲取網頁內容高度和寬度。

一、針對IE、Opera:

scrollHeight 是網頁內容實際高度,可以小於 clientHeight。

二、針對NS、FF:

scrollHeight 是網頁內容高度,不過最小值是 clientHeight。也就是說網頁內容實際高度小於 clientHeight 時,scrollHeight 返回 clientHeight 。

三、瀏覽器兼容性

var w=document.documentElement.scrollWidth
   || document.body.scrollWidth;
var h=document.documentElement.scrollHeight
   || document.body.scrollHeight;

注意:區分大小寫

scrollHeight和scrollWidth還可獲取Dom元素中內容實際占用的高度和寬度。

86、網頁尺寸offsetHeight

offsetHeight和offsetWidth,獲取網頁內容高度和寬度(包括滾動條等邊線,會隨窗口的顯示大小改變)。

一、值

offsetHeight = clientHeight + 滾動條 + 邊框。

二、瀏覽器兼容性

var w= document.documentElement.offsetWidth
    || document.body.offsetWidth;
var h= document.documentElement.offsetHeight
    || document.body.offsetHeight;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM