close
今天在學javascript的過程中看到一句百思不得其解的一句話
" 不要创建 String 对象。它会拖慢执行速度,并可能产生其他副作用 "
經過廣大前輩的討論後,來總結一下
我們拿兩個例子來說明:
let a = "abc";
let a = new String("abc");
其中第二句就是用String來創建一個新的導向。
簡單的來說 new String()在JS上是沒有意義的
如果用new String的話,type會是object,做比較時會很容易出錯
let a = new String('abc');
a == 'abc'; //true
a === 'abc' // false
== 是比較寬鬆的認定
=== 是較嚴格的認定,連變數的型態也要檢查
看以下的例子就可以很明顯地知道差別性在哪裡
在s1裡宣告一個新的String,但變數型態卻是Object物件
在s2裡宣告一個新的字串,變數型態是string字串
而s3跟s2一樣
後面在做比較時,s1 == s2之所以相等true是因為值相同
但在比較s1===s2時卻是false的,因為===較嚴謹。 需要值跟型類完全相同。
全站熱搜
留言列表