Trong hướng dẫn này, bạn sẽ tìm hiểu về JavaScript không bằng toán tử và các toán tử so sánh khác cùng với các ví dụ. Nội dung chính ShowShow - Mục lục - JavaScript không bằng:
- Các toán tử so sánh trong JS là gì?
- Những gì là! = Hồi trong JS?
- Với cách sử dụng rộng lớn của nó, mọi nhà phát triển nên hiểu chức năng của từng nhà điều hành. Bài viết này là một điểm khởi đầu tốt cho cùng một điều, tuy nhiên, chúng tôi nhấn mạnh nhiều hơn về các toán tử JavaScript không bằng (! = &! ==).
- Cả hai nhà khai thác này giải quyết các mục đích khác nhau và do đó tôi khuyên bạn nên thực hành chúng để tạo điều kiện cho sự hiểu biết thêm.
- Với cách sử dụng rộng lớn của nó, mọi nhà phát triển nên hiểu chức năng của từng nhà điều hành. Bài viết này là một điểm khởi đầu tốt cho cùng một điều, tuy nhiên, chúng tôi nhấn mạnh nhiều hơn về các toán tử JavaScript không bằng (! = &! ==).
- Cả hai nhà khai thác này giải quyết các mục đích khác nhau và do đó tôi khuyên bạn nên thực hành chúng để tạo điều kiện cho sự hiểu biết thêm.
- JavaScript không bằng hoặc toán tử bất bình đẳng (! =) Kiểm tra xem hai giá trị không bằng và trả về giá trị boolean. Nhà điều hành này cố gắng so sánh các giá trị bất kể chúng có thuộc các loại khác nhau hay không.
- Vấn đề
- Vài tips lời khuyên khi sử dụng
- Chuyển đổi sang giá trị boolean khi cần thiết
- Vấn đề
- Vài tips lời khuyên khi sử dụng
- Chuyển đổi sang giá trị boolean khi cần thiết
- Vài tips lời khuyên khi sử dụng
- Chuyển đổi sang giá trị boolean khi cần thiết
Mục lục - JavaScript không bằng:- Các toán tử so sánh trong JS là gì?
- Những gì là! = Hồi trong JS?
- Với cách sử dụng rộng lớn của nó, mọi nhà phát triển nên hiểu chức năng của từng nhà điều hành. Bài viết này là một điểm khởi đầu tốt cho cùng một điều, tuy nhiên, chúng tôi nhấn mạnh nhiều hơn về các toán tử JavaScript không bằng (! = &! ==).
- Cả hai nhà khai thác này giải quyết các mục đích khác nhau và do đó tôi khuyên bạn nên thực hành chúng để tạo điều kiện cho sự hiểu biết thêm.
Các toán tử so sánh trong JS là gì?Những gì là! = Hồi trong JS? Với cách sử dụng rộng lớn của nó, mọi nhà phát triển nên hiểu chức năng của từng nhà điều hành. Bài viết này là một điểm khởi đầu tốt cho cùng một điều, tuy nhiên, chúng tôi nhấn mạnh nhiều hơn về các toán tử JavaScript không bằng (! = &! ==). Những gì là! = Hồi trong JS?Với cách sử dụng rộng lớn của nó, mọi nhà phát triển nên hiểu chức năng của từng nhà điều hành. Bài viết này là một điểm khởi đầu tốt cho cùng một điều, tuy nhiên, chúng tôi nhấn mạnh nhiều hơn về các toán tử JavaScript không bằng (! = &! ==). Cả hai nhà khai thác này giải quyết các mục đích khác nhau và do đó tôi khuyên bạn nên thực hành chúng để tạo điều kiện cho sự hiểu biết thêm. JavaScript không bằng hoặc toán tử bất bình đẳng (! =) Kiểm tra xem hai giá trị không bằng và trả về giá trị boolean. Nhà điều hành này cố gắng so sánh các giá trị bất kể chúng có thuộc các loại khác nhau hay không. Với cách sử dụng rộng lớn của nó, mọi nhà phát triển nên hiểu chức năng của từng nhà điều hành. Bài viết này là một điểm khởi đầu tốt cho cùng một điều, tuy nhiên, chúng tôi nhấn mạnh nhiều hơn về các toán tử JavaScript không bằng (! = &! ==).console.log(5 != 10);
// expected output: true
console.log(10 != 10);
// expected output: false
console.log(10 != '10');
// expected output: false
console.log(10 !== '10');
// expected output: true
Cả hai nhà khai thác này giải quyết các mục đích khác nhau và do đó tôi khuyên bạn nên thực hành chúng để tạo điều kiện cho sự hiểu biết thêm. JavaScript không bằng hoặc toán tử bất bình đẳng (! =) Kiểm tra xem hai giá trị không bằng và trả về giá trị boolean. Nhà điều hành này cố gắng so sánh các giá trị bất kể chúng có thuộc các loại khác nhau hay không. Cả hai nhà khai thác này giải quyết các mục đích khác nhau và do đó tôi khuyên bạn nên thực hành chúng để tạo điều kiện cho sự hiểu biết thêm.JavaScript không bằng hoặc toán tử bất bình đẳng (! =) Kiểm tra xem hai giá trị không bằng và trả về giá trị boolean. Nhà điều hành này cố gắng so sánh các giá trị bất kể chúng có thuộc các loại khác nhau hay không. - Vấn đề
- Vài tips lời khuyên khi sử dụng
- Chuyển đổi sang giá trị boolean khi cần thiết
- So sánh với toán tử logic // all true false == 0; 0 == ''; null == undefined; [] == false; !![0] == true; // all false false == null; NaN == NaN; Infinity == true; [] == true; [0] == true; 3
- Tránh so sánh trực tiếp giá trị
- Sử dụng // all true false == 0; 0 == ''; null == undefined; [] == false; !![0] == true; // all false false == null; NaN == NaN; Infinity == true; [] == true; [0] == true; 3 thay cho var a = 1; //kiểu int var b = '2'; //kiểu string console.log(a > b); //kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int` console.log(b + a); // kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21') 4
Với cách sử dụng rộng lớn của nó, mọi nhà phát triển nên hiểu chức năng của từng nhà điều hành. Bài viết này là một điểm khởi đầu tốt cho cùng một điều, tuy nhiên, chúng tôi nhấn mạnh nhiều hơn về các toán tử JavaScript không bằng (! = &! ==).console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
Cả hai nhà khai thác này giải quyết các mục đích khác nhau và do đó tôi khuyên bạn nên thực hành chúng để tạo điều kiện cho sự hiểu biết thêm.Tuy nhiên, nhà điều hành bất bình đẳng hoặc bất bình đẳng nghiêm ngặt không cố gắng làm như vậy và trả về sai nếu các giá trị không đồng đều hoặc thuộc các loại khác nhau. Cả hai nhà khai thác này giải quyết các mục đích khác nhau và do đó tôi khuyên bạn nên thực hành chúng để tạo điều kiện cho sự hiểu biết thêm. Vấn đềJavascript là ngôn ngữ lập trình không quy định chặt chẽ về kiểu dữ liệu của biến (Weakly Typed Language). Do vậy, tùy vào trường hợp được sử dụng mà giá trị biến trong Javascript sẽ được hiểu theo kiểu dữ liệu thích hợp. Ví dụ: var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
So sánh với toán tử logic // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
3truthy và falsy.var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
truthy và falsy.var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
Ngoại lệ duy nhất là var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
3 vẫn không tương đương với bất kỳ giá trị nào, kể cả chính nó.Vài tips lời khuyên khi sử dụngTránh so sánh trực tiếp giá trị
Khi cần so sánh một giá trị với // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
8, ít khi ta phải so sánh trực tiếp chúng với console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
0 hay console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2 mà chỉ cần xét đến giá trị đó là truthy hay falsy.Sử dụng // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
3 thay cho var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
4Khi cần so sánh hai giá trị có giống nhau hay không ta nên dùng toán tử so sánh // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
3 (hoặc console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
11) thay cho var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
4 (hoặc console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
13) để tránh gặp vấn đề chuyển đổi kiểu giá trị.SÁU giá trị được coi là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
3, còn lại tất cả những giá trị khác không phải là những giá trị này đều được xem là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
4. SÁU giá trị được coi là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
3, còn lại tất cả những giá trị khác không phải là những giá trị này đều được xem là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
4. Chuyển đổi sang giá trị boolean khi cần thiết- Bất cứ giá trị nào cũng có thể chuyển đổi sang giá trị
// all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
8 bằng cách sử dụng toán tử console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
16. Sử dụng toán tử này cho var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
6 (console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2, var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
9, var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
00, var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
0, var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
2, var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
3) sẽ nhận được giá trị là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2, và được sử dụng khi muốn kiểm tra 2 giá trị cùng là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
4 hayconsole.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
3 hay không? var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
7- Tài liệu tham khảo
- Vấn đề
Javascript là ngôn ngữ lập trình không quy định chặt chẽ về kiểu dữ liệu của biến (Weakly Typed Language). Do vậy, tùy vào trường hợp được sử dụng mà giá trị biến trong Javascript sẽ được hiểu theo kiểu dữ liệu thích hợp.
Ví dụ: | So sánh với toán tử logic |
---|
// all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
3truthy và falsy.var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
| Ngoại lệ duy nhất là | var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
3 vẫn không tương đương với bất kỳ giá trị nào, kể cả chính nó. | Vài tips lời khuyên khi sử dụng | Tránh so sánh trực tiếp giá trị | Khi cần so sánh một giá trị với // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
8, ít khi ta phải so sánh trực tiếp chúng với | console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
0 hay console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2 mà chỉ cần xét đến giá trị đó là truthy hay falsy. | console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
0 hay console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2 mà chỉ cần xét đến giá trị đó là truthy hay falsy. | Sử dụng | Sử dụng |
// all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
3 thay cho var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
4Khi cần so sánh hai giá trị có giống nhau hay không ta nên dùng toán tử so sánh // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
3 (hoặc console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
11) thay cho var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
4 (hoặc console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
13) để tránh gặp vấn đề chuyển đổi kiểu giá trị.SÁU giá trị được coi là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
3, còn lại tất cả những giá trị khác không phải là những giá trị này đều được xem là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
4. Chuyển đổi sang giá trị boolean khi cần thiết- Bất cứ giá trị nào cũng có thể chuyển đổi sang giá trị
// all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
8 bằng cách sử dụng toán tử console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
16. Sử dụng toán tử này cho var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
6 (console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2, var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
9, var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
00, var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
0, var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
2, var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
3) sẽ nhận được giá trị là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2, và được sử dụng khi muốn kiểm tra 2 giá trị cùng là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
4 hayconsole.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
3 hay không? - Tài liệu tham khảo
- Ở 1 ví dụ khác, khi chương trình mong muốn giá trị của một biến được trả về dưới kiểu
// all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
8 , trong khi biến đó được định nghĩa với 1 kiểu khác thì giá trị của biến sẽ được hiểu theo 2 nhóm giá trị truthy và falsy. - Vậy thì truthy và falsy value là gì :-?
Định nghĩa "Bạn hãy cho biết truthy và falsy value trong Javascript là gì?" Có lẽ đây sẽ là 1 trong bộ câu hỏi được hỏi phổ biến trong các buổi phỏng vấn về Javascipt. Và ngay bản thân mình và 1 số các bạn khác sẽ lúng tung trước câu hỏi này vì bạn không nhớ được chính xác những giá trị đó hoặc là không biết về nó. Vì thế hôm nay mình đã quyết tâm củng cố thêm kiến thức cho chính mình và chia sẻ cho mọi người về vấn đề này, hy vọng sẽ giúp ích được các bạn phần nào. (bow)
Hiểu đơn giản thì ... var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
1 là những giá trị trong Javascript mà khi ép kiểu về Boolean thì sẽ cho ra giá trị là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
0. Ngược lại, console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
1 là những giá trị mà khi ép kiểu về Boolean thì cho ra giá trị là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2. - Trong Javascript có SÁU giá trị được coi là
console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
3, còn lại tất cả những giá trị khác không phải là những giá trị này đều được xem là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
4. - Cách nhớ kiểu dữ liệu thuộc truthy và falsy value
- Kiểu
console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
5 có giá trị console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
0 và console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2, vậy giá trị false chắc chắn là falsy value. - Kiểu
console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
8 chứa tất cả những con số. Nhưng có 2 giá trị đặc biệt là số không (0) và Not a Number (NaN), và nó đều là falsy value. truthy nhưng khi so sánh với console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
0 hay console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2 thì kết quả luôn trả về là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2. - Kiểu dữ liệu chuỗi truthy nhưng khi so sánh với
console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
0 sẽ cho kết quả là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2, so sánh với console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2 lại cho kết quả là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
0.
Ví dụ: // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
So sánh với toán tử logic // all true false == 0; 0 == ''; null == undefined; [] == false; !![0] == true; // all false false == null; NaN == NaN; Infinity == true; [] == true; [0] == true; 3
Ngoại lệ duy nhất là var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
3 vẫn không tương đương với bất kỳ giá trị nào, kể cả chính nó.Vài tips lời khuyên khi sử dụngTránh so sánh trực tiếp giá trịKhi cần so sánh một giá trị với // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
8, ít khi ta phải so sánh trực tiếp chúng với console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
0 hay console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2 mà chỉ cần xét đến giá trị đó là truthy hay falsy.truthy hay falsy.console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
1truthy hay falsy.console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
1Sử dụng // all true false == 0; 0 == ''; null == undefined; [] == false; !![0] == true; // all false false == null; NaN == NaN; Infinity == true; [] == true; [0] == true; 3 thay cho var a = 1; //kiểu int var b = '2'; //kiểu string console.log(a > b); //kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int` console.log(b + a); // kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21') 4Khi cần so sánh hai giá trị có giống nhau hay không ta nên dùng toán tử so sánh // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
3 (hoặc console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
11) thay cho var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
4 (hoặc console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
13) để tránh gặp vấn đề chuyển đổi kiểu giá trị.var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
0Chuyển đổi sang giá trị boolean khi cần thiếtBất cứ giá trị nào cũng có thể chuyển đổi sang giá trị // all true
false == 0;
0 == '';
null == undefined;
[] == false;
!![0] == true;
// all false
false == null;
NaN == NaN;
Infinity == true;
[] == true;
[0] == true;
8 bằng cách sử dụng toán tử console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
16. Sử dụng toán tử này cho var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
6 (console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2, var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
9, var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
00, var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
0, var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
2, var a = 1; //kiểu int
console.log(a == false) //khi so sánh `a` (kiểu `int`) với `false` (kiểu `boolean`) chương trình mong muốn a được hiểu theo kiểu `boolean`, khi đó giá trị truthy hay falsy của biến sẽ được xét đến
//kết quả trả về là `false`. Tại sao lại ra như vậy thì mình sẽ giải thích ở dưới nhé :D
3) sẽ nhận được giá trị là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
2, và được sử dụng khi muốn kiểm tra 2 giá trị cùng là console.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
4 hayconsole.log(5 == 10);
// expected output: false
console.log(10 === 10);
// expected output: true
console.log(10 ==='10');
// expected output: false
console.log(5 > 10);
// expected output: false
console.log(5 >= 5);
// expected output: false
console.log(5 < 10);
// expected output: true
console.log(5 <= 5);
// expected output: true
3 hay không?var a = 1; //kiểu int
var b = '2'; //kiểu string
console.log(a > b);
//kết quả trả về là `false`. Như vậy, biến `b` được hiểu với kiểu `int`
console.log(b + a);
// kết quả trả về là "21". Biến `a` được hiểu với kiểu `string` ('2' + '1' = '21')
7Tài liệu tham khảohttps://developer.mozilla.org https://www.sitepoint.com/automatically-optimize-responsive-images-in-gatsby/ https://medium.com/better-programming/javascript-bang-bang-i-shot-you-down-use-of-double-bangs-in-javascript-7c9d94446054
|