Một Số Khái Niệm Kỳ Lạ Về JavaScript

java

Trong bài viết này, chúng ta sẽ xem xét một số khái niệm lạ và kỳ lạ về Javascript. Một số có thể bạn biết và một số có thể không. Vì vậy, hãy theo dõi cho đến khi kết thúc.

Không xác định

Ở chế độ không nghiêm ngặt, điều đó thực sự có thể xảy ra (mặc dù thật khó tin!) để gán giá trị cho số nhận dạng không xác định được cung cấp toàn cầu:

Tuy nhiên, trong cả chế độ không nghiêm ngặt và chế độ nghiêm ngặt, bạn có thể tạo một biến cục bộ của tên không xác định. Nhưng một lần nữa, đây là một ý tưởng khủng khiếp!

Không phải số (NaN)

Bất kỳ phép toán toán nào bạn thực hiện mà không có cả hai toán hạng là số (hoặc giá trị có thể được hiểu là số thông thường trong cơ số 10 hoặc cơ số 16) sẽ dẫn đến thao tác không tạo ra số hợp lệ, trong trường hợp đó bạn sẽ nhận được giá trị NaN.

Nói cách khác, 'loại không phải số là số!' Hoan hô những cái tên và ngữ nghĩa khó hiểu.

Đủ dễ dàng, phải không? Tôi đã sử dụng tiện ích toàn cầu tích hợp sẵn có tên isNaN (..) và nó cho chúng tôi biết giá trị có phải là NaN hay không. Vấn đề đã được giải quyết! Không quá nhanh.

Tiện ích isNaN (..) có một lỗ hổng nghiêm trọng. Có vẻ như nó đã cố gắng hiểu theo nghĩa đen của NaN (“Không phải số”) - công việc của nó về cơ bản là “kiểm tra xem thứ được chuyển vào không phải là một số hay là một số”. Nhưng điều đó không hoàn toàn chính xác:

Rõ ràng, "foo" theo nghĩa đen không phải là một con số. Đó là một chuỗi nhưng khi bạn thực hiện isNaN ("16") thì nó sẽ trả về false bởi vì khi javascript thực hiện chuyển đổi ngầm định, nó sẽ hoàn toàn chuyển đổi thành number, đó là lý do tại sao nó trả về false

Infinities

Các nhà phát triển từ các ngôn ngữ biên dịch truyền thống như C có lẽ đã quen với việc gặp lỗi trình biên dịch hoặc ngoại lệ thời gian chạy, chẳng hạn như chia cho 0 đối với một hoạt động như:

Tuy nhiên, trong JS, thao tác này được xác định rõ ràng và dẫn đến giá trị là Infinity (hay còn gọi là Number.POSITIVE_INFINITY). Không ngạc nhiên:

Zeros

Mặc dù nó có thể gây nhầm lẫn cho người đọc có đầu óc toán học, JavaScript có cả số 0 thông thường (hay còn gọi là số 0 dương +0) và số 0 âm. Trước khi tôi giải thích tại sao -0 tồn tại, chúng ta nên kiểm tra cách JS xử lý nó, vì nó có thể khá khó hiểu.

Bên cạnh việc được chỉ định theo nghĩa đen là -0, số 0 âm cũng là kết quả của một số phép toán toán học nhất định. Ví dụ:

Hãy xem thêm một số ví dụ về số zeros:

Null

Vì vậy, như chúng ta biết typeof là một toán tử, bằng cách đó chúng ta kiểm tra kiểu của một biến như sau:

Như bạn có thể nhận thấy, tôi đã loại trừ null khỏi danh sách trên. Nó đặc biệt — đặc biệt theo nghĩa là nó có lỗi khi được kết hợp với toán tử typeof:

Sẽ rất tuyệt (và đúng!) Nếu nó trả về null, nhưng lỗi ban đầu này trong JS đã tồn tại trong gần hai thập kỷ và có khả năng sẽ không bao giờ được sửa vì có rất nhiều nội dung web hiện có dựa trên hành vi lỗi của nó mà 'sửa 'Lỗi sẽ tạo ra nhiều' lỗi 'hơn và phá vỡ nhiều phần mềm web.

Null là giá trị nguyên thủy duy nhất falsy nhưng cũng trả về object từ kiểm tra typeof.

BONUS

Giá trị giả là gì?

Giá trị falsy (đôi khi được viết là falsey) là một giá trị được coi là sai khi gặp trong ngữ cảnh Boolean.

Giá trị Chân lý là gì?

Trong JavaScript, giá trị true là giá trị được coi là true khi gặp trong ngữ cảnh Boolean.

Tổng kết

Nó không phải là kết thúc, có rất nhiều thứ như thế này mà tôi sẽ đề cập đến nó trong tương lai, Vì vậy, hãy cân nhắc để làm theo. Và nếu bạn học được điều gì đó mới thì hãy đồng ý.

Có thể bạn sẽ thích

490538145_1238192514982886_1951487262203775360_n
27 April 2025

Website là nhân viên bán hàng 24/7

Website – “Nhân viên bán hàng” đỉnh cao: Làm việc 24/7, không lương, không nghỉ phép! Trong kinh doanh hiện đại, bạn không cần phải tuyển thêm nhân viên bán hàng…Bạn chỉ cần một website…

491344078_1237791741689630_4529624967513042495_n
27 April 2025

Bạn Chỉ Cần Kinh Doanh Tốt – Còn Website Cứ Để Anothemes Lo!

Rất nhiều khách hàng hỏi chúng tôi: “Làm website có phức tạp không?”“Mình không rành công nghệ thì có làm được không?” Câu trả lời của Anothemes luôn rất đơn giản: 👉 Bạn không cần biết làm…

490347889_1236595275142610_2826540643201419510_n
26 April 2025

Website Không Phải Là Thứ "Xa Xỉ" – Mà Là Công Cụ Giúp BẠN NHÀN HƠN Khi Kinh Doanh Online

Trong thời đại số hiện nay, website không chỉ là một trang giới thiệu doanh nghiệp – mà là trợ thủ đắc lực giúp bạn giảm tải công việc, tăng hiệu quả bán hàng, và xây dựng…