標籤:
前奏:在HTML中使用JavaScript
1_推薦src引用外部JavaScript檔案,方便管理與維護,標籤位置在頁面最下面,使瀏覽器更優先載入頁面內容。
2_HTML頁面需要有標準的文件類型申明DOCTYPE,否則會觸發混雜模式,頁面非常容易出錯。
3_考慮禁用JavaScript的情境。
<body>
...
//當瀏覽器不支援javascript或被禁用時,會呈現<noscript>標籤內的內容。 <noscript> <p>本頁面需要瀏覽器支援JavaScript.</p> </noscript> </body>
1. 基本文法
1. ECMAScript中的一切(變數,函數名和操作符)都區分大小寫。
2. 標識符命名: 首字元必須字母,底線或$貨幣符號,數字不能在第一個。(關鍵字和保留字不能作為標識符)
3. strict 模式 “use strict” 定義了一種要求更高的解析和執行模型
function
doSomething(){ "use strict" //函數體 }
2. 資料類型
資料類型分為基本類型和複合類型。
基礎資料型別 (Elementary Data Type):number,boolean 、string 、null和 undifined。
| number |
整型或浮點型 |
| boolean |
布爾類型,true或false (注意區分大小寫,必須都為小寫時才是) |
| string |
字串,單雙引號都可以 |
| null |
表示一個Null 物件指標, |
| undefined |
變數申明未定義時為undefined, |
| object |
資料和功能的集合 |
number類型
1. 八進位在strict 模式下無效,十六進位前兩位必須為0x,計算式都將轉換為十進位
2. 取值範圍,使用全域isFinite()函數判斷是否超出範圍,如果在範圍內則為true,如果在範圍外則為false.
Number.MAX_VALUE; /* 最大數值(JS 可以表示的) */ Number.MIN_VALUE; /* 最小數值(JS 可以表示的) */ Number.NEGATIVE_INFINITY; /* 負無窮大,值為-Infinity */ Number.POSITIVE_INFINITY; /* 無窮大 值為Infinity */
3. NaN和isNaN()
NaN是number類型,但不是數字,一旦程式中出現了NaN,說明出現了問題,
NaN的布爾屬性為false,NaN和任何值都不相等,包括NaN本身。
任何涉及NaN的操作都會返回NaN。
isNaN()
裡面的資料首先通過number()方法轉換,
如果能夠轉為數字,則isNaN()為 false。
如果不能轉為數字,則isNaN()為true。
4.數值轉換
- Number()函數:將資料整體轉換成Number類型,和使用一元加操作符(+)作用相同,建議使用 + 操作符,比較簡單。 直接加一個Null 字元串。
- parseInt()函數:解析整數,從左往右,遇到非數字即停止,可以傳入資料和進位,如parseInt(‘070‘,8)輸出10進位的56。
- parseFloat()函數:解析浮點數,從左往右,會識別第一個小數點,只能接受一個參數,需要注意的是,如果被解析的資料結果是整數,會直接返回整數。
boolean類型
Boolean類型只有:true和false。注意區分大小寫,其它形式的都不是,例如True和False.
1. 任何一種資料類型的值都能轉換為與其相對應的Boolean值,轉換方式主要有三種:
顯示轉換:轉型函數Boolean()
隱式轉換,比如條件陳述式if
2.在轉換為數值時,true和false分別轉換為1和0,轉換為字串時,分別為‘true‘和‘false‘。
3.Boolean類型的true和false,使用typeof時,均返回字串‘boolean‘。
string類型
1.隱式轉換,任何一個數值與字串相加,都會將其使用String()轉換成字串,然後將兩個字串合并。
2.顯示轉換String(),
3.字串使用反斜線“\”來轉義,常見的逸出字元:
| 字面量 |
含義 |
字面量 |
含義 |
字面量 |
含義 |
| \n |
換行 |
\t |
製表 |
\b |
空格 |
| \r |
斷行符號 |
\f |
進位 |
\\ |
反斜線 |
| \’ |
單引號 |
\” |
雙引號 |
|
|
| \xnn |
以十六進位代碼nn表示的一個字元 |
\unnnn |
以十六進位代碼nnnn表示的一個Unicode字元 |
|
|
null和undefined區別
| |
null |
undefined |
| 表示 |
Null 物件指標 |
尚未定義的變數 |
| typeof運算結果 |
object |
undefined |
| |
undefined派生null,使用==判斷為true |
undefined派生null,使用==判斷為true |
| |
如果定義變數準備在將來儲存對象, 那麼最好將變數初始化為null. |
無論申明情況下後沒有必要將一個變數顯示設定為undefined. |
這五種基礎資料型別 (Elementary Data Type)可以直接操作儲存在變數中的實際值。
基礎資料型別 (Elementary Data Type)都儲存在記憶體中的棧區。
引用(複合)資料類:javascript引用資料類型是儲存在堆記憶體中,JavaScript不允許直接存取堆記憶體空間中的位置和操作堆記憶體空間,只能通過操作對象在棧記憶體中的引用地址。
所以參考型別的資料,在棧記憶體中儲存的實際上是對象在堆記憶體中的引用地址。通過這個引用地址可以快速尋找到儲存在堆記憶體中的對象。
參考型別是可以添加屬性,基本類型雖然也可以添加屬性,也不會報錯,但是卻無法訪問。
JavaScript-基本文法和資料類型