Sự khác biệt giữa gấp đôi bằng nhau và gấp ba bằng nhau trong javascript

[00. 00. 15] Linters sẽ nói với bạn điều đó, sách sẽ nói với bạn điều đó, diễn giả sẽ nói với bạn điều đó, giáo viên sẽ nói với bạn điều đó. Có vẻ như tôi là người duy nhất đứng lên và nói, có lẽ chúng ta nên sử dụng cả hai. Có thể đôi khi bằng kép hữu ích, thực tế là, tôi nghĩ có một số thời điểm rất quan trọng khi nó hữu ích

[00. 00. 33] Vì vậy, tôi sẽ so sánh cách sử dụng của hai. Có bao nhiêu bạn đã nghe điều này trước đây, double equals kiểm tra giá trị và triple equals kiểm tra giá trị và loại? . Đây là người đàn ông phổ biến nhất, nếu bạn muốn, mô tả cho điều này

[00. 00. 51] Thật không may, nó sai. Đó hoàn toàn không phải là sự khác biệt giữa hai toán tử đó. Làm sao tôi biết? . Hóa ra, sự khác biệt giữa chúng là số bằng kép cho phép cưỡng chế và số bằng ba không cho phép cưỡng chế. Cả hai đều kiểm tra bình đẳng. Một trong số chúng cho phép cưỡng chế xảy ra trước và một trong số chúng thì không

[00. 01. 16] Và chỉ một sự thật đơn giản đó đã sắp xếp lại toàn bộ cuộc tranh luận này. Nó sắp xếp lại cuộc tranh luận này như một câu hỏi, trong sự so sánh cụ thể này, liệu nó có hữu ích hoặc hữu ích cho tôi, hoặc dễ đọc hơn đối với tôi, để cho phép sự ép buộc xảy ra? . Trong sự so sánh cụ thể này, liệu một sự ép buộc có rắc rối không, nó có gây rắc rối cho tôi không?

[00. 01. 41] Nếu vậy, không cho phép cưỡng chế. Tránh dùng dấu bằng kép và thay vào đó sử dụng dấu bằng ba. Câu hỏi không nên là cái nào đúng và cái nào sai?

[00. 01. 59] Chúng tôi đã xác định rằng sự ép buộc là hữu ích, chúng tôi đã xác định rằng sự ép buộc đôi khi có thể làm cho mã dễ đọc hơn. Vì vậy, bạn chỉ cần quyết định xem so sánh cụ thể này có thể hưởng lợi từ sự ép buộc hay không. Mọi người đi cùng tôi không?
>> Kyle Simpson. Đây là thông số kỹ thuật cho số bằng kép, nó được gọi là thuật toán So sánh đẳng thức trừu tượng.

[00. 02. 23] Đây là toàn bộ của họ, thực sự là vậy. Điều này mà bạn đã được dạy như chiếc hộp ma thuật đen không thể học được này, dài mười dòng, và hầu hết trong số đó là thông số kỹ thuật, được chứ? . 99% đồng nghiệp của bạn

[00. 02. 41] Và đó là tất cả những gì tôi đã làm là đọc thông số kỹ thuật, nghe có vẻ gây sốc. Nó thực sự khá đơn giản. Ngay tại mục đầu tiên, số 1, chúng ta thấy chính xác những gì tôi đang nói đến, đó là nó kiểm tra loại. Đợi đã, tại sao double bằng kiểm tra loại?

[00. 03. 04] Vì hóa ra cả hai đều check type. Chỉ là họ khác nhau về những gì họ làm với thông tin đó, được chứ?
>> Kyle Simpson. Bây giờ ai đó đã hỏi trực tuyến về null. Bạn sẽ thấy các mục 2 và 3 gọi cụ thể là null và undefined. Họ nói nếu một trong số chúng là null và cái kia không xác định hoặc một trong số chúng không xác định và cái còn lại là null, nếu đúng như vậy, hãy trả về true.

