代碼執行順序:從上往下,一行一行的執行(也叫一個模塊一個模塊的執行)
變量的提升(它不是變量的功能,而是瀏覽器的功能)
js代碼如何執行?
js代碼執行前,瀏覽器會給他一個全局的環境 叫window,在window(全局作用域)下瀏覽器找到所有的帶var和function的關鍵字,然后他們分配內存的地址,不管你賦值沒賦值,瀏覽器告訴所有的子模塊,這個東西存在了,這種能力叫變量提升。
對變量定義的方式
一個是定義的常量var
一個是定義的方法function
我們的載體是瀏覽器
計算機通過地址查找的
數據
變量的值 一個是字符串 (帶引號)
一個是數字(不帶引號)
不管是數字還是字符串,后面的值統統稱為數據
js數據類型有( 跟變量的值有關)
字符串 數字 數組 json 對象 布爾 null undefined 函數 (分為兩大塊 基本和復和)
運算
1.四則運算 (加,減,乘,除)法則(先乘除 后加減 有括號先算括號里面的)
2.邏輯運算: 或(||) 且(&&) 非(!) 其結果是布爾 (值為ture 和false 只有對與錯)
a 或 b ( a也行 ,b也行)
a 且 b (a和b)
a 非 b (不是a就是b)
3.比較運算 > 、 >= 、 < 、 <= !(取反)
==(雙等號 就是所謂的等號)因為“=”是賦值 ===(全等)數據類型和值都一樣 !==(不全等於)
==也有隱式轉換的能力
function 會有一個子模塊 內部可以用外部,外部不可以用內部
解釋console.log(a) 結果為undefined ?
var a="hello world"
js代碼執行前瀏覽器會給一個全局作用域(window)
window分兩種模塊 一個是儲存模塊 一個是執行模塊
儲存模塊找到所有的 var function的關鍵字 給這些變量添加內存地址
執行模塊代碼從上到下執行,遇到變量 就會去儲存模塊查找有沒有賦值 賦值了就是后面的值 沒有賦值就是undefined 沒有結果就是 (is not undefined)
注意儲存模塊沒有賦值的情況
通俗講 沒定義 (var function)為 is not undefined
沒賦值 (以上列將a="")undefined