天天看點

JavaScript 數組拼接列印_JavaScript的世界第2章  文法基礎第3章  流程控制第4章  初識函數第5章  字元串對象第6章  數組對象第7章  時間對象第8章  數學對象第9章  DOM基礎第11章  事件基礎第12章  事件進階第13章  window對象

第一章  javascript簡介

1、什麼是js?

  認識:js就是一個浏覽器端的腳本語言,負責實作頁面的一些互動效果

  (點選事件,輸入觸發事件,滑鼠拖拽事件等)以及實作和背景資料的互動(ajax)

2、javascript中三種輸出方式

   1.alert("輸出文本")----調用浏覽器的視窗函數實作

    内容展示

   2.console.log("輸出文本")----開發者背景才能看見的

    輸出内容----檢查代碼錯誤和檢視相關資料

   3.document.write("輸出文本内容")----把需要顯示的

    内容放入到html結構中顯示

第2章  文法基礎

    對于這一章來說,我們需要清楚這5個概念:變量、資料類型、運算符、表達式、語句。可以根據下圖25-38來了解:

JavaScript 數組拼接列印_JavaScript的世界第2章  文法基礎第3章  流程控制第4章  初識函數第5章  字元串對象第6章  數組對象第7章  時間對象第8章  數學對象第9章  DOM基礎第11章  事件基礎第12章  事件進階第13章  window對象

圖25-38  分析圖

1、變量

    什麼是變量?------變量用于存儲程式中變化的資料

(1)定義變量

     es5:

       var 變量名 = 資料值

     es6:

       let 變量名 = 資料值

       const 常量名 = 資料值

(2)變量的命名

變量由字母、下劃線、$或數字組成,并且第一個字元不能是數字。

2、在設定變量中,es5文法和es6文法有什麼差別?

       1.var可以重新定義let不行

       2.var和let都可以重新指派

       3.const不能重新定義,也不能重新指派

  【注意】

       1.var和let定義變量不指派的時候列印出來顯示的是undefined

       2.var可以重新定義let不行

       3.var和let都可以重新指派

       4.const常量定義必須指派,否則列印報錯

       6.const不能重新定義,也不能重新指派

3、資料類型

     1.基本資料類型---6種(es5 5種 es6 1種)

       Number----阿拉伯數字(整數,小數,負數)

       String----字元串(用雙引号包裹的資料)

       Boolean--(布爾型)true---真 false---假----做邏輯判斷使用

       Undefined--(未定義)

       null----空

       symbol----唯一

     2.引用資料類型(複合資料類型)

       object-----對象

4、基本資料類型的辨識 typeof

       文法結構

         var 變量名 = 資料類型;

         console.log( typeof 變量名);

5、資料類型的轉換

 (1).強制轉換

   parseInt----将【字元串】轉化為數字類型隻會保留整數部分

   parseFloat----将【字元串】轉化為數字類型保留小數部分

   boolean轉換

   注意:除了0 "" '' undefined NaN null 得到fasle , 其他的都是true

 (2).自動轉換

         案列:

           純數字字元串除了+号以外都會自動轉化為數字類型進行計算。

6、運算符的認識

(1)算術運算符

    +- * /

    重點掌握:----(重點)

     %---默---取餘數

     ++------自身值+1--- a = a+1

     【注意】

     當++在變量的右邊;先參與其他邏輯程式,再+1;

     當++再變量的左邊;先+1在參與其他邏輯程式;

(2)比較運算符

      ==   !=    >  >=  

      ===(全等于)   !==(不全等于)

    【注意】

     1.比較運算符必須用在條件控制語句中,比如分支語句中的if(a

)

     和循環語句的小括号中比如for(a

)

     2.使用== 隻會比較變量的值的比對,不會比較資料類型

     ===會比較值和他的資料類型

(3)指派運算符

   += -= *= /=

    文法結構

     a += b;-----a = a+b;

(4)邏輯運算符

&&  ||   !

(5)條件運算符(三元運算符)

Var a=條件?  表達式1:表達式2;

