Tôi sẽ bắt đầu sử dụng === (ba bằng, so sánh chặt chẽ) mọi lúc khi so sánh các giá trị chuỗi, nhưng bây giờ tôi thấy rằng
"foo" === new String("foo")
là false và tương tự với điều này:
var f = "foo", g = new String("foo");
f === g; // false
Tất nhiên:
f == g; // true
Vì vậy, có nên luôn sử dụng == để so sánh chuỗi hay luôn chuyển đổi các biến thành chuỗi trước khi so sánh không?
new String
(hoàn toàn vô nghĩa) thay vì sử dụng==
new String("foo")
trong Javascript ngay từ đầu? Tôi chưa bao giờ nhìn thấy mã ví dụ trong mã ví dụ jQuery ...
String(obj)
để chuyển đổi một chuỗi đóng hộp thành chuỗi nguyên thủy sau khi bạn nhận được tham số "chuỗi" của mình. ("foo" === String(new String("foo"))) === true
foo
là chuỗi tinh khiết vànew String("foo")
là đối tượng String