Miałem zamiar zacząć używać === (potrójne równa się, ścisłe porównanie) przez cały czas porównując wartości ciągów, ale teraz stwierdzam, że
"foo" === new String("foo")
jest fałszem i to samo z tym:
var f = "foo", g = new String("foo");
f === g; // false
Oczywiście:
f == g; // true
Czy więc zaleca się, aby zawsze używać == do porównywania ciągów, czy zawsze konwertować zmienne na ciągi przed porównaniem?
new String
(Całkowicie bezcelowe), zamiast używać==
new String("foo")
w JavaScript? Nigdy nie widziałem takiego kodu w kodzie tj.
String(obj)
do przekonwertowania łańcucha w ramce na prymityw po otrzymaniu parametru „string”. ("foo" === String(new String("foo"))) === true
foo
jest czystym ciągiem inew String("foo")
jest ciągiem obiektu