7、字元串拼接符号

   es5文法:

     在es5文法中如果兩個變量的值都是字元串類型+就是把他們拼接成一個字元串

     如果要計算,請強制轉換類型後再計算

     var g = 6;

     var f = "我的實習駕照現在隻有" + g + "分";

     console.log(f);

   es6:

     var r = 4;

     var h = `小明今天開車出去闖紅燈了,被扣了${r}分`;

     console.log(h);

8、表達式與語句

   1+2是一個表達式,而整一句代碼“var a=1+2;”就是一個語句。

JavaScript 數組拼接列印_JavaScript的世界第2章  文法基礎第3章  流程控制第4章  初識函數第5章  字元串對象第6章  數組對象第7章  時間對象第8章  數學對象第9章  DOM基礎第11章  事件基礎第12章  事件進階第13章  window對象

圖25-39  表達式與語句

9、注釋

//單行注釋

第3章  流程控制

1、選擇結構

選擇結構指的是根據“條件判斷”來決定執行哪一段代碼。選擇結構有單向選擇、雙向選擇以及多向選擇3種。

在JavaScript中,選擇結構共有2種方式,一種是if語句,另外一種是switch語句。

(1)if語句的使用

     1.單分支語句

       文法結構: 

         if (判斷語句) {

           執行代碼

         }

       特點:滿足就執行,不滿足就不管

     2.雙分支語句

       文法結構: 

         if (判斷語句) {

           滿足條件執行代碼

         } else {

           不滿足條件執行代碼

         }

       特點:滿足條件執行{}中的代碼,否則執行else{}中的代碼

     3.多分支語句

         文法結構: 

         if (判斷語句1) {

           滿足條件1執行代碼

         } else if (判斷語句2) {

           滿足條件2執行代碼

         }

         ...

         }else{

           其他都不滿足時候執行的條件

         }

       特點:

         1.有2個以上的條件判斷時候使用,滿足哪個條件,就執行

         哪個條件下的代碼。

         2.可以用來做範圍判斷和精确判斷

(2)switch的認識

         switch就是做的if多分支語句的精确判斷

         文法結構:

           switch (info) {

           case "a":

              console.log("你不用寫作業了");

              break;

           case "b":

              console.log("找人幫你寫作業");

              break;

           case "c":

              console.log("我親自幫你寫作業");

              break;

           default:

              console.log("我發現你有點不尊重我的頭發,作業5倍");

              break;

         }

2、循環結構

    循環語句指的是在“滿足某個條件下”循環反複地執行某些操作的語句。

    在JavaScript中,循環語句共有以下3種:

(1)for循環(重點)

     文法結構: 

     for (var a=0;a<5;a++) {

       //執行代碼

     }

(2)while循環

     var a = 1

     while (a <= 10) {

       console.log(a);

       a++;

     }

(3)do while循環

      var a = 11;

       do {

         console.log(a);

         a++;

       } while (a <= 10);

     特點:不管條件先執行一次才說判定條件

