天天看點

JavaScript學習筆記

JavaScript學習筆記

在head标簽中,或者body标簽中,使用script标簽來書寫JavaScript代碼

使用script标簽引入單獨的JavaScript代碼檔案

注意:script标簽可以用來定義js代碼,也可以用來引用js檔案,但是兩個功能隻能二選一,不能同時使用兩個功能

JavaScript的變量類型

數值類型:number

字元串類型:string

對象類型:object

布爾類型:boolean

函數類型:function

JavaScript裡特殊的值:

undefined:未定義,所有JavaScript變量未賦予初始值的适合,預設值都是undefined

null:空值

NAN:全稱是 Not a Number,非數字,非數值。

JavaScript中定義變量的格式:

var 變量名;

var 變量名 = 值;

等于:== 等于是簡單的做字面值的比較

全等于:=== 除了做字面值的比較之外,還會比較兩個變量的資料類型

且運算:&&

或運算:||

取反運算:!

在JavaScript語言中,所有的變量,都也可作為一個boolean類型的變量去使用。

0,unll,undefined,""(空串) 都認為是false

與Java不太相同的地方:

&&運算:有兩種情況

第一種:當表達式全為真的時候,傳回最後一個表達式的值

第二種:當表達式中,有一個為假的時候,傳回第一個為假的表達式的值

||運算:有兩種情況

第一種:當表達式全為假時,傳回最後一個表達式的值

第二種:隻要有一個表達式為真,就會傳回第一個為真的表達式的值

JavaScript中數組的定義:

格式:const 數組名 = []; //空數組

​ const 數組名 = [1, 'abc', true]; //定義數組同時指派元素

在JavaScript語言中,若要定義帶有傳回值的函數,隻需要在函數體内直接使用return語句傳回值即可

JavaScript不允許函數重載。相同的函數名,最後一次的定義會覆寫掉之前所有的同名定義

即在function函數中不需要定義,但卻可以直接用來擷取所有參數的變量。我們管它叫做隐形參數,隐形參數特别像Java基礎的可變長參數一樣。

<code>public void fun(Objevt...args);</code>可變長參數其實是一個數組

那麼JavaScript中的隐形參數也跟Java的可變長參數一樣,操作類似數組

對象的定義:

對象的通路:

​ <code>變量名.屬性名/函數名();</code>

注意:對象内的成員的定義用逗号隔開,最後一個成員不用加逗号,和sql語句類似

​ <code>變量名.屬性/函數名();</code>

電腦輸入裝置與頁面進行互動的響應,我們稱之為事件

常用的事件:

​ onload 加載完成事件:頁面加載完成之後,常用于做頁面js代碼初始化操作

​ onclick 單擊事件:常用于按鈕的點選響應操作

​ onblur 失去焦點事件:常用于輸入框失去焦點後驗證其輸入内容是否合法

​ onchange 内容發生改變事件:常用于下拉清單和輸入框内容發生改變後操作

​ onsubmit 表單送出事件:常用于表單送出前,驗證所有表單項是否合法

事件的注冊又分為靜态注冊和動态注冊兩種:

​ 事件的注冊(綁定):告訴浏覽器,當事件響應後要執行哪些操作代碼

靜态注冊事件:通過html标簽事件屬性直接賦予事件響應後的代碼,這種方式我們叫靜态注冊

動态注冊事件:先通過js代碼得到标簽的dom對象,然後再通過 <code>dom對象.事件名 = function(){}</code>這種形式賦予事件響應後的代碼,這種方式我們叫動态注冊。

​ 動态注冊基本步驟:

DOM全稱是Document Object Model 文檔對象模型

通俗來說,就是把文檔中的标簽,屬性,文本轉換為對象來管理

Document對象的了解:

Document它管理了所有的HTML文檔内容

document它是一種樹結構的文檔,有層級關系

它讓我們把所有的标簽都對象化

我們可以通過document通路所有的标簽對象

舉例說明html标簽對象化

document.getElementById(elementId)

通過标簽的id屬性查找dom對象,elementId是标簽的id屬性值

document.getElementsByName(elementName)

根據指定的name屬性查詢傳回多個标簽對象集合,集合中都是dom對象,集合中的元素順序是他們在html頁面中從上到下的順序,elementName是标簽的name屬性值

document.getElementsByTagName(tagName)

按照指定标簽名查詢并傳回集合,集合的操作和數組一樣,集合中都是dom對象,集合中的元素順序是他們在html頁面中從上到下的順序,tagName是标簽名

document.createElement(tagName)

通過給定的标簽名,建立一個标簽對象,tagName是要建立的标簽名

注意:document對象的三個查詢方法,如果有id屬性,優先使用getElementById方法進行查詢;如果沒有id屬性,則優先使用getElementsByName方法進行查詢;如果既沒有id屬性,也沒有name屬性,s則使用getElementsByTagName方法進行查詢。以上三個方法,一定要在頁面加載完成之後執行,才能查詢到标簽對象

簡單來說,節點就是标簽對象(不嚴謹,但是夠用了)

方法:

getElementsByTagName():通過具體的元素節點調用, 擷取目前節點的指定标簽名孩子節點

appendChild(oChildNode):可以添加一個子節點,oChildNode是要添加的孩子節點

屬性:

childNodes:擷取目前節點的所有子節點

firstChild:擷取目前節點的第一個子節點

lastChild:擷取目前節點的最後一個子節點

parentNode:擷取目前節點的父節點

nextSibling:擷取目前節點的下一個節點

previousSibling:擷取目前節點的上一個節點

className:用于擷取或設定标簽的class屬性值

innerHTML:表示擷取/設定其實标簽和結束标簽中的内容

innerText:表示擷取/設定起始标簽和結束标簽中的文本

繼續閱讀