x="123"; a="1";b="2"; var t="hello~"; let t="hello~"; string u="t1"; <== 錯誤宣告方式 x=123; a=1.45;b=2.3*10e5; var t=78.2; let t=78.2; var ua=0b011101; var ub=0O1101; var uc=01101; <==不建議如此宣告。(ES2015 模式不允許) var ud=0xfc; a = 312_45.819_4; <==新通過以底線表示數字的逗點,增加可讀性。 number v=72.9; <== 錯誤宣告方式 範例: a=false;b=true; var t=true; let t=true; var t="true"; boolean u=true; <== 錯誤宣告方式 a=Ture;b=False;c=TRUE;d=FALSE; <== 都是錯誤宣告方式 範例: a = Symbol("x"); var b=Symbol("x"); let c=Symbol("x"); d = Symbol(1); k = Symbol(x);<==這是常見錯誤。x 被認定是變數名,非資料。 a = Symbol("xx");b = Symbol("xx"); a = Symbol("xx");b = a; a = Symbol.for("xx");b=symbol.for("xx"); a = Symbol("xx");<==這是常見錯誤。不是 for 建立的 Symboy,keyFor 找不到 。 a = Symbol.for("xx"); 傳入整數,會以 1970 年 1 月 1 日 8 點為起點,開始以毫秒為單位做位移。 a = new Date(0); b = new Date(2000); c = new Date(-1000); a = new Date("2032/7/25/ 18:25"); //使用字串方式設定 a = new Date(2032, 7, 25, 13, 41, 0, 0); //年,[月[,日[,時[,分[,秒[,毫秒]]]]]]
星期定義
var a = Infinity; var b = -Infinity; var c = Number.POSITIVE_INFINITY; var d = Number.NEGATIVE_INFINITY; var e = 1/0; var f = -1/0; var a; let b; var c = undefined; <== 這會出現編譯錯誤,不是把 d 變成資料 undefined。 不存在 與 存在且未定義 (undefined) 兩者差別很大。 null == undefined (false) null === undefined (true) var a = null; NaN <==雖然說非數字,但是型態還是 Number。 var a=NaN; NaN==NaN 這邏輯很奇怪 "自己不等於自己",但細想,不是數字,有很多種狀況,可能是字串或是布林... 因此,字串不等於布林,就很正常了。 var a="1",b="A" <==以為會相等,但其實是錯誤。 由上可知,判斷 NaN 不能用 NaN 判斷,必須使用 isNaN()。 var a="1"; var b=NaN; |