3、嵌套循環

     // 嵌套循環

     // 外層循環行

     for (var a = 1; a <= 3; a++) {

       // 内層循環列

       for (var b = 1; b <= 4; b++) {

         document.write(a + "-" + b + " ")

       }

       document.write("

")

     }

4、break和continue

     break----停止所有循環

     continue---跳過目前滿足條件的循環

第4章  初識函數

    在JavaScript中,函數指的是一個用大括号“{}”括起來的、可重複使用的、具有特定功能的語句塊。如果想要使用函數,一般需要2步:

②    定義函數;

② 調用函數;

1、什麼是函數?

  函數就是把我們常用的代碼集合成一個方法,然後再你想用的地方調用函數

  實作操作就ok了,函數定義好但是不能自己運作,需要調用才能執行;

2、函數的定義

(1)聲明式---------(推薦使用)

     文法結構:

       function 函數名 () {

         //要封裝的代碼

       }

     調用函數運作:函數名();

(2)表達式

     文法結構: 

     var 變量名 = function () {//匿名函數

        //要封裝的代碼

     }

     調用函數運作:變量名();

    【差別】聲明式有函數提升作用,是以可以在定義之前調用執行

    表達式沒有函數提升作用,不能再定義前調用執行

3、形式參數的認識

    作用,實作封裝的功能代碼需要的變化的資料的提供。

    文法結構:----(重點)

     function 函數名 (形參1=值1,形參2,...) {

         //要封裝的代碼

     }

     函數名(實參)

     【特點】

       1.形式參數可以有多個,并且按照順序來用實參指派

       2.形參可以設定預設值,一旦用用預設值的形參,不需要

       傳實參也可以使用,但是如果傳了實參,就會覆寫預設值

       3.形式參數就是一個函數的局部變量,隻能在函數中使用

4、函數的作用域

   1.全局作用域

     在代碼中任何位置都可以使用的區域----整個代碼中

     設定在全局作用域下的變量稱之為全局變量,

     任何位置都可以使用它

   2.局部作用域

     在指定的範圍内才能使用的區域----函數中

     設定在函數中的變量叫做局部變量,隻能在函數中使用

   3.局部變量傳回全局使用

     使用return來實作局部變量的值轉移到全局使用

     文法結構:

        function num() {

         var a = 100;

         // 使用return傳回a的值到全局

         return a;

       }

    總結函數的特點:

     1.函數是用來封裝一段代碼達到優化代碼結構的操作

     2.函數定義中可以調用其他函數的執行函數

     3.函數中往往會形成一個獨立的操作區域----局部區域

5、系統函數的認識

     isNaN(值)-------判定目前資料類型是否為數字類型

     是否命題(is not a Number)----是不是不是一個數字

     true------不是數字類型

     false-----是數字類型

第5章  字元串對象

1、什麼是對象

  萬物皆對象

  對象是集合了很多的的屬性和方法

  了解:我們使用對象就是在使用它的屬性和方法

  一般我們會更多的使用内置對象的方法

  而我們自己建立的對象,往往把資料作為這個對象的屬性

  儲存下來,然後通過渲染進行頁面顯示

2、對象的定義----自定義對象

   1.執行個體化定義

     var obj = new Object()

   2.字面量定義----推薦使用

     var obj = {}

3、對象的屬性方法添加

    文法結構---通用

     對象變量名.屬性名 = 屬性值

    存入的屬性結構

     {屬性名1:屬性值1,屬性名2:屬性值2}---鍵值對結構

   直接在字面量中添加,執行個體化不能直接添加資料

     var obj2 = { name: "小魯班" };

4、擷取對象中的具體值---查詢

       對象變量名.屬性名

5、this的使用

    在函數中設定的this,誰調用這個函數this就指代了誰

6、對象的周遊

   for..in----周遊數組

    文法結構

     for (var key in obj) {

       obj[key]----【注意】必須使用索引的中括号才能使key轉義

     }

7、内置對象和相關函數和屬性的掌握

  内置對象,就是在創造js的時候已經存在擁有屬性和方法的現成對象

  我們使用它就是用到它的屬性和方法

 1.String對象的屬性和方法

   1.屬性

     1.length-----擷取字元串的字元個數

       var a = "abc" ----自動轉換newString("abc");

       a.length

   2.方法

     1.charAt(index)----通過索引找字元

       var str = "abcdefgh";

       console.log(str.charAt(5));

        【注意】如果給的索引超出範圍,傳回空字元串

     2.indexOf(str)----通過字元找索引

       str.indexOf("X",start)

       start代表的是從第幾個下标開始查找,預設不寫為0

       【注意】沒有找到比對字元就傳回-1

     3.replace()----字元串替換

       【注意】

         1.替換的字元串是傳回的新字元串,需要用變量儲存使用

         不會覆寫原來的字元串

         2.預設替換隻會比對一次,要進行全局替需要使用正則操作

           /需要被替換的字元/g

       var str1 = str.replace(需要被替換的字元, 替換字元)

     4.字元串的截取

       1.substr()----截取字元串

         str.substr(開始的索引,截取字元串的長度)

       2.subString()--截取字元串

         str.substring(開始的索引,結束索引(不包含))

       【注意】

         1.使用substr最後一個值為截取的長度,

         subsring最後一個值為結束的索引但是不包括,是以一般我們

         +1處理

         2.當這兩個函數隻給一個開始索引的時候,

         就會從目前位置一直把所有的字元截取完

   2.Number對象的屬性和方法

     1.方法:

       toFixed(index)----保留小數位數

       num = num.toFixed(2);

       【注意】純數字的字元串不能使用這個方法,

       如果要使用請強制轉換為小數

    在JavaScript中,字元串對象常用的屬性和方法如下表28-1和表28-2所示:

表28-1  字元串對象的屬性

屬性 說明
length 擷取字元串的長度

表28-2  字元串對象的方法

方法 說明
toLowerCase()、toUpperCase() 大小寫轉換
charAt() 擷取某一個字元
substring() 截取字元串
replace() 替換字元串
split() 分割字元串
indexOf()、lastIndexOf() 檢索字元串的位置

第6章  數組對象

在JavaScript中,我們可以使用“數組”來存儲一組“相同資料類型”(一般情況下)的資料類型。

1、什麼是數組?

  它就是一個資料的集合(按照隊列順序排列資料)

  作用:在項目開發中有很多資料需要循環渲染,我們都會把資料設定為數組的

  狀态,友善渲染操作

2、數組的定義

(1)執行個體化定義

     文法結構

       var arr = new Array();

(2)字面量定義-----推薦使用

     文法結構

       var arr1 = [];

    【注意】

     1.一般我們都使用字面量建立數組

     2.建立出來的數組,沒有任何資料,我們把這

     種數組叫空數組。

3、請說出基本資料類型和引用資料類型在記憶體上的差別

    所有的資料類型都是存儲在記憶體中的,但是為了更好的快速的操作資料

    記憶體被分為了堆和棧兩個區域。

    我們儲存基本資料類型的時候,他的變量,和具體的資料都是儲存在

    棧

    我們儲存引用(複合)資料類型的時候,他的變量是儲存在棧上,

    同時棧上還儲存了一個路徑位址(指向儲存在堆中的實際資料)

    實際資料是儲存在堆上的;

4、數組的實際操作

   1.數組中資料的添加----(重點)

     1.直接添加

       在定義數組的時候就把值傳入,每個值用逗号隔開

       【注意】執行個體化中如果隻給一個數字資料,那麼隻是

       讓它建立一個有你設定資料那麼多個null資料的數組

     2.索引(下标)添加

       利用索引把值添加到具體的位置上去

       文法結構 

         變量名[索引值] = 資料

       【注意】

         1.使用索引添加資料的時候,盡量按照順序添加

         否則會出現練習的null資料

         2.如果指定的索引已經有值的時候就會覆寫之前的值

     3.push()方法添加

       push()是數組的内置(系統)函數

       文法結構

          變量名.push(值)

       【注意】push隻會按照目前的順序添加值

   2.數組的通路----(重點)

     1.具體值的通路

       通過索引來進行通路

       文法結構 

        變量名[索引值]

     2.值的個數的擷取

       變量名.length

   3.修改資料----(重點)

     通過指定的索引來修改

     文法結構

       變量名[索引值] = 你修改的資料

   4.删除資料----(重點)

     1.delete 變量名[索引值]

     【注意】使用delete删除的知識資料,而不會删除索引,

      不會改變length的長度擷取

     2.清空數組

       1.設定數組為空數組

         arr1 = [];

       2.設定數組的長度為0

         arr1.length = 0;

5、使用循環周遊數組的值

(1)使用for----用途最廣的一個操作----(重點)

       文法結構

         for (var a = 0; a

           console.log(arr[a]);

         }

       【注意】

         1.循環多少次使用length擷取最大次數

         2.注意将循環的初始條件設定為0開始,應對了數組的索引

         我們就可以使用這個初始條件來做索引使用

(2)forEach

         數組變量.forEach(function(value,index){

              value : 數組元素

              index : 索引

         })

6、二維數組

     概念:第一層數組中索引對應的值為一個獨立的數組 

     文法結構

      var arr = [

        [1,2,3],

        ["a","b","c"]

        ....

     ]

     基本查找 console.log(arr[2][1]);

     循環周遊(嵌套循環)

      for (var a = 0; a < arr.length; a++) {

       for (var b = 0; b < arr[a].length; b++) {

         console.log(arr[a][b]);

       }

     }

7、數組的内置函數

     1.concat()----拼接數組

     文法結構:

       數組變量1.concat(數組變量2,資料1,資料2...)

     2.join()----數組轉字元串

       不給值預設用逗号連接配接

     3.pop()---删除數組

       1.隻能從後面開始删除

       2.和delete不同pop連帶索引一起删除

     4.reverse---反序數組

       var arr1 = arr.reverse();

    數組的建立一般用簡寫形式,如[1,2,3,4,5]。數組的擷取和指派,都是使用下标的方式,特别注意一點:數組的下标是從0開始,而不是從1開始的。

    其中,數組常用的屬性和方法如下表29-1和表29-2所示:

表29-1  數組的屬性

屬性 說明
length 擷取數組的長度

表29-2  數組的方法

方法 說明
slice() 截取數組部分
unshift() 添加數組元素,在開頭添加
push() 添加數組元素,在末尾添加
shift() 删除數組元素,在開頭删除
pop() 删除數組元素,在末尾删除
sort() 數組大小比較
reverse() 數組颠倒順序
join() 将數組元素連接配接成字元串

第7章  時間對象

1、時間對象常用方法

表30-5  用于擷取時間的getXxx()

方法 說明
getFullYear() 擷取年份,取值為4位數字
getMonth() 擷取月份,取值為0(一月)到11(十二月)之間的整數
getDate() 擷取日數,取值為1~31之間的整數
getHours() 擷取小時數,取值為0~23之間的整數
getMinutes() 擷取分鐘數,取值為0~59之間的整數
getSeconds() 擷取秒數,取值為0~59之間的整數

表30-6  用于設定時間的setXxx()

方法 說明
setFullYear() 可以設定年、月、日
setMonth() 可以設定月、日
setDate() 可以設定日
setHours() 可以設定時、分、秒、毫秒
setMinutes() 可以設定分、秒、毫秒
setSeconds() 可以設定秒、毫秒

getMonth()要擷取正确結果就要+1

2、實時顯示目前時間

<<body>

    <div class="date">div>

    <script>

    // 方式二:

    function showdate(){

        var date=new Date();

        var Y=date.getFullYear();

        var M=(date.getMonth()+1);

        var D=date.getDate();

        var h=date.getHours();

        var m=date.getMinutes();

        var s=date.getSeconds();

        var week=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];

        var d=week[date.getDay()];

        function convert(num){

            return num<10? `0${num}`:num;

        }

        var str=`${Y}-${convert(M)}-${convert(D)} ${convert(h)}:${convert(m)}:${convert(s)} ${d}`

        document.querySelector(".date").innerHTML=str;

    }

    showdate();

    setInterval(showdate,1000)

    script>

