Làm cách nào để kiểm tra xem một giá trị là đúng hay sai trong JavaScript?

Nếu bạn cần kiểm tra xem một mảng chỉ có giá trị

const x = new Boolean(false);
if (x) {
  // this code is executed
}
6 trong JavaScript hay không, bạn có thể sử dụng
const x = new Boolean(false);
if (x) {
  // this code is executed
}
7 kết hợp với đối tượng toàn cầu
const x = new Boolean(false);
if (x) {
  // this code is executed
}
8

const validations = [
    true,
    false,
    '0',
    undefined
    null
];

const isEntirelyTrue = validations.every(Boolean);

// The above is equivalent to saying:
const isEntirelyTrue = validations.every(item => !!item);
const isEntirelyTrue = validations.every(item => item === true);

Đã sao chép vào khay nhớ tạm. Sao chép

Tìm cách để cải thiện kỹ năng của bạn?

Làm cách nào để kiểm tra xem một giá trị là đúng hay sai trong JavaScript?

Giải trình

Phương thức

const x = new Boolean(false);
if (x) {
  // this code is executed
}
9 kiểm tra xem tất cả các phần tử trong mảng có vượt qua bài kiểm tra được triển khai trong hàm gọi lại hay không. Đó chính xác là những gì chúng ta cần cho mục đích này. Nó luôn trả về một giá trị boolean. hoặc là
const x = new Boolean(false);
if (x) {
  // this code is executed
}
6 hoặc là
const x = false;
if (x) {
  // this code is not executed
}
1

Kết hợp điều này với toàn cầu

const x = new Boolean(false);
if (x) {
  // this code is executed
}
8, là trình bao bọc cho các giá trị boolean, chúng ta có thể nhận được hiệu ứng mong muốn. Nó trả về
const x = false;
if (x) {
  // this code is not executed
}
1 nếu giá trị là một trong

[0, -0, null, false, NaN, undefined, '']

Đã sao chép vào khay nhớ tạm. Sao chép

Bất kỳ giá trị nào khác sẽ tạo ra

const x = new Boolean(false);
if (x) {
  // this code is executed
}
6. Nó tương đương với việc phủ định kép một giá trị để chuyển nó thành giá trị boolean hoặc so sánh nó với boolean
const x = new Boolean(false);
if (x) {
  // this code is executed
}
6

Làm cách nào để kiểm tra xem một giá trị là đúng hay sai trong JavaScript?
Nếu bạn muốn xem thêm Webtips, hãy theo dõi @flowforfrank
Làm cách nào để kiểm tra xem một giá trị là đúng hay sai trong JavaScript?

Tại sao bạn cần biết về lập trình chức năng?

Mô hình lập trình đơn giản hóa mã của bạn
Cũng giống như lập trình hướng đối tượng, lập trình hàm cũng có những khái niệm riêng. Tìm hiểu cách bạn có thể áp dụng chúng vào JavaScript để làm cho mã của bạn tốt hơn

Đừng nhầm lẫn giữa các giá trị nguyên thủy của

const x = new Boolean(false);
if (x) {
  // this code is executed
}
8 là
const x = new Boolean(false);
if (x) {
  // this code is executed
}
6 và
const x = false;
if (x) {
  // this code is not executed
}
1 với các giá trị của
const x = new Boolean(false);
if (x) {
  // this code is executed
}
6 và
const x = false;
if (x) {
  // this code is not executed
}
1 của đối tượng
const x = new Boolean(false);
if (x) {
  // this code is executed
}
8

Bất kỳ đối tượng nào, bao gồm đối tượng

const x = new Boolean(false);
if (x) {
  // this code is executed
}
8 có giá trị là
const x = false;
if (x) {
  // this code is not executed
}
1, ước tính thành
const x = new Boolean(false);
if (x) {
  // this code is executed
}
6 khi được chuyển đến câu lệnh có điều kiện. Ví dụ: điều kiện trong câu lệnh
const x = false;
if (x) {
  // this code is not executed
}
9 sau ước tính thành
const x = new Boolean(false);
if (x) {
  // this code is executed
}
6

const x = new Boolean(false);
if (x) {
  // this code is executed
}

Hành vi này không áp dụng cho nguyên thủy

const x = new Boolean(false);
if (x) {
  // this code is executed
}
8. Ví dụ: điều kiện trong câu lệnh
const x = false;
if (x) {
  // this code is not executed
}
9 sau ước tính thành
const x = false;
if (x) {
  // this code is not executed
}
1

const x = false;
if (x) {
  // this code is not executed
}

Không sử dụng hàm tạo

const good = Boolean(expression);    // use this
const good2 = !!(expression);        // or this
const bad = new Boolean(expression); // don't use this!
4 với
const good = Boolean(expression);    // use this
const good2 = !!(expression);        // or this
const bad = new Boolean(expression); // don't use this!
5 để chuyển đổi giá trị không phải boolean thành giá trị boolean — thay vào đó, hãy sử dụng
const x = new Boolean(false);
if (x) {
  // this code is executed
}
8 làm hàm hoặc ký tự kép NOT

