前端(七)

一JavaScript認識

      JavaScript是弱類型語言,弱類型不是沒有類型,而是類型之間能夠自動去轉換,固然你可能會說java數值型也能夠自動轉換,爲何java就是強類型,而js就是弱類型。js能夠不一樣類型之間進行轉換,它的轉換能夠是須要的時候自動轉換或者開發者主動轉換。html

    html文檔解析順序是從上到下,JavaScript代碼做爲經過標籤嵌入或引入的腳本,也是HTML文檔的組成部分。所以,JavaScript代碼載入順序根據腳本標籤<script>的出現順序來肯定的。而且瀏覽器在加載js時有個特色,那就是載入以後當即就會執行,js的載入會阻塞DOC的創建java

  固然這也會帶來問題:因爲JavaScript一般須要操做DOM,因此,通常把JavaScript放在</body>前或者文檔結尾處引入。若須要在<head>中引入,能夠經過修改window.onload或者document.ready事件,強制等到DOM加載完成後再執行相關函數。segmentfault

而且JavaScript執行也是有特殊的順序:先處理聲明後執行。好比代碼:瀏覽器

var a = 1;       
function aa() {    
}複製代碼

會先處理聲明:bash

var a = undefined;函數

var aa = {};spa

執行:code

var a = 1;htm

方法調用時候才執行。對象

關於JS阻塞DOM創建能夠查看文章segmentfault.com/a/119000001…

二js數據類型

在JS中一共有六種數據類型

  • 基本數據類型(值類型):String 字符串、Number 數值、Boolean 布爾值、Null 空值、Undefined 未定義。

  • 引用數據類型(引用類型):Object 對象。

數據類型之間最大的區別

  • 基本數據類型:參數賦值的時候,傳數值。

  • 引用數據類型:參數賦值的時候,傳地址(修改的同一片內存空間)。

tips:不是數字的數字類型NaN。

         null專門用來表示空對象。類型是object。

         undefined用來表示一個未定義的變量,類型是undefined。

三數據之間轉換

其餘類型轉字符串:

  •  變量+"abc"
  • 變量.toString()
  • String(變量)

其餘類型轉數字:

  • Number(變量)
  • parseInt(變量)

特殊狀況:

若是字符串中有非數字的內容,則轉換爲NaN;

若是字符串是一個空串或者是一個全是空格的字符串,則轉換爲0;

若是是true 轉成 1,若是是false轉換成0;

若是是null轉換成0;

若是是undefined轉換層NaN;

tips:parseInt(變量)返回整數,還有parseFloat(變量)返回浮動數

其餘類型轉Boolean:

若是是字符串轉boolean:除了空字符串,其他的所有轉換成true;

若是是數字轉boolean:除了0和NaN,其他的所有轉換成true;

若是是null轉boolean:轉換成false;

若是是undefined轉boolean:轉換成false;

若是是對象轉boolean;轉換成true;

tips:瀏覽器會根據當前的類型自動去轉換成須要的類型,好比 if(object),他會把他轉換成boolean再去執行,而不是像強類型報錯。

四運算符

運算符都是會返回結果的。運算符能夠去分類記憶:算數運算符、自增運算符、邏輯運算符、賦值運算符、關係運算符、三元運算符(條件運算符)

算數運算符規則:

非number與數字進行計算時候都會先轉換成數字,在進行運算(任何數和NaN計算結果都是NaN),其他和java同樣。

自增運算符規則:

和java同樣,再也不贅述。

邏輯運算符規則:

若是對非布爾值進行邏輯運算,則會先將其轉換爲布爾值,而後再操做。其他的和java同樣。

賦值運算符規則:

和java同樣,再也不贅述。

關係運算符規則:

  • 如對於非數值進行比較時,會將其轉換爲數字而後再比較(任何數和NaN比較都是false)。
  • ==會自動類型轉換後在比較,而===不會類型轉換而比較。
  • NaN不等於任何值,包括它自己,可用isNaN(值)去判斷。

三元運算符:

若是條件的表達式的求值結果是一個非布爾值,會將其轉換爲布爾值而後再運算,其他的和java同樣。

五控制語句

if語句、switch語句、for語句、while語句語法和java同樣,不在贅述。

相關文章
相關標籤/搜索