body>

第8章  數學對象

對于Math對象的屬性來說,我們隻需要掌握Math.PI就行。對于Math對象的方法來說,我們需要掌握表31-5中這些方法就行了。

表31-5  Math對象常用方法

方法 說明
max(a,b,…,n) 傳回一組數中的最大值
min(a,b,…,n) 傳回一組數中的最小值
sin(x) 正弦
cos(x) 餘弦
tan(x) 正切
asin(x) 反正弦
acos(x) 反餘弦
atan(x) 反正切
atan2(x) 反正切
floor(x) 向下取整
ceil(x) 向上取整
random() 生成随機數

第9章  DOM基礎

1、DOM是什麼?

    對于DOM,我們總結出以下幾點:

  (1)DOM操作,可以簡單了解成:元素操作;

  (2)一個HTML文檔就是一棵節點樹,頁面中的每一個元素就是一個樹節點;

  (3)每一個元素就是一個節點,而每一個節點就是一個對象。我們在操作元素時,就是把這個元素看成一個對象,然後用這個對象的屬性和方法進行操作;

2、節點類型

   DOM節點共有12種類型,不過常見的隻有3種(其他不用管):

  (1)元素節點,nodeType值為1

  (2)屬性節點,nodeType值為2

  (3)文本節點;nodeType值為3