const good = Boolean(expression);    // use this
const good2 = !!(expression);        // or this
const bad = new Boolean(expression); // don't use this!

Nếu bạn chỉ định bất kỳ đối tượng nào, bao gồm đối tượng

const x = new Boolean(false);
if (x) {
  // this code is executed
}
8 có giá trị là
const x = false;
if (x) {
  // this code is not executed
}
1, làm giá trị ban đầu của đối tượng
const x = new Boolean(false);
if (x) {
  // this code is executed
}
8, thì đối tượng
const x = new Boolean(false);
if (x) {
  // this code is executed
}
8 mới có giá trị là
const x = new Boolean(false);
if (x) {
  // this code is executed
}
6

const myFalse = new Boolean(false);   // initial value of false
const g = Boolean(myFalse);           // initial value of true
const myString = new String('Hello'); // string object
const s = Boolean(myString);          // initial value of true

Cảnh báo. Bạn hiếm khi thấy mình sử dụng

const x = new Boolean(false);
if (x) {
  // this code is executed
}
8 làm hàm tạo

cưỡng chế Boolean

Nhiều hoạt động tích hợp mong đợi các phép toán luận trước tiên ép buộc các đối số của chúng thành các phép toán luận. Hoạt động có thể được tóm tắt như sau

  • Booleans được trả về nguyên trạng
  • const myFalse = new Boolean(false);   // initial value of false
    const g = Boolean(myFalse);           // initial value of true
    const myString = new String('Hello'); // string object
    const s = Boolean(myString);          // initial value of true
    
    3 biến thành
    const x = false;
    if (x) {
      // this code is not executed
    }
    
    1
  • const myFalse = new Boolean(false);   // initial value of false
    const g = Boolean(myFalse);           // initial value of true
    const myString = new String('Hello'); // string object
    const s = Boolean(myString);          // initial value of true
    
    5 biến thành
    const x = false;
    if (x) {
      // this code is not executed
    }
    
    1
  • const myFalse = new Boolean(false);   // initial value of false
    const g = Boolean(myFalse);           // initial value of true
    const myString = new String('Hello'); // string object
    const s = Boolean(myString);          // initial value of true
    
    7,
    const myFalse = new Boolean(false);   // initial value of false
    const g = Boolean(myFalse);           // initial value of true
    const myString = new String('Hello'); // string object
    const s = Boolean(myString);          // initial value of true
    
    8, và
    const myFalse = new Boolean(false);   // initial value of false
    const g = Boolean(myFalse);           // initial value of true
    const myString = new String('Hello'); // string object
    const s = Boolean(myString);          // initial value of true
    
    9 biến thành
    const x = false;
    if (x) {
      // this code is not executed
    }
    
    1;
  • [0, -0, null, false, NaN, undefined, '']
    52 biến thành
    const x = false;
    if (x) {
      // this code is not executed
    }
    
    1;
  • Biểu tượng biến thành
    const x = new Boolean(false);
    if (x) {
      // this code is executed
    }
    
    6
  • Tất cả các đối tượng trở thành
    const x = new Boolean(false);
    if (x) {
      // this code is executed
    }
    
    6

Ghi chú. Một hành vi kế thừa làm cho

[0, -0, null, false, NaN, undefined, '']
57 trả về
const x = false;
if (x) {
  // this code is not executed
}
1 khi được sử dụng như một giá trị luận lý, mặc dù nó là một đối tượng. Thuộc tính này là cũ và không chuẩn và không nên được sử dụng

Ghi chú. Không giống như các chuyển đổi loại khác như ép buộc chuỗi hoặc ép buộc số, ép buộc kiểu boolean không cố gắng chuyển đổi các đối tượng thành nguyên thủy

Nói cách khác, chỉ có một số ít giá trị bị ép buộc thành

const x = false;
if (x) {
  // this code is not executed
}
1 — những giá trị này được gọi là giá trị giả. Tất cả các giá trị khác được gọi là giá trị trung thực. Tính trung thực của một giá trị rất quan trọng khi được sử dụng với các toán tử logic, câu lệnh điều kiện hoặc bất kỳ ngữ cảnh boolean nào

Có hai cách để đạt được hiệu quả tương tự trong JavaScript

  • gấp đôi KHÔNG.
    [0, -0, null, false, NaN, undefined, '']
    70 phủ định
    [0, -0, null, false, NaN, undefined, '']
    71 hai lần, chuyển đổi
    [0, -0, null, false, NaN, undefined, '']
    71 thành boolean bằng thuật toán tương tự như trên
  • Hàm
    const good = Boolean(expression);    // use this
    const good2 = !!(expression);        // or this
    const bad = new Boolean(expression); // don't use this!
    
    4.
    [0, -0, null, false, NaN, undefined, '']
    74 sử dụng thuật toán tương tự như trên để chuyển đổi
    [0, -0, null, false, NaN, undefined, '']
    71

Lưu ý rằng tính trung thực không giống với việc ngang bằng với

const x = new Boolean(false);
if (x) {
  // this code is executed
}
6 hoặc
const x = false;
if (x) {
  // this code is not executed
}
1

