JS基礎語法

Js基本語法

Js的使用方式:html

  1. 行內js

寫在標籤中的js代碼數組

  1. 內部js

寫在頁面中的js代碼app

  1. 外部js

引入外部的js代碼函數

注意:1.若是<script></script>標籤設置了src屬性,則在雙標籤中寫的js代碼無效測試

           二、一般使用JS時,會選擇內部JS或外部JShtm

語句:對象

           JS代碼是以行爲單位,一行一行執行。索引

           通常狀況下,一行一條語句。ip

              每句語句後面最好加上分號,若是一行寫多條語句(不建議),則每條語句後面必須加分號。字符串

           若是是表達式,不須要加分號,若是加了JavaScript引擎會把它當作語句編譯。

註釋:

           單行註釋:   // 註釋內容

           多行註釋:   /* 註釋內容 */

           Html風格:<!-- html的註釋-- >

變量的聲明

              JavaScript 是一種弱類型語言,在聲明變量時不須要指明數據類型,直接用 var 修飾符進行聲明。

兩種方式:

                   一、先聲明,後賦值

                   二、聲明並賦值

                                              

變量的注意點

                   1)若只聲明而沒有賦值,則該變量的值爲 undefined。

                   2)變量要有定義才能使用,若變量未聲明就使用,JavaScript 會報錯,告訴你變量未定義

                   3)能夠在同一條 var 命令中聲明多個變量。

                   4)若使用 var 從新聲明一個已經存在的變量,是無效的。

                   5)若使用 var 從新聲明一個已經存在的變量且賦值,則會覆蓋掉前面的值

                   6)JavaScript 是一種動態類型、弱類型語言,也就是說,變量的類型沒有限制,能夠賦予各類類型的值。

                   7)聲明變量時,能夠不加var修飾符,此時變量爲全局變量(不建議)

                                    

變量提高

                   JavaScript 引擎的工做方式是,先解析代碼,獲取全部被聲明的變量,而後再一行一行地運行。

JS是弱類型語言,變量沒有類型,但數據有類型。

                                     JavaScript 中有 6 種數據類型。

                                     其中有五種簡單的數據類型:

Undefined、Null、布爾、數值和字符串。

                                     一種複雜數據類型 Object。

                                              

                                     數 值(Number): 整數和小數(好比 1 和 3.14)

                                     字符串(String): 字符組成的文本(好比"Hello World")

                                     布爾值(Boolean):true(真)和 false(假)兩個特定值

                                     Undefined: 表示「未定義」或不存在,即此處目前沒有任何值

                                     Null: 表示空缺,即此處應該有一個值,但目前爲空

對象(object)(引用) : 各類值組成的集合

                                     1)、對象(object){name:"zhangsan",age:"18"}

                                     2)、數組(array)[1,2,3]

                                    3)、函數(function)function test() {}

                                    

一、typeof 操做符

                                     typeof 操做符是用來檢測數據類型。

說明:一、typeof null 返回的是 object 字符串

二、函數不是數據類型,可是也可使用 typeof 操做符返回字符串。

typeof 操做符能夠操做變量也能夠操做字面量。

注意:函數在 JavaScript 中是對象,不是數據類型,因此使用 typeof 區分 function 和object 是有必要的

                   這形成的結果,就是全部的變量的聲明語句,都會被提高到代碼的頭部,這就叫作變量提高。

注意:變量提高只對 var 命令聲明的變量有效,若是一個變量不是用 var 命令聲明的,就會發生變量提高。

 

 

undefined

                   undefined 類型的值是 undefined。

                   undefined 是一個表示"無"的原始值,表示值不存在。

                   常見的undefined的狀況:

                                     一、當一個變量只聲明而未賦值時

                                     二、當一個函數須要形參,調用時未傳遞形參,此時參數爲undefined

                                     三、當一個函數沒有返回值,調用方式時去接收,會返回undefined

                                                       

null