3、擷取元素

    在JavaScript中,我們可以通過6種方式來擷取指定元素:

  (1)getElementById()

  (2)getElementsByTagName()

  (3)getElementsByClassName()

  (4)querySelector()和querySelectorAll()

  (5)getElementsByName()

  (6)document.title和document.body

    雖然這些方法名又長又臭,不過根據英文意思來記憶就很輕松啦。此外對于這些擷取元素的方式,有幾點需要我們注意的:

  (1)隻有getElementsByTagName()可以操作動态DOM,其他的都不行

  (2)querySelector()表示選取滿足選擇條件的第1個元素,querySeletorAll()表示選取滿足條件的所有元素

  (3)當你選取的隻有一個元素時,querySelector()和querySelectorAll()是等價的

  (4)getElementsByName隻用于表單元素,準确來說一般用于單選按鈕和複選框

  (5)getElementsByTagName()、getElementsByClassName()、getElementsByName()這3個方法傳回的都是一個類數組(elements嘛),想要準确擷取其中一個元素,可以使用數組下标來實作

4、DOM操作

表32-2  DOM操作的方法

方法 說明
createElement() 建立元素節點
createTextNode() 建立文本節點
appendChild 插入元素,在父元素最後一個子元素後面插入
insertBefore() 插入元素,在父元素任意一個子元素前面插入
removeChild() 删除元素
cloneNode() 複制元素
replaceChild() 替換元素

    在HTML中直接添加元素,這是靜态方法。而使用JavaScript添加元素,這是動态方法。這一章介紹的這些就是動态方法,也叫動态DOM操作。動态DOM操作在實際開發中用途是非常廣的。

