Javascript chuyển đổi chuỗi rỗng thành 0

Yêu thích của tôi là sử dụng

const string = 'string';

!!string; // true
Boolean[string]; // true
1. Đây cũng là phương pháp được đề xuất bởi hướng dẫn phong cách JavaScript của Airbnb 👍

Boolean[value];

!!value;

# Chuyển đổi giá trị thành Boolean

# Sợi dây

const string = 'string';

!!string; // true
Boolean[string]; // true

# Con số

const number = 100;

!!number; // true
Boolean[number]; // true

# Giá trị giả

Trong JavaScript, có 6 giá trị giả. Nếu bạn chuyển đổi bất kỳ thứ nào trong số này thành

const string = 'string';

!!string; // true
Boolean[string]; // true
2, nó sẽ trả về
const string = 'string';

!!string; // true
Boolean[string]; // true
3

false
undefined
null
NaN
0
"" [empty string]

Bất cứ thứ gì không có trong danh sách giả, sẽ trả về

const string = 'string';

!!string; // true
Boolean[string]; // true
4 👍

Thông tin thêm về điều này, bạn có thể đọc Ghi chú mã của tôi về giá trị sai

# Ví dụ

Áp dụng

const string = 'string';

!!string; // true
Boolean[string]; // true
1 trên các giá trị giả

!!false; // false
!!undefined; // false
!!null; // false
!!NaN; // false
!!0; // false
!!''; // false

Áp dụng

const string = 'string';

!!string; // true
Boolean[string]; // true
6 trên các giá trị giả

Boolean[value];

!!value;
1

# Cách hoạt động của
const string = 'string';

!!string; // true
Boolean[string]; // true
1

const string = 'string';

!!string; // true
Boolean[string]; // true
8 đầu tiên ép buộc giá trị thành boolean và nghịch đảo nó. Trong trường hợp này,
const string = 'string';

!!string; // true
Boolean[string]; // true
9 sẽ trả về
const string = 'string';

!!string; // true
Boolean[string]; // true
3. Vì vậy, để đảo ngược nó trở lại
const string = 'string';

!!string; // true
Boolean[string]; // true
4, chúng tôi đặt một
const string = 'string';

!!string; // true
Boolean[string]; // true
8 khác vào đó. Do đó, sử dụng gấp đôi
const string = 'string';

!!string; // true
Boolean[string]; // true
1

Boolean[value];

!!value;
9

# Coi chừng
const number = 100;

!!number; // true
Boolean[number]; // true
4

const string = 'string';

!!string; // true
Boolean[string]; // true
1

Lưu ý rằng

const number = 100;

!!number; // true
Boolean[number]; // true
5 nằm giữa dấu ngoặc kép
const number = 100;

!!number; // true
Boolean[number]; // true
6. Mặc dù nó ghi là
const string = 'string';

!!string; // true
Boolean[string]; // true
3, nhưng nó thực sự là một chuỗi. Tôi biết hầu hết các bạn sẽ không rơi vào trường hợp này, nhưng nếu bạn giống tôi, bạn có thể chỉ muốn cảnh giác với những mánh khóe hài hước mà mọi người có thể đang chơi với bạn 😂

# Đầu vào của cộng đồng

@tassoevan. Tôi thích lọc các giá trị giả từ các mảng như thế này.

const number = 100;

!!number; // true
Boolean[number]; // true
8

@fleonus. Tôi thích

const number = 100;

!!number; // true
Boolean[number]; // true
9 chỉ để tỏ ra ngầu và khiến mọi người thất vọng 😛

# Kiểm tra tốc độ

Đây là một bài kiểm tra mà tôi tìm thấy

boolean so với

Có vẻ như

const string = 'string';

!!string; // true
Boolean[string]; // true
1 nhanh hơn một chút so với
const string = 'string';

!!string; // true
Boolean[string]; // true
6

# Cái nào để sử dụng?

Tôi đã nhận được rất nhiều bình luận về bài đăng này. Một số người thích

const string = 'string';

!!string; // true
Boolean[string]; // true
6 vì nó rõ ràng hơn

Nhưng, Kyle Simpson từ You Don't Know JS, đã đề cập rằng cả hai đều rõ ràng

const number = 100;

!!number; // true
Boolean[number]; // true
0

Kyle Simpson. YDKJS - Ép buộc

Tôi không nghĩ rằng tôi có một câu trả lời tuyệt vời cho bạn. Bạn sẽ biết nhóm của bạn tốt hơn tôi làm. Tôi sẽ tiếp tục sử dụng

const string = 'string';

!!string; // true
Boolean[string]; // true
1 trong các dự án cá nhân của mình, vì nó ít phải gõ hơn và tôi hiểu cú pháp này. Nhưng nếu tôi ở trong một nhóm, tôi có thể chọn
const string = 'string';

!!string; // true
Boolean[string]; // true
6 vì tôi nghĩ hầu hết các nhà phát triển sẽ hiểu điều đó hơn. Cho dù bạn chọn cái nào, điều quan trọng nhất là phải nhất quán. Đừng lật giữa hai cái trong cơ sở mã của bạn. Chọn một và gắn bó với nó 💪

