1. 程式人生 > >JavaScript重點知識點大全整理,必備!

JavaScript重點知識點大全整理,必備!

純手打。。。。

1.value和innerHTML沒有聯絡,只是value是表單的一個特有屬性,而innerHTML是通用的。


2.當從外部引入js檔案時,該外部檔案裡面可以有多個方法,
   html頁面中的onclick只選中其中一個方法即可。
     做法是在<script src="外部檔名.js"></script>
     注意:外部指令碼不能包含<script></script>標籤。
     
3. js有四種方法顯示資料:window.alert();彈出警示框
                        document.write();將內容寫到 HTML檔案中
                        innerHTML;寫入到HTML元素中
                        console.log()寫入到瀏覽器的控制檯  
         注意:1》當頁面載入完成後執行document.write(),則會被覆蓋。
           2》使用console.log(),在瀏覽器中按F12,然後點選console
      1》 <p>大家好</p>
 <button type="button" onclick="a()">點選</button>
 <script>
function a(){
document.write("糟了");
}
 </script>
            3》innerHTML比document.write先顯示


4.js中數字可以是整數,小數和e,不需要引號。文字內容需要用單/雙引號連線。


5.js字母大小寫非常敏感
函式 getElementById 與 getElementbyID 是不同的。
同樣,變數 myVariable 與 MyVariable 也是不同的。


6.js常見命名是用駝峰法。如:lastName


7.js中用分號來結束語句是可選的,並且用分號的作用是為了在一行可以編寫多條語句。
        如:a=1;b=4;
        
8.js會忽略多餘的空格,來提高可讀性。


9.js中命名物件是使用鍵值對的方式,以{}開始和結尾。普通陣列則是用[];
       <script>
//採用鍵值對的方式
var person={name:"liuaihong",age:12,job:"boss"};
document.write(person.name+"<p>");
document.write(person["age"]);
</script>


10. 若沒有賦值為var,則預設為全域性變數,記住,位置不能變!js是從上到下編譯!
     window是全域性變數,所有資料都屬於window物件。
                <body>
         <p id="demo"></p>
           <script>
myFunction();
document.getElementById("demo").innerHTML=a;
                                        


=window.a;
function myFunction(){
a="hah";
}
</script>
</body>      

11.js中的字串中可以使用任何符號,也可以使用轉義字元,但是注意不能跟外部的引號一樣即可。
                \+符號=符號
                
12. ==意思是絕對相等,資料型別和值都必須相等。      
    x+=y意思是x=x+y
    
13.字元與數字相加,返回字串,數字與數字相加,返回數字。 
        注意:  空文字 + 數字得到的運算結果都是把數字轉成字串,無論文字有多少個空格。但是空


格會計入長度。
      var re=""+5;顯示"5" 
      var re="  "+5;顯示"  5"//空格也會顯示
      var re=5+5+"abc";顯示"10abc"
      var re=""+5+5+"abc";顯示"55abc
      
 14.只有單獨的if 語句時,條件為true才會執行,當不為true時,則不執行任何程式碼。         
 
 15.時間的函式:var d=new Date();
                d.getHours();//獲取當前時間
                d.getDay();//獲取星期幾      
                
16.switch情況,當兩種情況相同時,可以只在第一個情況下面寫程式碼。
switch(number)
{
case 1:alert("1");break;
case 10:
case 11:alert("10 或 11");break;
default:alert("都不是");
}           

17.for in是迴圈遍歷物件的屬性值
function myFunction(){
var person={name:"liu",age:12,address:"haha"};//物件陣列的書寫


方式
var x;
var txt="";//txt需要設定值,不然會顯示為undefined
for(x in person){
txt=txt+person[x];//需要加上txt,不然只會遍歷最後一個


的值

}
document.getElementById("demo1").innerHTML=txt;
}

18.while是遍歷為true時的值。do while是先進行一次程式碼的執行,再判斷,所以最少執行一次。


<script>
  function myFunction(){
  var i=6,txt="";
  do{
  txt=txt+i;
  i++;
  }
  while(i<5);
  document.getElementById("demo").innerHTML=txt;
  }
  
</script>


19.break是終止迴圈,continue是跳出本次迴圈,而繼續執行其後面的程式碼,如果有的話。


20.typeof是用來檢測變數的資料型別,null可以把變數的值改變,改為空,但是其資料型別還是不會變。


而undefined也是清空物件,但是型別也成了undefined.


21.js中有5種資料型別:string ,number,boolean,object,function
        3種物件型別:Object,Date,Array
        2種不包含任何值的資料型別:null,undefined
        
22.一元運算子可以把字元型別轉化為數字型別:x=+y為number型別。        


23.正則表示式(RE),使用單個字串來描述、匹配一些類符合某個語法規則的字串搜尋模式,一般用於
   search()和 replace()方法。          
   RegExp物件是一個預定義了屬性和方法的正則表示式。
   test()是檢測一個字串是否匹配某個模式。
            var patt=new RegExp("e");
document.write(patt.test("the eel"));//返回true
document.write(patt.exec("hello  eee"));//返回e,不匹配就返回null

24.try 和 catch是成對出現的
try{
addlert("welcome!");
}
catch(err){
alert(err.message);
}