第10章  DOM進階

  1、HTML屬性操作

    在JavaScript中,有2種操作HTML元素屬性的方式,一種是用“對象屬性”,另外一種是用“對象方法”。不管是用哪種方式,都涉及2種操作:①擷取HTML屬性值;②設定HTML屬性值。

 (1)“對象屬性”方式

obj.attr        //擷取值

obj.attr= "值"   //設定值

 (2)“對象方法”方式

obj.getAttribute("attr")        //擷取值

obj.setAttribute("attr","值")    //設定值

對于操作HTML屬性的2種方式,我們總結一下:

   ①“對象屬性方式”和“對象方法方式”,這兩種方式都不僅可以操作靜态HTML的屬性,也可以操作動态DOM的屬性;

   ②隻有“對象方法方式”才可以操作自定義屬性;

  2、CSS屬性操作

 (1)擷取值

getComputedStyle(obj).attr

 (2)設定值

obj.style.attr= "值";        //使用style對象

obj.style.cssText= "值"      //使用cssText屬性

  3、DOM周遊

表33-2  DOM周遊的屬性

屬性 說明
parentNode 查找父元素
childNodes、firstChild、lastChild 查找子元素,包含文本節點
children、firstElementChild、lastElementChild 查找子元素,不包含文本節點
previousSibling、nextSibling 查找兄弟元素,包含文本節點
previousElementSibling、nextElementSibling 查找兄弟原始,不包含文本節點

  4、innerHTML和innerText

    在JavaScript中,我們可以使用innerHTML屬性很友善地擷取和設定一個元素的“内部元素”,也可以使用innerText屬性擷取和設定一個元素的“内部文本”。

第11章  事件基礎

1、擷取html和body标簽的另外一種方式

  正常擷取html标簽

   // 另外查詢方式

   var html = document.documentElement.clientHeight

   console.log(html);

   var body = document.body.clientHeight

   console.log(body);

2、認識事件的四要素

   1.事件源----元素對象

   2.事件類型----事件的觸發狀态(點選移入移出 及時輸入監聽。。)

   3.事件執行函數---觸發事件以後執行的代碼

   4.事件對象----類似于行程記錄儀或者飛機的黑匣子,記錄事件開始到結束

    發生和使用的是所有屬性和方法

