JS基礎,js基礎教程
JavaScript 第 一 部 分一.定義 基於瀏覽器的語言; 基於物件導向;c語言面向過程,java物件導向:繼承,封裝,多態; 事件驅動; 指令碼語言;二.作用: 表單驗證,減輕服務端的壓力; 添加頁面動畫效果; 動態更改頁面內容; AJax網路請求;三.組成部分: ECMAScript;指令碼程式語言, 語言標準ES5.1,最新ES6.0; 文法,變數和資料類型, DOM; 文件物件模型 ;文檔節點 BOM瀏覽器物件模型window:history,doucument,location四.javaScript基本結構: <script type="text/javascript"> javascript語句 </script>五.使用JS的三種方式:1.HTML標籤中的內嵌JS;(不提倡使用)2.HTML頁面中直接使用JS; <script type="text/javascript"> javascript語句 </script> 3.引用外部JS檔案; <script language="JavaScript" src=""> </script> 【注意事項】 1.頁面中JS代碼與引用JS代碼,可以嵌入到HTML的任何位置,但是位置不同會影響到JS代碼的執行順序; 例如:<script>在body前面,會在頁面載入之前執行JS代碼; 2. 頁面中的JS代碼,使用type="text/javascript"; 3.引用外部JS檔案,使用language="JavaScript"; 引用外部JS檔案的<script><script>標籤,必須成對出現,且標籤內部不能有任何代碼; 單行注釋ctrl+/ 段落注釋ctrl+shift+/ 六.JS中聲明變數的寫法: 1.寫法: var width=10;//使用var生命的變數,只在當前函數範圍有效; width=11;//不使用var直接賦值產生的變數,預設為全域變數,整個JS條件有效; var a,b,c=1; 同時聲明多個變數,變數之間用英文,分割,但是,複製需要單獨賦值,例如上式中,只有c=1,ab:undefined; 2.變數的命名規範: 字母數字底線_和$符號; 區分大小寫,大小寫字母為不同變數; 3.變數名要符合駝峰法則 : 變數開頭為小寫,,之後每個首字母大寫(單詞之間用底線分割) 例如:jiang_hao_shi_shuai_ge JiangHaoShiShuaiGe 4.JS中變數的資料類型: undefined:未定義,用var聲明的變數,沒有進行初始化賦值; Null:表示為空白的引用; number; Boolean:真假,可以是小數,也可以是整數; String:用“”或‘’包裹的內容,成為字串; object:(複雜資料類型:函數,數組) 5.常用的數值函數: ① isNaN():用於判斷一個變數或常量是否為NaN(非數值)。 使用isNaN判斷時嘗試使用number()函數進行轉換,如果能夠轉換為數字,則不是非數值,結果為false; “111”純數字字串,false “” Null 字元串,false “la”包含其他字元,true true/false 布爾類型,false ② number():將其他類型轉換成數實值型別 【字串類型轉數值】 ①.字串為純數值字串時,會轉為對應的數字“111”-->111; ②字串為空白字串時,會轉為0,“”-->0; ③ 字串包含其他非數字字元時,不能轉換,“111a”-->NaN; 【布爾類型轉數值】 true->1;fulse->0; 【Null/undefined專數值】 Null->0,undefined->NaN; [object類型轉數值] (以後在瞭解) 先調用valueof函數,確定函數是否有傳回值,再根據上述各種情況判斷; parseInt:將字串轉換成數值; ①.Null 字元串不能轉,結果為NaN;""->NaN; ②.純數字能轉,小數點後面除掉;123->123;123.45->123; ③.包含其他字元,會截取第一個非數值字元前的數值部分。 "123a456"->123;"a123a234"->NaN; ④.parseInt只能轉string類型:Boolean/null/undefined均為NaN; parseFloat:將字串轉換成數值; 使用方式同parseInt,但是當轉化小數時保留小數點;轉化整數時保留整數; 123.5->123.5; 123->123; typeof檢測變數的資料類型 未定義->undefined 字串->string; true/false->boolean; 數值->number; 對象/null->object; 函數->function; 【聲明變數注意事項】: 1.JS中所有變數型別宣告,均使用var關鍵字,變數的具體資料類型,取決於給變數賦值的執行; 2.同一變數可以在不同賦值時,修改變數的資料類型 var width=10; 變數為整形; width="哈哈"; 變數被改為字串; 3變數可以使用var聲明,也可以省略;【區別】是否為全域變數; 4.同一變數名可以多次用var聲明,但是並無任何含義,也不會報錯,第二次之後的聲明,只會被理解為賦值 JS中的輸出語句 * document.write():輸出語句,將write中的內容列印在瀏覽器螢幕上; * [使用時注意]:除變數、常量以外的內容,列印時必須放到“”中;變數常量必須放到“”外; * 列印的內容有多部分組成時,之前用+連結; * 例如:document.write("左手中的紙牌:"+left+“<br/>”) 第二部分 一.【算術運算】 + 加、- 減、* 乘、 / 除、 % 取餘、++ 自增、-- 自減 +:有兩種作用,連結字串/加法運算; 當+兩邊均為數字時,進行加法運算,當任意一邊有字串時,連接字串,串連之後的結果仍為字串; /:結果是多少就是多少; %:取餘數; ++:自增運算子,變數在原來的基礎上+1;--:同理; =:賦值; +=:a+=5——>a=a+5; -=:a-=5——>a=a-5;前者的執行效率快; 二、【關係運算】: == 、=== !=、>、<、>=、<= ==:等於;類型相同,同===,類型不同,將等式兩邊類型不同時,先用number()轉換成數實值型別,在判斷 null==undefined 成立;null===undefined不成立 ===嚴格等於;類型不同,直接返回false,類型相同,在進行下一步判斷; 條件運算子(多目運算):a>b?true:false 當?前面的部分運算結果為true時,執行:前面的代碼,當?前面的部分運算結果為false時,執行:後面的代碼; 可以多層嵌套;例如:var jiegao=num>5?"大了":(num=5?"蒙對了":"小了");【運算子的優先順序】 ()! ++ -- * / % + - > < <= >= == != && || 各種賦值:= += /= *= 第 三 部 分一.[if-else]寫法: if(判斷條件){ //條件為true時執行;}else{ //條件為false時執行;}if()中的運算式,運算之後的結果應改為:Boolean:true真 false假String,非Null 字元串為真,Null 字元串為假;Null/NaN/Undefined:全為假;Object:全為真;else{}結構根據具體情況可省略;二.【多層if、階梯if】1、結構寫法: if(條件一){ 條件一成立 } else if(條件二){ 條件一不成立&&條件二成立 ( else if可以有多個 ) } else{ 條件一不成立&&條件二也不成立 } 2、多重if結構中,各個判斷條件是互斥的,只能選擇其中一條路; 3、if-else的{}可以省略,但不提倡, 如果省略{},則,if/else結構包含的代碼,僅為其後最近的一行(分行結束); 如果省略{},則,else結構永遠屬於其前方最近的if結構; 三.【嵌套if結構】1、寫法: if(條件一){ 條件一成立 if(條件二){ 條件一成立,條件二也成立 } } else{ 條件一不成立 }四.【switch分支結構】1.結構寫法:switch(運算式){case 常量運算式1: 語句1; break;case 常量運算式2:語句2; break; defalt: 語句;break; }【注意事項】:①switch()中的運算式,以及每個case後面的運算式,(對象和數組不行)可以為任何js支援的資料類型;②case後面的所有常量運算式必須各不相同,否則只會執行第一個;③case後的常量可以是任何資料類型,同一個switch結構的不同case可以是多種不同的資料;④switch結構在進行判斷的時候,採用的是全等判斷===;⑤break的作用:執行完case代碼後跳出當前switch結構; 缺少break的後果:從正確的case項開始依次執行所有的case和defalt⑥switch結構在判斷時,只會判斷1次正確答案,當遇到正確的case項後,將會不在判斷後續case項; switch的結構執行速率要快於多重if結構,在多路分支時,可優先考慮switch結構; 五.迴圈結構迴圈結構的步驟: 1聲明迴圈變數 2判斷迴圈條件 3執行迴圈體(while中{})操作 4更新迴圈變數 然後,迴圈執行2,3,4 【js中迴圈結構中支援的資料類型】 Boolean:true真 false假; String,非Null 字元串為真,Null 字元串為假; number():0為假,一切非0全為真 Null/NaN/Undefined:全為假; Object:全為真;while 迴圈特點:先判斷,在執行;do-while:限執行,再判斷,即便初始條件不成立,do-while迴圈至少也執行一次 【for迴圈】: 先判斷再執行三個運算式均可由多部分組成,之間用逗號組成,但是第二部分的判斷條件需要用&&連結,最終條件需要為真/假.for(運算式1,運算式2,運算式3){語句;}1,定義迴圈變數;2.判斷迴圈條件;3,更新迴圈變數;三個運算式均可省略,但是兩個;不能省;例如: