1. Code style
  2. background story
    1. Brendan Eich
    2. 命名 java 沾光
    3. 很少的天數創造出來
  3. Tools
    1. google console
      1. typeof
        1. 印出字串
      2. 顏色
        1. 灰色
          1. 型別
        2. 黑色
          1. 字串
      3. debugger
    2. jscompress
  4. javascript語言特性
    1. Hoisting概念
      1. javascript會自動將"變數宣告"(不包含值)提升到前面
        1. 結合if判斷式範例
    2. 嚴格模式
      1. "use strict"
        1. 無法8進位
        2. 無法arguments.callee
        3. if/else for等區塊內,無法定義function
        4. 不允許 'with' 陳述式
        5. 其他
    3. 浮點運算
      1. IEEE 754
        1. 限制小數點後的空間
          1. (0.1).toString(2)
      2. n進位
        1. ECMAScript 5.1
          1. 8進位
          2. 010
          3. 16進位
          4. 0x10
        2. ECMAScript 6(2015)
          1. 2進位
          2. 0b10
          3. 8進位
          4. 0o10
      3. 解決浮點運算誤差
        1. toFixed(幾位數)
    4. Scope範圍鍵
      1. 在function內,宣告的變數,在function外即銷毀無法使用
        1. var
        2. arguments
    5. 閉包
      1. 沒有用閉包時巢狀內層function的 this指向window
      2. var 變數去接 this
        1. 限制巢狀內層function的 this的範圍
      3. 清除佔存記憶體
      4. setTimeout
        1. 3種閉包解法
    6. Curry化
      1. 將參數利用閉包保存
  5. javascript語法介紹
    1. truthy falsy
      1. Boolean
        1. 布林值
          1. Boolean
          2. !!
        2. falsy
          1. NAN
          2. 0
          3. ""
          4. undefind
          5. 預設值
          6. json 裡面只能用null
          7. 型別
          8. typeOf
          9. undefind
          10. null
          11. 不可能是預設值
          12. 型別
          13. typeOf
          14. object
          15. ECMAScript-262(5.1)
          16. undefined == null return true
          17. undefined === null return false
        3. truthy
          1. []
          2. {}
          3. Infinity
          4. -infinity
    2. function
      1. ()
        1. 執行function
      2. arguments
        1. 型別
          1. 類Array的Object
          2. 取用
          3. 轉換成array
      3. 優點
        1. 減少全域變數
        2. 變數區域化
          1. 提升效能
          2. 檢小檔案大小
      4. 立即涵式IIFE
      5. Method
        1. try catch finally
          1. try...catch
          2. finally
          3. 先執行finally
          4. 覆蓋回傳值
          5. 先把複雜看不懂的function包住
        2. switch case
          1. 優點
          2. 判斷式少時,效能比if/else好
          3. 在javascript(直譯式) 可以在case裡 執行判斷式