史上最全的javascript知識點總結,淺顯易懂。
阿新 • • 發佈:2018-12-30
一,認識javascript
1-1
為什麼學習JavaScript
一)、你知道,為什麼JavaScript非常值得我們學習嗎?
1. 所有主流瀏覽器都支援JavaScript。
2. 目前,全世界大部分網頁都使用JavaScript。
3. 它可以讓網頁呈現各種動態效果。
4. 做為一個Web開發師,如果你想提供漂亮的網頁、令使用者滿意的上網體驗,JavaScript是必不可少的工具。
二)、易學性
1.學習環境無外不在,只要有文字編輯器,就能編寫JavaScript程式。
2.我們可以用簡單命令,完成一些基本操作。
1-2
引用JS外部檔案
通過前面知識學習,我們知道使用<script type="text/javascript">標籤在HTML檔案中新增JavaScript程式碼
我們也可以把HTML檔案和JS程式碼分開,並單獨建立一個JavaScript檔案(簡稱JS檔案),其檔案字尾通常為.js,然後將JS程式碼直接寫在JS檔案中。
注意:在JS檔案中,不需要<script>標籤,直接編寫JavaScript程式碼就可以了。
JS檔案不能直接執行,需嵌入到HTML檔案中執行,我們需在HTML中新增如下程式碼,就可將JS檔案嵌入HTML檔案中。
<script src="script.js"></script>
1-3
JS的位置
我們可以將JavaScript程式碼放在html檔案中任何位置,但是我們一般放在網頁的head或者body部分。
放在<head>部分
最常用的方式是在頁面中head部分放置<script>元素,瀏覽器解析head部分就會執行這個程式碼,然後才解析頁面的其餘部分。
放在<body>部分
JavaScript程式碼在網頁讀取到該語句的時候就會執行。
注意: javascript作為一種指令碼語言可以放在html頁面中任何位置,但是瀏覽器解釋html時是按先後順序的,所以前面的script就先被執行。比如進行頁面顯示初始化的js必須放在head裡面,因為初始化都要求提前進行(如給頁面body設定css等);而如果是通過事件呼叫執行的function那麼對位置沒什麼要求的。
1-4
js語句和符號
JavaScript語句是發給瀏覽器的命令。這些命令的作用是告訴瀏覽器要做的事情。
每一句JavaScript程式碼格式:
語句;
先來看看下面程式碼
<script type="text/javascript">
alert("hello!");
</script>
例子中的alert("hello!");就是一個JavaScript語句。
一行的結束就被認定為語句的結束,通常在結尾加上一個分號";"來表示語句的結束。
注意:
1. “;”分號要在英文狀態下輸入,同樣,JS中的程式碼和符號都要在英文狀態下輸入。
2. 雖然分號“;”也可以不寫,但我們要養成程式設計的好習慣,記得在語句末尾寫上分號。
1-5
註釋很重要,和Java一樣。
註釋的作用是提高程式碼的可讀性,幫助自己和別人閱讀和理解你所編寫的JavaScript程式碼,註釋的內容不會在網頁中顯示。註釋可分為單行註釋與多行註釋兩種。
我們為了方便閱讀,註釋內容一般放到需要解釋語句的結尾處或周圍。
單行註釋,在註釋內容前加符號 “//”。
<script type="text/javascript">
document.write("單行註釋使用'//'"); // 我是註釋,該語句功能在網頁中輸出內容
</script>
多行註釋以"/*"開始,以"*/"結束。
<script type="text/javascript">
document.write("多行註釋使用/*註釋內容*/");
/*
多行註釋
養成書寫註釋的良好習慣
*/
1-6
變數
從字面上看,變數是可變的量;從程式設計角度講,變數是用於儲存某種/某些數值的儲存器。我們可以把變數看做一個盒子,為了區分盒子,可以用BOX1,BOX2等名稱代表不同盒子,BOX1就是盒子的名字(也就是變數的名字)。
定義變數使用關鍵字var,
語法如下:
var 變數名
變數名可以任意取名,但要遵循命名規則:
1.變數名必須使用字母或者下劃線(_)開始。
2.變數名必須使用英文字母、數字、下劃線(_)組成。
3.變數名不能使用JavaScript關鍵詞與JavaScript保留字。
變數要先宣告再賦值,如下:
var mychar;
mychar="javascript";
變數可以重複賦值,如下:
var mychar;
mychar="javascript";
mychar="hello";
注意:
1. 在JS中區分大小寫,如變數mychar與myChar是不一樣的,表示是兩個變數。
2. 變數雖然也可以不宣告,直接使用,但不規範,需要先宣告,後使用。
1-7
函式
函式是完成某個特定功能的一組語句。如沒有函式,完成任務可能需要五行、十行、甚至更多的程式碼。這時我們就可以把完成特定功能的程式碼塊放到一個函式裡,直接呼叫這個函式,就省重複輸入大量程式碼的麻煩。
如何定義一個函式呢?基本語法如下:
function 函式名()
{
函式程式碼;
}
說明:
1. function定義函式的關鍵字。
2. "函式名"你為函式取的名字。
3. "函式程式碼"替換為完成特定功能的程式碼。
我們來編寫一個實現兩數相加的簡單函式,並給函式起個有意義的名字:“add2”,程式碼如下:
function add2(){
var sum = 3 + 2;
alert(sum);
}
二,js的互動
1-1
1,輸出內容(document.write)
2,警告(alert 訊息對話方塊)
我們在訪問網站的時候,有時會突然彈出一個小視窗,上面寫著一段提示資訊文字。如果你不點選“確定”,就不能對網頁做任何操作,這個小視窗就是使用alert實現的。
語法:
alert(字串或變數);
3,確認(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>
注: 訊息對話方塊是排它的,即使用者在點選對話方塊按鈕前,不能進行任何其它操作。
4,提問(prompt 訊息對話方塊)
prompt彈出訊息對話方塊,通常用於詢問一些需要與使用者互動的資訊。彈出訊息對話方塊(包含一個確定按鈕、取消按鈕與一個文字輸入框)。
語法:
prompt(str1, str2);
引數說明:
str1: 要顯示在訊息對話方塊中的文字,不可修改
str2:文字框中的內容,可以修改。(但是寫程式碼時不用寫str2,寫的話就是文字框中的預設內容)
返回值:
1. 點選確定按鈕,文字框中的內容將作為函式返回值
2. 點選取消按鈕,將返回null
看看下面程式碼:
var myname=prompt("請輸入你的姓名:");
if(myname!=null)
{ alert("你好"+myname); }
else
{ alert("你好 my friend."); }
5,開啟新視窗(window.open)
open() 方法用於開啟一個新的視窗。
語法:
window.open(<URL>, <視窗名稱>, <引數字串>)
引數說明:
URL:開啟視窗的網址或路徑。
視窗名稱:被開啟視窗的名稱。
可以是"_top"、"_blank"、"_selft"等。
引數字串:設定視窗引數,各引數用逗號隔開。
引數表:
例如:開啟http://www.imooc.com網站,大小為300px * 200px,無選單,無工具欄,無狀態列,有滾動條視窗:
<script type="text/javascript">
window.open('http://www.imooc.com','_blank','width=300,height=200,menubar=no,toolbar=no, status=no,scrollbars=yes')
</script>
注意:
a.引數之間逗號及等號前後有空格,該字串無效,只有刪除空格才能正常執行。
b.執行結果考慮瀏覽器相容問題。
二,DOM操作
2-1認識DOM
文件物件模型DOM(Document Object Model)定義訪問和處理HTML文件的標準方法。DOM 將HTML文件呈現為帶有元素、屬性和文字的樹結構(節點樹)。
先來看看下面程式碼:
<a href="http://www.imooc.com">JavaScript DOM</a>
HTML文件可以說由節點構成的集合,三種常見的DOM節點:
1. 元素節點:上面的<a>等都是元素節點,即標籤。
2. 文字節點:向用戶展示的內容,如上面的的JavaScript DOM等文字內容。
3. 屬性節點:元素屬性,如<a>標籤的連結屬性href="http://www.imooc.com"。
2-2
通過ID獲取元素
學過HTML/CSS樣式,都知道,網頁由標籤將資訊組織起來,而標籤的id屬性值是唯一的,就像是每人有一個身份證號一樣,只要通過身份證號就可以找到相對應的人。那麼在網頁中,我們通過id先找到標籤,然後進行操作。
語法:
document.getElementById(“id”)
2-3
innerHTML 屬性
innerHTML 屬性用於獲取或替換 HTML 元素的內容。
語法:
Object.innerHTML
注意:
1.Object是獲取的元素物件,如通過document.getElementById("ID")獲取的元素。
2.注意書寫,innerHTML區分大小寫。
我們通過id="con"獲取<p> 元素,並將元素的內容輸出和改變元素內容,程式碼如下:
<script type="text/javascript">
var mychar=document.getElementById("con");
document.write("原標題:"+mychar.innerHTML+"<br>");//輸出原h2標籤內容
mychar.innerHTML="修改後的內容"
document.write("修改後的標題:"+mychar.innerHTML); //輸出修改後h2標籤內容
</script>
2-4
改變 HTML 樣式
HTML DOM 允許 JavaScript 改變 HTML 元素的樣式。如何改變 HTML 元素的樣式呢?
語法:
Object.style.property=new style;
注意:Object是獲取的元素物件,如通過document.getElementById("id")獲取的元素。
注意:該表只是一小部分CSS樣式屬性,其它樣式也可以通過該方法設定和修改。
看看下面的程式碼:
改變 <p> 元素的樣式,將顏色改為紅色,字號改為20,背景顏色改為藍:
<p id="pcon">Hello World!</p>
<script>
var mychar = document.getElementById("pcon");
mychar.style.color="red";
mychar.style.fontSize="20";
mychar.style.backgroundColor ="blue";
</script>
2-5
顯示和隱藏(display屬性)
網頁中經常會看到顯示和隱藏的效果,可通過display屬性來設定。
語法:
Object.style.display = value
注意:Object是獲取的元素物件,如通過document.getElementById("id")獲取的元素。
value取值:
none:隱藏內容
block:顯示內容。
2-6
控制類名(className 屬性)
className 屬性設定或返回元素的class 屬性。
語法:
object.className = classname
作用:
1.獲取元素的class 屬性
2. 為網頁內的某個元素指定一個css樣式來更改該元素的外觀
<style>
body{ font-size:16px;}
.one{
border:1px solid #eee;
width:230px;
height:50px;
background:#ccc;
color:red;
}
.two{
border:1px solid #ccc;
width:230px;
height:50px;
background:#9CF;
color:blue;
}
</style>
</head>
<body>
<p id="p1" > 要新增樣式的內容</p>
<input type="button" value="新增樣式" onclick="add()"/>
<p id="p2" class="one">要更改樣式的內容</p>
<input type="button" value="更改外觀" onclick="modify()"/>
<script type="text/javascript">
var mychar=document.getElementById("p2");
document.write("p2元素class值為:"+mychar.className)
function add(){
var p1 = document.getElementById("p1");
p1.className="one";
}
function modify(){
var p2 = document.getElementById("p2");
p2.className="two";
}
</script>
</body>
1-1
為什麼學習JavaScript
一)、你知道,為什麼JavaScript非常值得我們學習嗎?
1. 所有主流瀏覽器都支援JavaScript。
2. 目前,全世界大部分網頁都使用JavaScript。
3. 它可以讓網頁呈現各種動態效果。
4. 做為一個Web開發師,如果你想提供漂亮的網頁、令使用者滿意的上網體驗,JavaScript是必不可少的工具。
二)、易學性
1.學習環境無外不在,只要有文字編輯器,就能編寫JavaScript程式。
2.我們可以用簡單命令,完成一些基本操作。
1-2
引用JS外部檔案
通過前面知識學習,我們知道使用<script type="text/javascript">標籤在HTML檔案中新增JavaScript程式碼
我們也可以把HTML檔案和JS程式碼分開,並單獨建立一個JavaScript檔案(簡稱JS檔案),其檔案字尾通常為.js,然後將JS程式碼直接寫在JS檔案中。
注意:在JS檔案中,不需要<script>標籤,直接編寫JavaScript程式碼就可以了。
JS檔案不能直接執行,需嵌入到HTML檔案中執行,我們需在HTML中新增如下程式碼,就可將JS檔案嵌入HTML檔案中。
<script src="script.js"></script>
1-3
JS的位置
我們可以將JavaScript程式碼放在html檔案中任何位置,但是我們一般放在網頁的head或者body部分。
放在<head>部分
最常用的方式是在頁面中head部分放置<script>元素,瀏覽器解析head部分就會執行這個程式碼,然後才解析頁面的其餘部分。
放在<body>部分
JavaScript程式碼在網頁讀取到該語句的時候就會執行。
注意: javascript作為一種指令碼語言可以放在html頁面中任何位置,但是瀏覽器解釋html時是按先後順序的,所以前面的script就先被執行。比如進行頁面顯示初始化的js必須放在head裡面,因為初始化都要求提前進行(如給頁面body設定css等);而如果是通過事件呼叫執行的function那麼對位置沒什麼要求的。
1-4
js語句和符號
JavaScript語句是發給瀏覽器的命令。這些命令的作用是告訴瀏覽器要做的事情。
每一句JavaScript程式碼格式:
語句;
先來看看下面程式碼
<script type="text/javascript">
alert("hello!");
</script>
例子中的alert("hello!");就是一個JavaScript語句。
一行的結束就被認定為語句的結束,通常在結尾加上一個分號";"來表示語句的結束。
注意:
1. “;”分號要在英文狀態下輸入,同樣,JS中的程式碼和符號都要在英文狀態下輸入。
2. 雖然分號“;”也可以不寫,但我們要養成程式設計的好習慣,記得在語句末尾寫上分號。
1-5
註釋很重要,和Java一樣。
註釋的作用是提高程式碼的可讀性,幫助自己和別人閱讀和理解你所編寫的JavaScript程式碼,註釋的內容不會在網頁中顯示。註釋可分為單行註釋與多行註釋兩種。
我們為了方便閱讀,註釋內容一般放到需要解釋語句的結尾處或周圍。
單行註釋,在註釋內容前加符號 “//”。
<script type="text/javascript">
document.write("單行註釋使用'//'"); // 我是註釋,該語句功能在網頁中輸出內容
</script>
多行註釋以"/*"開始,以"*/"結束。
<script type="text/javascript">
document.write("多行註釋使用/*註釋內容*/");
/*
多行註釋
養成書寫註釋的良好習慣
*/
1-6
變數
從字面上看,變數是可變的量;從程式設計角度講,變數是用於儲存某種/某些數值的儲存器。我們可以把變數看做一個盒子,為了區分盒子,可以用BOX1,BOX2等名稱代表不同盒子,BOX1就是盒子的名字(也就是變數的名字)。
定義變數使用關鍵字var,
語法如下:
var 變數名
變數名可以任意取名,但要遵循命名規則:
1.變數名必須使用字母或者下劃線(_)開始。
2.變數名必須使用英文字母、數字、下劃線(_)組成。
3.變數名不能使用JavaScript關鍵詞與JavaScript保留字。
變數要先宣告再賦值,如下:
var mychar;
mychar="javascript";
變數可以重複賦值,如下:
var mychar;
mychar="javascript";
mychar="hello";
注意:
1. 在JS中區分大小寫,如變數mychar與myChar是不一樣的,表示是兩個變數。
2. 變數雖然也可以不宣告,直接使用,但不規範,需要先宣告,後使用。
1-7
函式
函式是完成某個特定功能的一組語句。如沒有函式,完成任務可能需要五行、十行、甚至更多的程式碼。這時我們就可以把完成特定功能的程式碼塊放到一個函式裡,直接呼叫這個函式,就省重複輸入大量程式碼的麻煩。
如何定義一個函式呢?基本語法如下:
function 函式名()
{
函式程式碼;
}
說明:
1. function定義函式的關鍵字。
2. "函式名"你為函式取的名字。
3. "函式程式碼"替換為完成特定功能的程式碼。
我們來編寫一個實現兩數相加的簡單函式,並給函式起個有意義的名字:“add2”,程式碼如下:
function add2(){
var sum = 3 + 2;
alert(sum);
}
二,js的互動
1-1
1,輸出內容(document.write)
2,警告(alert 訊息對話方塊)
我們在訪問網站的時候,有時會突然彈出一個小視窗,上面寫著一段提示資訊文字。如果你不點選“確定”,就不能對網頁做任何操作,這個小視窗就是使用alert實現的。
語法:
alert(字串或變數);
3,確認(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>
注: 訊息對話方塊是排它的,即使用者在點選對話方塊按鈕前,不能進行任何其它操作。
4,提問(prompt 訊息對話方塊)
prompt彈出訊息對話方塊,通常用於詢問一些需要與使用者互動的資訊。彈出訊息對話方塊(包含一個確定按鈕、取消按鈕與一個文字輸入框)。
語法:
prompt(str1, str2);
引數說明:
str1: 要顯示在訊息對話方塊中的文字,不可修改
str2:文字框中的內容,可以修改。(但是寫程式碼時不用寫str2,寫的話就是文字框中的預設內容)
返回值:
1. 點選確定按鈕,文字框中的內容將作為函式返回值
2. 點選取消按鈕,將返回null
看看下面程式碼:
var myname=prompt("請輸入你的姓名:");
if(myname!=null)
{ alert("你好"+myname); }
else
{ alert("你好 my friend."); }
5,開啟新視窗(window.open)
open() 方法用於開啟一個新的視窗。
語法:
window.open(<URL>, <視窗名稱>, <引數字串>)
引數說明:
URL:開啟視窗的網址或路徑。
視窗名稱:被開啟視窗的名稱。
可以是"_top"、"_blank"、"_selft"等。
引數字串:設定視窗引數,各引數用逗號隔開。
引數表:
例如:開啟http://www.imooc.com網站,大小為300px * 200px,無選單,無工具欄,無狀態列,有滾動條視窗:
<script type="text/javascript">
window.open('http://www.imooc.com','_blank','width=300,height=200,menubar=no,toolbar=no, status=no,scrollbars=yes')
</script>
注意:
a.引數之間逗號及等號前後有空格,該字串無效,只有刪除空格才能正常執行。
b.執行結果考慮瀏覽器相容問題。
二,DOM操作
2-1認識DOM
文件物件模型DOM(Document Object Model)定義訪問和處理HTML文件的標準方法。DOM 將HTML文件呈現為帶有元素、屬性和文字的樹結構(節點樹)。
先來看看下面程式碼:
<a href="http://www.imooc.com">JavaScript DOM</a>
HTML文件可以說由節點構成的集合,三種常見的DOM節點:
1. 元素節點:上面的<a>等都是元素節點,即標籤。
2. 文字節點:向用戶展示的內容,如上面的的JavaScript DOM等文字內容。
3. 屬性節點:元素屬性,如<a>標籤的連結屬性href="http://www.imooc.com"。
2-2
通過ID獲取元素
學過HTML/CSS樣式,都知道,網頁由標籤將資訊組織起來,而標籤的id屬性值是唯一的,就像是每人有一個身份證號一樣,只要通過身份證號就可以找到相對應的人。那麼在網頁中,我們通過id先找到標籤,然後進行操作。
語法:
document.getElementById(“id”)
2-3
innerHTML 屬性
innerHTML 屬性用於獲取或替換 HTML 元素的內容。
語法:
Object.innerHTML
注意:
1.Object是獲取的元素物件,如通過document.getElementById("ID")獲取的元素。
2.注意書寫,innerHTML區分大小寫。
我們通過id="con"獲取<p> 元素,並將元素的內容輸出和改變元素內容,程式碼如下:
<script type="text/javascript">
var mychar=document.getElementById("con");
document.write("原標題:"+mychar.innerHTML+"<br>");//輸出原h2標籤內容
mychar.innerHTML="修改後的內容"
document.write("修改後的標題:"+mychar.innerHTML); //輸出修改後h2標籤內容
</script>
2-4
改變 HTML 樣式
HTML DOM 允許 JavaScript 改變 HTML 元素的樣式。如何改變 HTML 元素的樣式呢?
語法:
Object.style.property=new style;
注意:Object是獲取的元素物件,如通過document.getElementById("id")獲取的元素。
注意:該表只是一小部分CSS樣式屬性,其它樣式也可以通過該方法設定和修改。
看看下面的程式碼:
改變 <p> 元素的樣式,將顏色改為紅色,字號改為20,背景顏色改為藍:
<p id="pcon">Hello World!</p>
<script>
var mychar = document.getElementById("pcon");
mychar.style.color="red";
mychar.style.fontSize="20";
mychar.style.backgroundColor ="blue";
</script>
2-5
顯示和隱藏(display屬性)
網頁中經常會看到顯示和隱藏的效果,可通過display屬性來設定。
語法:
Object.style.display = value
注意:Object是獲取的元素物件,如通過document.getElementById("id")獲取的元素。
value取值:
none:隱藏內容
block:顯示內容。
2-6
控制類名(className 屬性)
className 屬性設定或返回元素的class 屬性。
語法:
object.className = classname
作用:
1.獲取元素的class 屬性
2. 為網頁內的某個元素指定一個css樣式來更改該元素的外觀
<style>
body{ font-size:16px;}
.one{
border:1px solid #eee;
width:230px;
height:50px;
background:#ccc;
color:red;
}
.two{
border:1px solid #ccc;
width:230px;
height:50px;
background:#9CF;
color:blue;
}
</style>
</head>
<body>
<p id="p1" > 要新增樣式的內容</p>
<input type="button" value="新增樣式" onclick="add()"/>
<p id="p2" class="one">要更改樣式的內容</p>
<input type="button" value="更改外觀" onclick="modify()"/>
<script type="text/javascript">
var mychar=document.getElementById("p2");
document.write("p2元素class值為:"+mychar.className)
function add(){
var p1 = document.getElementById("p1");
p1.className="one";
}
function modify(){
var p2 = document.getElementById("p2");
p2.className="two";
}
</script>
</body>