[0, -0, null, false, NaN, undefined, '']
5

[0, -0, null, false, NaN, undefined, '']
78 là trung thực, nhưng nó cũng tương đương với
const x = false;
if (x) {
  // this code is not executed
}
1. Đó là sự thật, bởi vì tất cả các đối tượng là sự thật. Tuy nhiên, khi so sánh với
const x = false;
if (x) {
  // this code is not executed
}
1, vốn là nguyên thủy, thì
[0, -0, null, false, NaN, undefined, '']
78 cũng được chuyển đổi thành nguyên thủy, đó là
const x = false;
if (x) {
  // this code is not executed
}
62 đến
const x = false;
if (x) {
  // this code is not executed
}
63. So sánh chuỗi và booleans dẫn đến cả hai đều được chuyển đổi thành số và cả hai đều trở thành
const myFalse = new Boolean(false);   // initial value of false
const g = Boolean(myFalse);           // initial value of true
const myString = new String('Hello'); // string object
const s = Boolean(myString);          // initial value of true
7, vì vậy
const x = false;
if (x) {
  // this code is not executed
}
65 là
const x = new Boolean(false);
if (x) {
  // this code is executed
}
6. Nói chung, sự giả tạo và
const x = false;
if (x) {
  // this code is not executed
}
67 khác nhau trong các trường hợp sau

  • const myFalse = new Boolean(false);   // initial value of false
    const g = Boolean(myFalse);           // initial value of true
    const myString = new String('Hello'); // string object
    const s = Boolean(myString);          // initial value of true
    
    9,
    const myFalse = new Boolean(false);   // initial value of false
    const g = Boolean(myFalse);           // initial value of true
    const myString = new String('Hello'); // string object
    const s = Boolean(myString);          // initial value of true
    
    3, và
    const myFalse = new Boolean(false);   // initial value of false
    const g = Boolean(myFalse);           // initial value of true
    const myString = new String('Hello'); // string object
    const s = Boolean(myString);          // initial value of true
    
    5 là sai nhưng không hoàn toàn bằng với
    const x = false;
    if (x) {
      // this code is not executed
    }
    
    1
  • const x = new Boolean(false);
    if (x) {
      // this code is executed
    }
    
    82 (và các chuỗi ký tự khác không phải là
    const x = false;
    if (x) {
      // this code is not executed
    }
    
    62 nhưng bị ép thành 0) là đúng nhưng đại khái là bằng với
    const x = false;
    if (x) {
      // this code is not executed
    }
    
    1
  • Các đối tượng luôn trung thực, nhưng biểu diễn nguyên thủy của chúng có thể lỏng lẻo bằng
    const x = false;
    if (x) {
      // this code is not executed
    }
    
    1

Các giá trị trung thực thậm chí còn khó có thể bằng một cách lỏng lẻo hơn với

const x = new Boolean(false);
if (x) {
  // this code is executed
}
6. Tất cả các giá trị là trung thực hoặc sai, nhưng hầu hết các giá trị đều không bằng với cả
const x = new Boolean(false);
if (x) {
  // this code is executed
}
6 và
const x = false;
if (x) {
  // this code is not executed
}
1

Hàm tạo

const good = Boolean(expression);    // use this
const good2 = !!(expression);        // or this
const bad = new Boolean(expression); // don't use this!
4

Tạo một đối tượng

const x = new Boolean(false);
if (x) {
  // this code is executed
}
8 mới

Phương thức sơ thẩm

const x = new Boolean(false);
if (x) {
  // this code is executed
}
61

Trả về một chuỗi

const x = new Boolean(false);
if (x) {
  // this code is executed
}
6 hoặc
const x = false;
if (x) {
  // this code is not executed
}
1 tùy thuộc vào giá trị của đối tượng. Ghi đè phương thức
const x = new Boolean(false);
if (x) {
  // this code is executed
}
64

Làm cách nào để kiểm tra xem một giá trị là đúng hay sai trong JavaScript?

Cú pháp. Thực hiện theo cú pháp dưới đây để kiểm tra biến kiểu Boolean bằng toán tử đẳng thức nghiêm ngặt. If( biến === true. biến === false ) { // biến có kiểu Boolean. }

Làm cách nào để kiểm tra xem một điều kiện có đúng trong JavaScript không?

Câu lệnh if/else thực thi một khối mã nếu một điều kiện cụ thể là đúng. Nếu điều kiện là sai, một khối mã khác có thể được thực thi. Câu lệnh if/else là một phần của Câu lệnh "Có điều kiện" của JavaScript, được sử dụng để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau.

Có đúng == đúng trong JavaScript không?

Làm cách nào để kiểm tra giá trị của biến trong JavaScript?

JavaScript có chức năng tích hợp sẵn để kiểm tra xem một biến đã được xác định/khởi tạo hay chưa xác định. Để làm điều này, chúng ta sẽ sử dụng toán tử typeof . toán tử typeof sẽ trả về undefined nếu biến không được khởi tạo và toán tử sẽ trả về null nếu biến bị bỏ trống một cách có chủ ý.