標籤:
一、文法:
- 區分大小寫
2.標識符:就是指變數、函數、屬性的名字,或者函數的參數
a、標誌符的規則:①第一個字元必須是一個字母、底線(_)或一個貨幣符號($)。
②其他字元可以是字母,底線,貨幣符號或者數字。
b、標誌符採用駝峰大小寫格式。
c、strict 模式:在頂部添加以下代碼:"use strict";
d、語句:結尾加入分號、在控制語句中使用代碼塊為最佳實務。
二、關鍵字與保留字
三、變數:ECMAScript的變數是鬆散類型,可以儲存任何類型的資料。且在初始設定變數時,不會為它標記類型。
1、不建議修改變數所儲存值得類型,但這種操作是有效
2、使用var操作符定義的變數為局部變數。函數退出後會被銷毀。
3、不推薦省略var操作符來定義全域變數。如果有意的忽略var操作符,也會由於相應變數不會馬上就有定義而導致不必要的混亂。給未經聲明的變數賦值在strict 模式下會報錯。
四、資料類型:ECMAScript有5種單一資料型別(基礎資料型別 (Elementary Data Type))——Undefined、Null、Boolean、Number、和String。一種複雜資料類型——Object。
1.typeof操作符——檢測給定變數的資料類型
undefined——如果這個值未定義;
boolean——如果這個值是布爾值;
string——如果這個值是字串;
number——如果這個值是數值;
object——如果這個值是對象或者null;
function——如果這個值是函數;
2.undefined類型:
a、在使用var聲明變數但未對其加以初始化時,這個變數的值就是undefined。(預設取得)。
b、對於尚未聲明的變數,只能執行一項操作,使用typeof操作符檢測其資料類型。返回undefined。
c、儘可能顯式的初始設定變數,這樣當ytpeof返回undefined時,我們就知道 被檢測的變數還沒有被聲明,而不是尚未初始化。
3、null類型:
a、如果定義的變數準備在將來用於儲存對象,那麼最好將變數初始化為null而不是其他值。
b、undefined的值是派生自null的,所以他們的相等性測試返回true。(雙等返回true,三等返回false)。
4、boolen類型:
a、Boolean類型的字面量true和false是區分大小寫。其他寫法都不是Boolean值,只是標誌符。
b、ECMAScript中所有類型的值都有與這兩個Boolean值等價的值。要將一個值轉換成對應的Boolean值,可以調用轉型函數Boolean()。
| 資料類型 |
轉換為true的值 |
轉換為false的值 |
| Boolean |
true |
false |
| string |
任何非Null 字元串 |
Null 字元串 |
| number |
任何非零數值(包括無窮大) |
0和無窮大 |
| object |
任何對象 |
null |
| undefined |
不適用 |
undefined |
5、number類型:
a、八進位字面量的第一位必須是零(0),然後是八位元字序列。如果字面值中的數值超出了範圍,那麼前置字元為零將被忽略,後面的數值被當做十進位數值解析。八進位字面量在strict 模式下無效。
b、十六進位字面量的前兩位必須是0x,後跟任何十六進位數字0~9和a~z,字母可大寫可小寫。
c、在進行算術計算時,所有八進位與16進位表示的數最終都被轉換成十進位
d、浮點數值:
①數值中必須包含一位小數點,小數點後必須至少有一位元字。小數點前可以沒有整數,但是不推薦。浮點數值若能轉換為整數值,那麼會被轉換。
②極大極小值用e標記法。
③浮點數的精度有bug,所以不要測試某個浮點數的值
e、數值範圍:超出js數值範圍的值會被自動轉換成Infinity。Infinity無法參與計算。isFinite()函數在參數位於最大最小值之間時會返回true。
f、NaN:用來表示一個本來要返回數值的運算元未返回數值的情況。
①任何涉及NaN的操作,都返回NaN。NaN與任何值都不相等,包括他本身。
②isNaN()函數接收一個參數,該參數可以是任何類型,函數會嘗試將參數轉換為數值,任何不能被轉換為數值的值都會導致函數返回true。該函數適用於對象,先調用對象的valueOf()方法,然後確定該方法返回的值能否轉換為數值。若不能,則基於這個傳回值再調用toString()方法,再測試傳回值。
g、數值轉換:
①Number():用於任何資料類型
如果是Boolean值,true和false分別返回1和0。
如果是數值,簡單地傳入返回。
如果是null,返回0。
如果是undefined,返回NaN。
如果是字串:
如果字串只包含數字(無論正負),將其轉換為十進位,忽略前置字元為零。
如果字串包含有效浮點格式,轉換成對應浮點格式,忽略前置字元為零。
如果字串包含有效16進位,將其轉換為相同大小的十進位整數值。
如果字串為空白,將其轉換為0。
如果字串包含除上述格式之外的字元,則將其轉換為NaN。
如果是對象:調用valueOf()方法,然後依照前面的規則轉換傳回值。如果轉換結果是NaN,則調用toString()方法,然後再次依照前面規則轉換。
JS進階程式設計學習筆記之第三章基本概念(文法,資料類型,流量控制語句,函數)——查漏補缺