Đánh giá cao một bình luận tuyệt vời tôi nhận được

@patrick_developer. Tôi nói rằng một người nên hiểu cả hai chỉ trong trường hợp một người được trình bày với các cơ sở mã khác nhau sử dụng từng cơ sở. Kiên thức là sức mạnh

Nói cách khác, cái này không tốt hơn cái kia. Cái này tôi tranh luận là một sở thích hơn. Vì vậy, bạn không thể đi sai. Nhưng đừng tước đi sự hiểu biết của cả hai. Giống như Patrick đã nói, "Kiến thức là sức mạnh" 💪

# Tránh
false
undefined
null
NaN
0
"" [empty string]
5

Sử dụng Nguyên thủy thay vì Loại đối tượng

const number = 100;

!!number; // true
Boolean[number]; // true
4

CJJ. Điều đáng chú ý là

false
undefined
null
NaN
0
"" [empty string]
5 không phải là một boolean mà là một thể hiện của Boolean. Nguyên thủy rẻ hơn và nên được ưu tiên hơn loại đối tượng

CJJ.

false
undefined
null
NaN
0
"" [empty string]
7 trả về một loại đối tượng.
false
undefined
null
NaN
0
"" [empty string]
8 chỉ trả về một boolean nguyên thủy. Tôi nghi ngờ rằng
false
undefined
null
NaN
0
"" [empty string]
8 nhanh hơn
!!false; // false
!!undefined; // false
!!null; // false
!!NaN; // false
!!0; // false
!!''; // false
0 vì đây chỉ là một thao tác, nhưng cũng hoàn toàn có khả năng các trình duyệt triển khai tối ưu hóa sao cho khi nhìn thấy
const string = 'string';

!!string; // true
Boolean[string]; // true
1, chúng biết trực tiếp chuyển đối số sang một nguyên hàm boolean [thay vì thực sự thực hiện
!!false; // false
!!undefined; // false
!!null; // false
!!NaN; // false
!!0; // false
!!''; // false
2 hai lần trong một

CJJ. Nguyên thủy rẻ vì chúng không thay đổi nên bạn có thể chia sẻ tài liệu tham khảo và không phải giữ bất kỳ trạng thái nào trong trường hợp. Nó chỉ là

const string = 'string';

!!string; // true
Boolean[string]; // true
4 hoặc
const string = 'string';

!!string; // true
Boolean[string]; // true
3. Nhưng
false
undefined
null
NaN
0
"" [empty string]
7 là một đối tượng. Nó có địa chỉ bộ nhớ duy nhất của riêng nó và nó có thể giữ trạng thái bên trong duy nhất cho nó. Điều này có nghĩa là nó không thể chỉ giữ một tham chiếu đến một thể hiện đơn lẻ bất biến. Mọi lời gọi đến
false
undefined
null
NaN
0
"" [empty string]
7 đều khởi tạo một đối tượng hoàn toàn mới
!!false; // false
!!undefined; // false
!!null; // false
!!NaN; // false
!!0; // false
!!''; // false
7

Cảm ơn. CJJ

# Xóa chuỗi rỗng bằng Boolean Constructor

CJJ. Đây là ví dụ kinh điển. Nếu bạn nhận được một danh sách các giá trị chuỗi được phân tách bằng dấu phẩy và bạn muốn lọc ra các chuỗi trống, bạn có thể chuyển hàm tạo Boolean vào Array. nguyên mẫu. bộ lọc và nó sẽ tự động loại bỏ các chuỗi có độ dài bằng 0 để lại một mảng chỉ các chuỗi hợp lệ

Là chuỗi rỗng 0 trong Javascript?

Bởi vì chuỗi trống được biểu thị dưới dạng số bằng 0 . Nếu bạn so sánh táo và cam, bạn nên nghĩ xem quả cam cụ thể của bạn sẽ trông như thế nào nếu nó là một quả táo. Lưu câu trả lời này.

parseInt của chuỗi rỗng là gì?

Nếu parseInt[] được cung cấp một chuỗi rỗng hoặc giá trị null thì nó cũng sẽ trả về NaN, thay vì chuyển chúng thành 0 . Điều này cung cấp cho chúng tôi một cơ chế để chúng tôi có thể kiểm tra các giá trị bằng cách sử dụng kết hợp parseInt[] và isNaN[]. Cuối cùng, nếu chúng ta cung cấp cho isNaN[] và parseInt[] một giá trị không xác định thì kết quả như sau.

Giá trị của một chuỗi rỗng là gì?

Chuỗi rỗng là một thể hiện của chuỗi độ dài bằng 0 , trong khi chuỗi rỗng không có giá trị gì cả. Một chuỗi rỗng được biểu thị là "". Đó là một chuỗi ký tự gồm 0 ký tự.

parseInt trả về cái gì nếu không phải là một số?

Nếu parseInt gặp một ký tự không phải là một số trong cơ số đã chỉ định , thì nó sẽ bỏ qua ký tự đó và tất cả các ký tự tiếp theo và trả về giá trị số nguyên được phân tích cú pháp cho đến thời điểm đó.

Chủ Đề