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