Tôi có nên luôn sử dụng === trong javascript không?
Bạn biết có hai toán tử so sánh đẳng thức khác nhau trong JavaScript. các toán tử Show
Hóa ra, có một cách đơn giản để quyết định nên sử dụng cái nào. Và logic tương tự cũng áp dụng cho các toán tử so sánh bất đẳng thức So sánh bằng và cùng loại với ===
Toán tử ba bằng ( Định nghĩa bình đẳng này là đủ cho hầu hết các trường hợp sử dụng. Khi so sánh chuỗi 0 thì kết quả sai như mong muốnCác nguồn như D. Crockford và cả hai đều khuyên rằng chỉ nên sử dụng toán tử bằng ba lần khi lập trình bằng JavaScript và bỏ qua hoàn toàn toán tử bằng hai lần Chuyển đổi loại phức tạp diễn ra với ==
Toán tử bằng kép ( Ví dụ: khi so sánh chuỗi 0, trước tiên, đối số đầu tiên được chuyển thành số
Mặc dù việc so sánh chuỗi và số là dễ hiểu, nhưng các quy tắc phức tạp cho các loại khác dẫn đến kết quả phi logic. Ví dụ: xem phần so sánh giữa 4, 5 và 6________số 8_______ Chỉ sử dụng ===Sử dụng toán tử so sánh đẳng thức ba bằng ( Lưu ý rằng các toán tử so sánh này dùng để so sánh các kiểu nguyên thủy. Để so sánh sự bình đẳng sâu sắc của các đối tượng hoặc mảng, cần có một cách tiếp cận khác để so sánh các toán hạng về mặt cấu trúc Nút không đợi cuộc gọi cơ sở dữ liệu của bạn kết thúc?Tìm hiểu cách cuộc gọi không đồng bộ hoạt động và làm cho ứng dụng của bạn chạy như bạn dự định. Nhận khóa học email ngắn về tính không đồng bộ và hai chương từ Hoàn thiện ứng dụng nút của bạn “Việc xác định xem hai biến có tương đương hay không là một trong những thao tác quan trọng nhất trong lập trình. ” Đó là theo Nicholas Zakas trong cuốn sách JavaScript dành cho nhà phát triển web của anh ấy Nói cách khác, trong suốt kịch bản của bạn, bạn có thể sẽ có những dòng giống như thế này if (x == y) { // do something here } Hoặc, nếu bạn đang tuân thủ các phương pháp hay nhất, điều này if (x === y) { // do something here } Sự khác biệt giữa hai ví dụ đó là ví dụ thứ hai sử dụng toán tử ba bằng, còn được gọi là “bằng nghiêm ngặt” hoặc “bằng giống hệt nhau” Những người mới bắt đầu sử dụng JavaScript cố gắng tuân theo các phương pháp hay nhất có thể đang sử dụng dấu bằng ba chứ không phải dấu bằng hai lần, nhưng có thể không hiểu đầy đủ sự khác biệt là gì hoặc tại sao việc sử dụng dấu ba lần lại quan trọng Có gì khác biệt?Trong phép so sánh sử dụng toán tử hai dấu bằng, kết quả sẽ trả về Mỗi giá trị JavaScript thuộc về một "loại" cụ thể. Những loại này là. Số, chuỗi, Booleans, hàm và đối tượng. Vì vậy, nếu bạn thử so sánh (ví dụ) một chuỗi với một số, trình duyệt sẽ cố gắng chuyển đổi chuỗi thành một số trước khi thực hiện so sánh. Tương tự, nếu bạn so sánh if (x === y) { // do something here }2 hoặc if (x === y) { // do something here }3 tương ứng Điều này có thể mang lại kết quả không thể đoán trước. Đây là vài ví dụ console.log(99 == "99"); // true console.log(0 == false); // true Mặc dù điều này thoạt đầu có thể là một điều tốt (vì trình duyệt dường như đang giúp ích cho bạn), nhưng nó có thể gây ra sự cố. Ví dụ console.log(' \n\n\n' == 0); // true console.log(' ' == 0); // true Vì lý do này, hầu hết các chuyên gia JavaScript khuyên bạn nên luôn sử dụng toán tử ba bằng và không bao giờ sử dụng hai bằng Toán tử ba bằng, như bây giờ bạn có thể đã hình dung ra, không bao giờ ép kiểu. Vì vậy, bất cứ khi nào bạn sử dụng ba dấu bằng, bạn đang so sánh chính xác các giá trị thực. Bạn đang đảm bảo các giá trị là 'hoàn toàn bằng nhau' hoặc 'giống hệt nhau' Điều này có nghĩa là, khi sử dụng ba dấu bằng, tất cả các ví dụ ở trên sẽ cho kết quả chính xác console.log(99 === "99"); // false console.log(0 === false); // false console.log(' \n\n\n' === 0); // false console.log(' ' === 0); // false Điều gì về sự bất bình đẳng?Khi thực hiện một biểu thức không bằng, các quy tắc tương tự sẽ được áp dụng. Ngoại trừ lần này, thay vì ba bằng vs. nhân đôi bằng, bạn đang sử dụng nhân đôi bằng với. Độc thân Dưới đây là các ví dụ tương tự ở trên, lần này được thể hiện bằng toán tử if (x === y) { // do something here }4 console.log(99 != "99"); // false console.log(0 != false); // false console.log(' \n\n\n' != 0); // false console.log(' ' != 0); // false Bây giờ hãy chú ý rằng kết quả mong muốn trong mỗi trường hợp phải là “true”. Thay vào đó, chúng sai — vì kiểu ép buộc Nếu đổi thành dấu bằng kép ta được kết quả đúng console.log(99 !== "99"); // true console.log(0 !== false); // true console.log(' \n\n\n' !== 0); // true console.log(' ' !== 0); // true Phần kết luậnNhư đã đề cập, có lẽ bạn đã sử dụng ba bằng khá độc quyền. Trong khi nghiên cứu bài viết này, bản thân tôi đã học được một vài điều về khái niệm này Tôi nghĩ rằng bản tóm tắt tốt nhất lại đến từ Zakas, sau khi khuyến nghị luôn sử dụng bằng nghiêm ngặt, anh ấy nói. “Điều này giúp duy trì tính toàn vẹn của loại dữ liệu trong toàn bộ mã của bạn. ” Tôi có nên luôn sử dụng ba giá trị bằng trong JavaScript không?Vì lý do này, hầu hết các chuyên gia JavaScript khuyên bạn nên luôn sử dụng toán tử dấu bằng ba lần và không bao giờ sử dụng dấu bằng kép. Toán tử ba bằng, như bây giờ bạn có thể đã hình dung ra, không bao giờ gõ ép buộc. Vì vậy, bất cứ khi nào bạn sử dụng ba dấu bằng, bạn đang so sánh chính xác các giá trị thực tế.
Tôi có nên sử dụng == hoặc === trong JavaScript không?= Vs == VS === trong JavaScript
. == trong JavaScript được dùng để so sánh hai biến, nhưng nó bỏ qua kiểu dữ liệu của biến . === được dùng để so sánh hai biến, nhưng toán tử này cũng kiểm tra kiểu dữ liệu và so sánh hai giá trị.
Tại sao bạn lại sử dụng === thay vì ==?Sự khác biệt giữa == và === là. == chuyển đổi các giá trị của biến thành cùng loại trước khi thực hiện so sánh . Điều này được gọi là ép buộc kiểu. === không thực hiện bất kỳ chuyển đổi loại nào (ép buộc) và chỉ trả về true nếu cả giá trị và loại giống hệt nhau đối với hai biến được so sánh.
Khi nào bạn sẽ sử dụng toán tử nhận dạng ===?Toán tử so sánh được gọi là Toán tử giống hệt nhau là dấu bằng ba “===”. Toán tử này cho phép so sánh chặt chẽ hơn nhiều giữa các biến hoặc giá trị đã cho . Toán tử này trả về true nếu cả hai biến chứa cùng thông tin và cùng kiểu dữ liệu, ngược lại trả về false. |