3、建立節點,添加節點到html結構中顯示

   1.建立節點:

    var el = document.createElement("标簽名")

     // 添加屬性

     el.id = "father"

     // 添加文本内容

     el.innerHTML = "我是js添加的文本"     

   2.添加節點到html結構中顯示

     父級元素節點.appendChlid(添加的子級元素節點)

     【注意】添加的子級元素節點隻會作為最後一個子級元素節點添加

4、元素節點的修改操作

    父級元素節點.replaceChlid(用來替換的元素節點,被替換的元素節點)

5、删除元素節點的操作

    父級元素節點.removeChild(指定要删除的節點)

6、文本的設定操作

    擷取元素節點的文本資訊

     元素節點.innerHTML

     元素節點.innerText

    設定元素節點的文本資訊

     元素節點.innerHTML = 值

     元素節點.innerText = 值

    【注意】他們都是設定或擷取标簽之間的文本内容,不涉及

    标簽的字元串,都可以使用,但是如果添加的文本中有标簽的

參與,必須使用innerHTML才能讓标簽轉義顯示。

事件操作是JavaScript的核心,不懂事件操作,JavaScript等于白學。在JavaScript中,事件調用方式有2種:①在script标簽中調用;②在元素中調用。

7、常用事件

表34.2  滑鼠事件

事件 說明
onclick 滑鼠單擊
onmouseover 滑鼠移入
onmouseout 滑鼠移出
mouseenter 滑鼠懸停
mouseleave 滑鼠離開
onmousedown 滑鼠按下
onmouseup 滑鼠松開
onmousemove 滑鼠移動

表34.3  鍵盤事件

事件 說明
onkeydown 鍵盤按下
onkeyup 鍵盤松開

表34.4  表單事件

事件 說明
onfocus 擷取焦點
onblur 失去焦點
onselect 選擇文本
onchange 選擇某一項觸發(單選框、複選框、下拉菜單)

表34.5  編輯事件

事件 說明
oncopy 用于防止文本被複制
onselectstart 用于防止文本被選取
oncontextmenu 用于禁止滑鼠右鍵

表11.6  頁面事件

事件 說明
window.onload 頁面加載完畢觸發
window.onunload 離開頁面觸發

    上面列出來的都是JavaScript中最常用的事件,對于不常用的,我們已經舍棄掉了。學完這些,我們可以自己嘗試開發一下各種效果了,如圖檔輪播、Tab頁籤、回頂部等。

    此外,這些事件大多數都是針對PC端的,像移動端還有一些特殊的事件如touchstart、touchend、touchemove等。

第12章  事件進階

  1、事件監聽器

    在JavaScript中,想要給元素添加一個事件,其實我們有2種方式:①事件處理器;②事件監聽器。

obj.addEventListener("click",function () {

……

});

obj.οnclick= function () {

……

};

    如果想要為一個元素添加多個相同僚件,必須要用事件監聽器,而不能用事件處理器。

  (1)綁定事件

    文法:

obj.addEventListener(type , fn , false)

  (2)解綁事件

    文法:

   obj.removeEventListener(type , fn , false);

    說明:

   removeEventListener()隻能解除“事件監聽器”添加的事件,如果要解除“事件處理器”添加的事件,需要用“obj.事件名 = null;”方法來實作。

  2、event對象

    當一個事件發生的時候,這個事件有關的詳細資訊都會臨時儲存到一個指定的地方,這個地方就是event對象。

表35-3  event對象的屬性

屬性 說明
type 事件類型
keyCode 鍵碼值
shiftKey 是否按下shift鍵
ctrlKey 是否按下Ctrl鍵
altKey 是否按下Alt鍵

  3、this

    在事件操作中,可以這樣了解:哪個DOM對象(元素節點)調用了this所在的函數,那麼this指向的就是哪個DOM對象。

第13章  window對象

1、window圖解

JavaScript 數組拼接列印_JavaScript的世界第2章  文法基礎第3章  流程控制第4章  初識函數第5章  字元串對象第6章  數組對象第7章  時間對象第8章  數學對象第9章  DOM基礎第11章  事件基礎第12章  事件進階第13章  window對象

