js程式碼的執行順序及運算
程式碼執行順序:從上往下,一行一行的執行(也叫一個模組一個模組的執行)
變數的提升(它不是變數的功能,而是瀏覽器的功能)
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