[00. 03. 26] Nói cách khác, làm cho null và undefined bằng nhau một cách cưỡng chế và không có giá trị nào khác trong ngôn ngữ. Điều đó hóa ra là một thực tế thực sự hữu ích, thực sự. Một trong những sự thật yêu thích nhất của tôi về JavaScript, bởi vì tôi không thích sự nhầm lẫn khi có hai giá trị trống khác nhau, tôi thấy điều đó thật khó chịu

[00. 03. 47] Điều này có nghĩa là tôi có thể coi null và undefined là tương đương cưỡng bức. Tôi không cần phải có hai giá trị trống. Bất kể nó là null hay không xác định, tôi có thể cho phép ép buộc ẩn chi tiết không cần thiết đó, do đó làm cho mã của tôi đơn giản hơn.
>> Kyle Simpson. Tôi thấy một số cái nhìn hoài nghi trên khuôn mặt, không sao đâu.

[00. 04. 10] Bạn sẽ có cơ hội trong giây lát để thực hiện một bài tập mà bạn có thể tự mình thực hành bài tập này. Và hãy nhớ rằng tôi đã đề cập trước đó, thuật toán này thích so sánh số hơn. Đây là nơi chúng ta thấy điều đó.
>> Kyle Simpson. Nếu loại của một là số và loại kia là chuỗi, hãy đặt loại không phải là số thành số.

[00. 04. 30] Chúng ta chỉ thấy điều đó lặp đi lặp lại. Có một tùy chọn mặc định để so sánh các số. Điều đó không ghi đè giá trị rỗng và không xác định như chúng ta đã thấy nhưng nó cho biết nếu chúng ta có các giá trị nguyên thủy không phải là không xác định, hãy biến chúng thành số vì so sánh số sẽ hiệu quả hơn. Thời tiết hay không thì nó hiệu quả hơn, thực tế là một khi bạn học sẽ làm cho thuật toán này dễ đoán hơn, ngay cả khi bạn không thích kết quả, thì ít nhất nó cũng dễ đoán hơn

[00. 05. 02] Bạn theo dõi điều đó? . Tôi biết nó sẽ làm gì. Nó sẽ so sánh chúng như những con số.
>> Kyle Simpson. Vì vậy, đây là một số ví dụ. Tôi có một mảng trống và một chuỗi rỗng.

[00. 05. 24] Và đó sẽ là một hồi chuông cảnh báo rằng tôi không nên sử dụng ==, vì ở đây sự ép buộc sẽ rất nguy hiểm. Tránh dòng 3, thay vào đó làm dòng 6. Hãy so sánh với gấp ba, được chứ? . Tránh gấp đôi bằng nhau, đó là một dấu hiệu cảnh báo

[00. 05. 45] Tránh dấu bằng kép, sử dụng dấu bằng ba như dòng 14.
>> Kyle Simpson. Nhưng còn những trường hợp nó có thể hữu ích thì sao?
>> Kyle Simpson. Làm thế nào về cái này? .

[00. 06. 10] Tùy chọn đầu tiên của bạn là dòng 2, tức là, === 3 hoặc ===, trích dẫn, 3. Bây giờ, không còn nghi ngờ gì nữa, dòng đó rõ ràng hơn. Nhưng khi chúng ta so sánh dòng đó với dòng 6, dòng 6 cho phép xảy ra cưỡng chế, trong khi dòng 2 thì không. Vì vậy, câu hỏi của tôi dành cho bạn là, dòng nào trong hai dòng đó nhìn chung dễ đọc hơn?

[00. 06. 39] Bạn tự quyết định nhưng tôi cho rằng dòng 6 dễ đọc hơn. Bởi vì với mục đích của việc ra quyết định đó, loại giá trị cơ bản thực tế không phải là dữ kiện liên quan đối với tôi. Điều duy nhất quan trọng với tôi đó là, đó là một trong hai số 3

[00. 06. 59] Và tôi đang cho phép sự ép buộc che giấu phần còn lại của chi tiết không cần thiết đó. Hãy nhớ rằng tôi đã nói trước đó rằng mã dễ đọc nhất là mã mà tôi không cần phải đọc. Tôi không cần phải đọc hai so sánh khác nhau khi một so sánh là đủ. Và hoàn toàn không có trường hợp góc nào ở đây phải lo lắng