2、js的三大組成部分

   1.ECMAScript(es)-----基本文法

   2.BOM-----浏覽器對象模型----使用js操作浏覽器上的功能

   3.DOM-----文檔對象模型------使用js操作标簽屬性 css

    【注意】實際上js隻有兩個大的内容es和BOM,而DOM

    是屬于BOM下的一個子對象,但是因為他獨立操作的是文檔内容,我們

    一般把它單獨也作為一個組成部分而DOM的頂層對象是document

    一個視窗就是一個window對象,這個視窗裡面的HTML文檔就是一個document對象,document對象是window對象的子對象。

表36-5  window對象下的重要子對象

子對象 說明
document 文檔對象,用于操作頁面元素
location 位址對象,用于操作URL位址
navigator 浏覽器對象,用于擷取浏覽器版本資訊

3、彈窗三劍客

     alert()  顯示帶有一段消息和一個确認按鈕的警告框。

     confirm()      顯示帶有一段消息以及确認按鈕和取消按鈕的對話框。

     // 消息确認彈窗

     var info = confirm("你看見我了嘛?");

     【注意】點選确定擷取的info值為true,相反擷取的是false

   console.log(info);

     prompt()       顯示可提示使用者輸入的對話框。

表36-6  3種對話框

方法 說明
alert() 僅提示文字,沒有傳回值
confirm() 具有提示文字,傳回“布爾值”(true或false)
prompt() 具有提示文字,傳回“字元串”

 4、定時器

    在JavaScript中,我們可以使用setTimeout()方法來“一次性”地調用函數,并且可以使用clearTimeout()來取消執行setTimeout()。

我們也可以使用setInterval()方法來“重複性”地調用函數,并且可以使用clearInterva()來取消執行setInterval()。

     1.間歇計時函數

      var t = setInterval()

       文法結構:

         setInterval(執行匿名函數,設定間歇時間(以毫秒為機關))

     2.延時計時函數

       setTimeout()

       文法結構:

       setTimeout(執行匿名函數,設定倒計時時間(以毫秒為機關))

     3.停止間歇及時函數

       clearInterval(間隙計時函數變量(t))

 5、location對象

表36-7  location對象的屬性

屬性 說明
href 目前頁面位址
search 目前頁面位址“?”後面的内容
hash 目前頁面位址“#”後面的内容

    location-----js中的a标簽---(重點)

      文法結構:

        location.href = 設定跳轉路徑

6、history對象

   1.history-----操作浏覽器的曆史通路記錄----(重點)

     1.back()---傳回上一頁

     2.forward()---前進下一頁

     3.go(index)---傳回或前進index頁(看正負值)

7、navigator對象

    在JavaScript中,我們可以使用window對象下的子對象navigator來擷取浏覽器的類型。

8 、阻止事件

(1)return false ---- 阻止預設事件行為

解釋:使用這個傳回可以暫時清除掉标簽自帶的事件。

(2)e.preventaefault----阻止浏覽器預設行為

(3)e.stoppropagation---阻止事件傳播、阻止事件冒泡。

第14章  document對象

    document對象其實是window對象下的一個子對象來的,它操作的是HTML文檔裡所有的内容。document對象常用的屬性和方法如下:

表37-3  document對象常用的屬性

屬性 說明
document.title 擷取文檔的title
document.body 擷取文檔的body
document.URL 目前文檔的URL
document.referrer 傳回使浏覽者到達目前文檔的URL

表37-4  document對象常用的方法

方法 說明
document.getElementById() 通過id擷取元素
document.getElementsByTagName() 通過标簽名擷取元素
document.getElementsByClassName() 通過class擷取元素
document.getElementsByName() 通過name擷取元素
document.querySelector() 通過選擇器擷取元素,隻擷取第1個
document.querySelectorAll() 通過選擇器擷取元素,擷取所有
document.createElement() 建立元素節點
document.createTextNode() 建立文本節點
document.write() 輸出内容
document.writeln() 輸出内容并換行

繼續閱讀