1. 程式人生 > >史上最全的javascript知識點總結,淺顯易懂。

史上最全的javascript知識點總結,淺顯易懂。

一,認識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>