[00. 07. 18] Vì tôi biết nó sẽ là 3 hoặc chuỗi 3, vì vậy tôi hoàn toàn an toàn khi sử dụng dấu bằng kép và đơn giản hóa mã của mình.
>> Kyle Simpson. Bây giờ đó chỉ là một ví dụ vi mô nhỏ. Null và undefined là một ví dụ khác. Hãy nhớ rằng tôi đã nói, null và không xác định bằng nhau một cách cưỡng chế.

[00. 07. 35] Tôi có thể thực hiện kiểm tra so sánh ==null như dòng 7 và nó sẽ bắt trường hợp null hoặc không xác định như dòng 2, nhưng nó sẽ không bắt được bất kỳ trường hợp góc nào khác. Vì vậy, tôi có thể nói, gấp đôi bằng không hoặc tôi có thể nói gấp ba bằng không hoặc gấp ba bằng không xác định

[00. 07. 53] Tôi có thực sự muốn người đọc mã của mình hiểu rõ rằng có hai giá trị trống khác nhau cần quan tâm không? . Bây giờ những gì tôi nhận được ở đây là đó là những quyết định của tôi, chúng là những quyết định chủ quan của tôi giúp cải thiện những so sánh đó

[00. 08. 12] Và đây chỉ là những ví dụ nhỏ được rút ra từ những mẫu lớn hơn nhiều. Điều duy nhất mà tôi muốn bạn làm là rời khỏi cuộc thảo luận này và nói rằng, tôi sẽ suy nghĩ về nó một cách nghiêm túc, thế thôi. Tôi sẽ suy nghĩ về nó một cách nghiêm túc và đưa ra những quyết định đó. Trái ngược với, tôi sẽ tiếp tục làm điều tương tự mà tôi vẫn luôn làm bởi vì điều đó không quan trọng

[00. 08. 35] Nó quan trọng. Cách chúng tôi chọn để thể hiện mã của mình rất quan trọng. Và hiểu cách viết mã là bước đầu tiên để thể hiện nó tốt hơn.
>> Diễn giả 2. Vì vậy, trong trường hợp cụ thể này, nó thực sự phụ thuộc vào phong cách và sở thích của nhóm, chứ không phải-
>> Kyle Simpson. Tôi không chắc mình có hoàn toàn gọi đây là phong cách hay không nhưng nó chắc chắn là một quyết định mang tính thành ngữ cho đội.

[00. 09. 04] Nhóm có sẵn sàng nói rằng chúng tôi giao tiếp tốt hơn bằng cách ẩn thông tin loại không cần thiết ở những nơi này hay nhóm sẵn sàng nói rằng chúng tôi muốn rõ ràng? . Và cuối cùng bạn nói, chúng tôi muốn rõ ràng hơn về điều đó, bạn có phước lành của tôi

[00. 09. 22] Nhưng nếu nhóm của bạn chỉ nói, thì đó là những gì Kẻ nói dối nói với chúng tôi. Đối với tôi, đó không phải là một tiêu chuẩn đủ. cái đó có giúp ích không?

Sự khác biệt giữa == và === trong JavaScript là gì?

Sự khác biệt chính giữa toán tử == và === trong javascript là toán tử == thực hiện chuyển đổi kiểu của toán hạng trước khi so sánh, trong khi toán tử === . .

Sự khác biệt giữa các toán tử == và === là gì?

Sự khác biệt giữa == và === là. == chuyển đổi các giá trị 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

Cái nào nhanh hơn == hoặc === trong JavaScript?

Vì vậy, === nhanh hơn == trong Javascript . == so sánh nếu các giá trị giống nhau, nhưng nó cũng loại chuyển đổi trong so sánh. Những chuyển đổi loại đó làm cho == chậm hơn ===.

Bộ ba bằng nhau trong JavaScript là gì?

JavaScript === (Ba dấu bằng) Dấu ba bằng trong JavaScript có nghĩa là “bình đẳng không ép buộc kiểu”. Điều đó có nghĩa là, cả loại và giá trị phải bằng nhau. Lấy ví dụ kịch bản trong đó 0 là sai. So sánh 2 dấu bằng nhau thì mệnh đề sau đúng