25.在js輸出語句中直接用回車換行是會報錯的。
            注意,不能對return語句進行換行。
           注意,定義陣列和物件,最後一個不能加逗號
    points = [40, 100, 1, 5, 25, 10,];
    websites = {site:"菜鳥教程", url:"www.runoob.com", like:460,}
            
26.表單自動驗證使用required
<form action="demo_form.php" method="post">
 <input type="text" name="fname" required>
 <input type="submit" value="提交">
</form> 

27.獲取表單的值
   var fname=document.forms["myForm"]["fname"].value;
 
28.<a href="javascript:void(0);">點選我什麼都不會發生</a>
   <a href="#">點我會調到預設的當前頁的頂部</a> 
   
29.通常運算子 ( = + - * / ) 前後需要新增空格:
       var x = y + z;
        通常使用 4 個空格符號來縮排程式碼塊:    
        function toCelsius(fahrenheit) {
   return (5 / 9) * (fahrenheit - 32);
}  
         通常左花括號前加一個空格,右花括號單獨放在一行
  for (i = 0; i < 5; i++) {
   x += i;
   }  
   - 通常在 JavaScript 中被認為是減法,所以不允許使用。   一般使用下劃線_. 
   


js函式


1.函式顯式引數(Parameters)與隱式引數(Arguments);


2.如果一個函式呼叫前使用了new關鍵字,則這是一個建構函式
function myFunction(arg1, arg2) {
this.firstName = arg1;
   this.lastName  = arg2;
}
    var x = new myFunction("John","Doe");
    
3.call()方法和apply()方法是預定義的兩個方法,兩個方法的第一個引數必須是物件本身。
myObject = myFunction.call(myObject, 10, 2);     // 返回 20
myObject = myFunction.apply(myObject, myArray);  // 返回 20

4.閉包就是一個函式引用另一個函式的變數,因為變數被引用著所以不會被回收,因此可以用來封裝一個私


有變數。這是優點也是缺點,不必要的閉包只會增加記憶體消耗。
     或者說閉包就是子函式可以使用父函式的區域性變數,還有父函式的引數。
     閉包是可訪問上一層函式作用域裡變數的函式,即便上一層函式已經關閉。




HTML DOM文件物件模型


1.通過 HTML DOM可訪問js html文件的所有元素。


2.var x=document.getElementById("demo").getElementsByTagName("p");
  document.write(x[1].innerHTML);//根據標籤查詢,p是一個標籤。
  document.getElementsByClassName("intro");函式來查詢 class="intro" 的元素;
  document.getElementById("image").src="a.jpg";//可以改變html的屬性,原圖為b.jpg,現改為a.jpg
  document.getElementById("p2").style.color="blue";//可改變css的樣式,比如改變顏色等。
  document.getElementById("p1").style.visibility="hidden";//改變文字,使之隱藏。
  doucment.getElementById("P2").addEventListener("click",displayDate);//點選時,事件載入。




js物件


1.js是基於prototype,而不是基於類的。
  prototype 屬性使您有能力向物件新增屬性和方法。
2.js用Infinity來表示數字的無窮大。
3.一個數字除以一個字串結果不是一個數字、一個數字除以一個字串數字結果是一個數字
var x = 1000 / "Apple";//不是數字,返回false
var y = 1000 / "1000";//是數字,返回true
4.String是一個字串物件,a.lenght計算字元長度
                      a.indexOf("")計算字串出現的位置,沒有返回-1
                      a.match("")查詢字串中特定的字元,若找到則返回這個字元。
                      a.replace("新的","舊的")替代指定字元
                      a.toUpperCase()大寫
                      a.toLowerCase()小寫
                      
5.Array陣列物件:var a=["一","二","三","四"];
                       a.concat(b,c);//合併兩個陣列
                       a.shift();//刪除陣列第一個元素
                       a.pop();//刪除陣列的最後一個元素
                       aunshift("");//在陣列最前面加上元素
                       a.push("xxx");//在陣列末尾加上一個元素
                       a.reverse();//將陣列元素順序反轉排序
                       a.sort();//按升序排列陣列
                       a.toString();//陣列轉化成字串
                       
6.Math物件: a.Math.round(4.3);//返回最接近4.3的數,4
           a.Math.random();//返回0-1之間的隨機數
           a.Math.max(a,b,c..);返回a,b,c..中最大的一個數   
           a.Math.min(a,b,c..);返回a,b,c..中最小的一個數                  
                       
                      


JS BOM瀏覽器物件模型


1.location.href;//返回URL
  location.hostname;//返回web主機域名
  location.pathname;//返回當前頁面的路徑和檔名
  location.port;//返回web主機的埠
  location.protocol;//返回使用的web協議
     注意:不能使用window這個字首。
     
2.history.back();//返回上一個地址
  history.forward();//返回下一個地址
  
3.navigator.attribute;//返回當前瀏覽器的資訊 


4.彈窗alert();//提示
confirm("sometext");//警告
prompt("sometext","預設");//輸入資料並繼續


5.setInterval(function(){},時間);//間隔相同的時間執行相同的程式碼,1000ms為1秒
  clearInterval(a);//停止
  setTimeOut(function(){},時間);//設定方法執行的時間
  clearTimeOut(a);//停止,你必須在它設定的時間之前阻止它