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的,因為===較嚴謹。 需要值跟型類完全相同。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 A&B 的頭像
    A&B

    網頁前端新手上路辛酸史

    A&B 發表在 痞客邦 留言(0) 人氣()