null 類型是隻有一個值的數據類型,即特殊的值 null。它表示空值,即該處的值如今爲空,

                   它表示一個空對象引用。

                   使用 Null 類型值時注意如下幾點:

                                     1)使用 typeof 操做符測試 null 返回 object 字符串。

                                     2)undefined 派生自 null,因此等值比較返回值是 true。因此,未初始化的變量和賦值爲null 的變量相等。

                                    

數值型

                   數值型包含兩種數值:整型和浮點型。

                   1)全部數字(整型和浮點型)都是以 64 位浮點數形式儲存。因此,JS 中 1 與 1.0 相等,並且 1 加上 1.0 獲得的仍是一個整數。浮點數最高精度是 17 位小數,因爲浮點數運算時可能不精確,儘可能不要使用浮點數作判斷。

                   2)在存儲數值型數據時自動將能夠轉換爲整型的浮點數值轉爲整型。

                   3)對於過大或太小的數值,可使用科學計數法來表示

4)Infinity、-Infinity

                   超過了表數範圍,出現 Infinity(正無窮)或者-Infinity(負無窮)

                   isFinite()函數能夠肯定是否超出範圍:

                   true:沒有超出;false:超出了。

NaN

                   表示非數值(Not a Number),是一個特殊的值。

                   如:將字符串解析成數字出錯的場合。

                   注意:

                            NaN 不等於任何值,包括它自己,由於它不是一個值

                            NaN 與任何數(包括它本身)的運算,獲得的都是 NaN。

                                                                          

                   isNaN()能夠用來判斷一個值是否爲 NaN

                            true:不是數字;false:是數字

                                    

字符串

                   使用 ' ' 或 " "引發來,如:'sxt',"good"。

                   使用加號’+’進行字符串的拼接,如:console.log('hello' + ' everybody');

                                    

                                    

對象

                   對象是一組數據和功能的集合。

                   typeof window // "object"

                   typeof {} // "object"

                   typeof [] // "object"

                   typeof null // "object"

                   說明:

                            {}:表示使用對象字面量方式定義的對象。空的大括號表示定義包含默認屬性和方法的對象。

instanceof 運算符

                   typeof 操做符對數組(array)和對象(object)的顯示結果都是 object,那麼能夠利用

                   instanceof 運算符,它可用於判斷一個變量是否某個對象的實例。

 

 

 

parseInt()和 parseFloat()兩個全局轉換函數。

                   前者把值轉換成整數,後者把值轉換成浮點數。

                   只有對 String 類型調用這些方法,這兩個函數才能正確運行;

                   對其餘類型返回的都是 NaN(Not a Number)。

                                    

parseInt()

                   會從下標0開始找,若是不是有效數字,返回NaN;若是是,則繼續日後找,直到不是有效數字位置

                 parseInt()方法還有基模式,能夠把二進制、八進制、十六進制或其餘任何進制的字符串轉換成整數。基是由 parseInt()方法的第二個參數指定的

                   若是十進制數包含前導 0,那麼最好採用基數 10,這樣纔不會意外地獲得八進制的值

parseFloat()方法

                   與 parseInt()方法的處理方式類似,從位置 0 開始查看每一個字符,直到找到第一個非有效的字符爲止,而後把該字 符以前的字符串轉換成數字。

                   不過,對於這個方法來講,第一個出現的小數點是有效字符。

                   若是有兩個小數點,第二個小數點將被看做無效的,parseFloat()方法會把這個小數點以前的字符串轉換成數字。

 

 

顯式轉換

                   toString()函數將內容轉換爲字符串形式

                   toFixed()函數將根據小數點後指定位數將數字轉爲字符串,四捨五入

                   注:不能對null和undefined使用

                                              

強制轉換

                   JS 爲 Number、Boolean、String 對象提供了構造方法,用於強制轉換其餘類型的數據。

                   此時操做的是整個數據,而不是部分

                                              

                   String()是最簡單的,由於它可把任何值轉換成字符串。

                   String()和toString()的區別,在於前者能夠操做null和undefinded

 

 

