2012-08-08 23 views
8

thể trùng lặp:
JavaScript === vs == : Does it matter which “equal” operator I use?Có cần sử dụng === để so sánh các chuỗi trong Javascript hoặc là == đủ không?

tôi có thể hiểu tại sao === là cần thiết khi so sánh con số, các phép toán luận, chuỗi rỗng, vv, do chuyển đổi loại hình bất ngờ ví dụ

var foo = 1; 
var bar = true; 
// bar == foo => true 
// bar === foo => false 

Nhưng có thể == bao giờ giới thiệu một lỗi khi so sánh một biến để một không trống chuỗi chữ? Sử dụng == có hiệu quả hơn === trong trường hợp này không?

+0

http://javascriptweblog.wordpress.com/2011/02/07/truth-equality-and-javascript/ – diEcho

+0

Loại bình đẳng phải giống hoặc nhanh hơn: http://stackoverflow.com/a/359509/453277 –

+0

toán tử bình đẳng ('==='). Nó kiểm tra các giá trị có cùng giá trị và cùng loại. Nhớ lại điều này. – diEcho

Trả lời

7

Điều này đã được yêu cầu ở đây rất nhiều vì vậy tôi sẽ chỉ để cho một poster tốt hơn sau đó bản thân mình trả lời.

Hãy xem ở đây: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html

3 dấu bằng có nghĩa là "bình đẳng không có loại ép buộc". Sử dụng ba bằng, các giá trị phải bằng nhau trong loại là tốt.

 
0==false // true 
0===false // false, because they are of a different type 
1=="1"  // true, auto type coercion 
1==="1" // false, because they are of a different type 

nguồnDifference between == and === in JavaScript

1

Vâng, tôi đã tự trả lời ... 5 == "5", nhưng 5! == "5", điều này có thể không mong muốn. Tôi sẽ cung cấp tín dụng cho bất cứ ai có một cái nhìn sâu sắc hơn mặc dù.

+0

Đó là câu trả lời ... – DerWaldschrat

4

Đó là một thực hành tốt để luôn sử dụng các nhà khai thác bản sắc (!=====) và thực hiện các kiểu ép buộc bằng tay chỉ khi bạn cần đến (ví dụ Boolean(someVar) hoặc Number(someVar)).

A fun fiddle.

0

"==" thực hiện chuyển đổi loại trước khi so sánh được thực hiện. Đó là lý do tại sao 5 == "5" là đúng và không sai.

Thay vào đó, "===" không chuyển đổi này sao cho 5 === "5" không giống với loại không giống nhau.

Các vấn đề liên quan