核心(ECMAScript)
,文檔對象模型(DOM)
,瀏覽器對象模型(BOM)
js的三種調用方式javascript
<script> init(); </script> <script type="text/javascript" src="main.js"></script> <input type="button" onclick="javascript:alert('test')">
思考: 比較這幾種方式的優劣,效率上有什麼差別性?html
<script src="" async/defer></script> <!--html5 新屬性-->
思考: 用法,範圍,比較和defer的區別html5
async,表示當前腳本沒必要等待其餘腳本,也沒必要阻塞文檔呈現,不能保證異步腳本按照它們在頁面中出現的順序執行
defer,能夠讓腳本在文檔呈現後再執行,延遲腳本老是按照它們的順序執行的。java
< noscript>元素,當瀏覽器不支持javascript腳本瀏覽器
ECMAScript有以下5中基本數據結構數據結構
Undefined
Boolean
Null
Number
String
異步
typeof 操做符,用來檢測給定變量的數據類型async
var message; // var age alert(typeof message); alert(typeof age);
結果都是undefined,message 聲明沒初始化,使用var生命變量但未對其進行初始化的,默認undefined;age沒有進行聲明,傳遞給alert()函數會致使一個錯誤,對於未聲明變量這麼操做沒什麼意義好比delete,也是返回undefined。因此函數
對變量進行變量聲明能經過typeof,辨別變量沒有被初始化而不是沒聲明
- Null -null 表示空對象指針 因此typeof 返回object
通常咱們在聲明一個對象變量時候,應該讓變量保存null,這樣經過typeof 即可以知道,能夠區分null和undefined
- Boolean - boolean 只有true/false,Boolean() 轉換其餘數據類型 爲true/false
- Number
1. 對於float數,爲何0.1+0.2 != 0.3?
2. NaN(Not a Number)的設計初衷,表示一個本該返回數字卻沒返回數字的狀況,好比1/0
3. 數值轉換 Number() parseInt() parseFloat()設計