數組的建立

                   var arr=[值 1,值 2,值 3]; //隱式建立

                   var arr=new Array(值 1,值 2,值 3); //直接實例化

                   var array=new Array(size); //建立數組並指定長度

                                              

基本操做

                   一、數組的長度能夠經過 length 屬性來獲取,並能夠任意更改

                   二、數組中的每個元素均可以被訪問和修改,甚至是不存在的元素,無所謂越界

                                              

數組的遍歷

                   一、for(var i=0; i < 數組.length; i++) {}

                   二、for(var 下標名  in 數組) {}

                   三、數組.forEach(function(元素,下標){});

                                              

瞭解:

                   若是下標:

                   1.爲非負整數(包括整數字符串):自動從 0 開始,不存在添加 undefined

                   2.爲負數、小數、非數字符串:這些內容不計算在長度內,當成"屬性"處理,至關於自定義屬性。

                   數組很是靈活,使用數組元素

                   1.下標: 非負整數(包括整數字符串):

                   數組.下標

                   數組[下標]

                   2.下標:負數、小數、非數字字符串:

                   數組[屬性]

                                                                        

                   * for -- > 不遍歷屬性

                   * foreach -- >不遍歷屬性和索引中的 undefined

                   * for in -- >不遍歷索引中的 undefined

                                                                

                                    

數組中提供的經常使用方法

                   push 添加元素到最後

                   unshift 添加元素到最前

                   pop 刪除最後一項

                   shift 刪除第一項

                   reverse 數組翻轉

                   join 數組轉成字符串

                   indexOf 數組元素索引

                   slice 截取(切片)數組,原數組不發生變化

                   splice 剪接數組,原數組變化,能夠實現先後刪除效果

                   concat 數組合並

 

1. 函數的定義

                   有三種函數定義的方式:函數聲明語句、函數定義表達式、Function 構造函數

函數聲明語句

                   function 函數名([參數列表]) {}

                   調用:函數名([參數列表]);

函數定義表達式

                   var 變量名/函數名 = function([參數列表]) {}

                   調用:變量名/函數名([參數列表]);

Function 構造函數

                   var 變量名 = new Function("參數1","參數2","最後一個參數爲是函數體");

                   調用:變量名/函數名([參數列表]);

注意:

                   一、js 中的函數沒有重載,同名的函數,會被後面的函數覆蓋。

                   二、js 中容許有不定數目的參數

 

 

 

函數的參數

                    實參能夠省略,那麼對應形參爲 undefined

                   若函數形參同名(通常不會這麼幹):在使用時以最後一個值爲準。

                   能夠給參數默認值:當參數爲特殊值時,能夠賦予默認值。

                   參數爲值傳遞,傳遞副本 ;引用傳遞時傳遞地址,操做的是同一個對象。

                                    

函數的調用

                   經常使用調用方式:函數名([實參]);

                   存在返回值能夠變量接收,若接收無返回值函數則爲 undefined

                   一、函數調用模式

                   二、方法調用模式

                   三、間接調用模式

                   call()和 apply()方法能夠用來間接地調用函數。

                   任何函數能夠做爲任何對象的方法來調用,哪怕這個函數不是那個對象的方法。

                   兩個方法均可以指定調用的實參。

                   call()方法使用它自有的實參列表做爲函數的實參,apply()方法則要求以數組的形式傳入參數

                                    

                   匿名函數當即調用

                   (1)匿名函數:function ([參數]){}

                   (2)調用:(function ([形參]) {})([實參]);

                   在函數只被使用一次的狀況下可使用這種方式,簡便省事

                                                       

return 語句

                   做用:在沒有返回值的方法中,用來結束方法。

                   有返回值的方法中,一個是用來結束方法,一個是將值帶給調用者。

相關文章
相關標籤/搜索