1. 程式人生 > >js程式碼的執行順序及運算

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