Chúng ta đầu tiên gặp toán tử khi còn nhỏ học số học ở tiểu học. Toán tử là ký hiệu giữa hai toán hạng. Trong phát triển web, dùng toán tử so sánh hai giá trị xác định biểu thức đúng hay sai. Bài này xem toán tử so sánh (hay quan hệ) và bằng nhau - hai loại phổ biến nhất trong JavaScript.
Toán tử so sánh
Sẽ có lúc tạo logic giải quyết vấn đề cần dùng toán tử so sánh hoặc quan hệ để render có điều kiện thứ gì đó ra màn hình. Xem những cái phổ biến nhất trong mã. Đây là đối tượng dùng cho vài toán tử tiếp theo:
- in – dùng toán tử in xem có thuộc tính trong đối tượng không:
const cityData = { city: "San Jose", state: "California", area: 181.36, land: 178.24, water: 3.12, urban: 342.27, metro: 2694.61, elevation: 82, population: 1021795, timezone: "Los_Angeles/Pacific", website: "www.sanjoseca.gov" } console.log("metro" in cityData); //true console.log("country" in cityData); //false
- instanceof – dùng instanceof hỏi đối tượng có phải instance của class hoặc hàm constructor không.
function Class(subject, teacher, numStudents) { this.subject = subject; this.teacher = teacher; this.numStudents = numStudents; } const classroom = new Class('Academic Geometry', 'Jane Doe', 24); console.log(classroom instanceof Class); // expected output: true console.log(classroom instanceof Object); // expected output: true
- Nhỏ hơn ( < ), Nhỏ hơn hoặc bằng ( <= ) – Toán tử so sánh trả về true trong câu lệnh điều kiện nếu toán hạng A nhỏ hơn B. Thường thấy khi tạo vòng lặp for:
for(let i = 1; i <= n; i++) { // code here } for(let i = 0; i < arr.length; i++) { // code here }
- Lớn hơn ( > ), Lớn hơn hoặc bằng ( >= ) – Toán tử so sánh trả về true nếu toán hạng A lớn hơn B. Dùng thường khi tìm số lớn nhất trong mảng:
let maximum = -Infinity; for(let i = 0; i < arr.length; i++) { if(arr[i] >= maximum) { maximum = arr[i]; } }
Lưu ý: >= không giống =>. Cái sau dùng cho hàm mũi tên lớn (big arrow functions) trong cú pháp ES6.
Toán tử bằng nhau
Tương tự toán tử so sánh, toán tử bằng nhau cũng đánh giá thành giá trị Boolean khai báo biểu thức đúng hay sai.
Bằng nhau ( == ) vs. Đúng bản sắc ( === ) – Khi thấy dấu bằng ( = ) trong JavaScript, một dấu bằng là toán tử gán không phải thứ chúng ta quen ở lớp toán.
Hai dấu bằng chính là toán tử bằng nhau. Nó chỉ kiểm tra giá trị có bằng nhau bằng cách cố gắng chuyển giá trị sang kiểu dữ liệu của nhau. Đổi kiểu (type coercion).
console.log(8 == '8'); //true
Tương tự, nếu thấy dấu chấm than/kêu cùng một dấu bằng ( != ), gọi là toán tử không bằng nhau, so sánh hai giá trị xem toán hạng có không bằng nhau về số. Nó không kiểm tra kiểu.
console.log(8 != '4'); //true
Ngược lại, toán tử đúng bản sắc, ba dấu bằng ( === ), kiểm tra cả kiểu và số khi so sánh hai giá trị.
81% of participants stated they felt more confident about their tech job prospects after attending a bootcamp. Get matched to a bootcamp today.
The average bootcamp grad spent less than six months in career transition, from starting a bootcamp to finding their first job.
console.log(8 === '8'); //false console.log(8 === 8); //true
Giống như toán tử không bằng nhau, toán tử không đúng bản sắc ( !== ) kiểm tra toán hạng có không bằng nhau. Thêm vào đó, kiểm tra kiểu. Nếu đúng, điều kiện true trả về true. Nếu không, trả về false.
console.log(8 !== '8'); //true console.log(8 !== 8); //false
Tóm lại
Toán tử so sánh và bằng nhau thiết yếu xây dựng logic lập trình. Khi so sánh toán hạng trái với phải, dùng toán tử bằng nhau xem giá trị bằng nhau về kiểu, không kiểu, kiểu và số, hoặc không kiểu và số. Thêm vào đó, dùng toán tử so sánh giúp logic render giao diện người dùng (UI). Khi thoải mái với toán tử này, xem toán tử logic, toán tử ternary, toán tử bitwise!
Sẵn sàng thêm hướng dẫn JavaScript?
Xem những này!
JavaScript Ternary Operator: A Step-By-Step Guide
JavaScript Switch Case: A Step-By-Step Guide
JavaScript Syntax: A Guide for Beginners