Literal
Giá trị chữ (Literal), còn được gọi là giá trị trực tiếp, đề cập đến các giá trị dữ liệu được sử dụng trực tiếp trong chương trình.
// Giá trị Null trực tiếp
const n = null;
// Giá trị Undefined trực tiếp
const u = undefined;
// Giá trị Boolean trực tiếp
const b1 = true;
const b2 = false;
// Giá trị Number trực tiếp
const num = 1;
const nan = NaN;
// Giá trị String trực tiếp
const hello = 'xin chào';
const world = 'thế giới';
// Giá trị Regexp trực tiếp
const reg = /mẫu/;
// Giá trị Template Literal trực tiếp
const temp = `xin chào, ${world}`
ECMAScript mã nguồn được quét từ trái sang phải và được chuyển đổi thành một chuỗi các phần tử đầu vào, bao gồm các từ khóa, các ký tự điều khiển, ký tự kết thúc dòng, chú thích và khoảng trắng.
Tương tự, ECMAScript cũng định nghĩa một số từ khóa, các giá trị chữ và quy tắc tự động thêm dấu chấm phẩy vào cuối dòng.
Lập trình hướng đối tượng (Object Oriented Programming) là một phương pháp trong lập trình, bản chất của nó là quá trình tư duy trừu tượng và phương pháp hướng đối tượng được thể hiện thông qua việc xây dựng mô hình. Mô hình là một sự trừu tượng để phản ánh các đặc điểm của các đối tượng trong thế giới thực. Không thể có một mô hình nào phản ánh tất cả các đặc điểm cụ thể của các đối tượng khách quan, chỉ có thể trừu tượng một cách mô tả chung, tập trung và sâu sắc hơn về các đặc điểm của đối tượng trong phạm vi mà nó liên quan. Việc xây dựng mô hình dẫn đến sự trừu tượng sâu sắc hơn về nhận thức của con người về đối tượng.
JavaScript là một ngôn ngữ weakly typed hoặc còn được gọi là ngôn ngữ động. Điều này có nghĩa là bạn không cần khai báo kiểu dữ liệu của biến trước, kiểu dữ liệu sẽ được xác định tự động trong quá trình chạy chương trình.
Điều này cũng có nghĩa là bạn có thể sử dụng cùng một tên biến để lưu trữ các kiểu dữ liệu khác nhau:
Có một số phương pháp để kiểm tra kiểu dữ liệu:
typeof
instanceof
Object.prototype.toString
constructor
typeof
Toán tử typeof
trả về một chuỗi biểu thị kiểu dữ liệu chưa được tính toán của toán hạng.
JavaScript là một ngôn ngữ động, không cần khai báo kiểu dữ liệu trước như C/C++. Nó cho phép chuyển đổi kiểu dữ liệu ngầm định và chuyển đổi kiểu dữ liệu tường minh. Khi khai báo một biến, chúng ta chỉ cần sử dụng var
, let
, const
mà không cần quan tâm đến kiểu dữ liệu.
Toán tử số học được sử dụng để thực hiện các phép tính số học trên các giá trị số (literal hoặc biến) và trả về một giá trị số.
Các toán tử số học tiêu chuẩn bao gồm cộng +
, trừ -
, nhân *
và chia /
.
Khi các toán hạng là số thực, các toán tử này hoạt động giống như trong hầu hết các ngôn ngữ lập trình khác (lưu ý đặc biệt là chia cho 0 sẽ tạo ra Infinity
).
Một toán tử gán (assignment operator) gán giá trị của toán hạng bên phải cho toán hạng bên trái của nó.
Dưới đây là các toán tử gán được định nghĩa trong chuẩn ECMAScript:
*= /= %= += -= <<= >>= >>>= &= ^= |= **=
Toán tử dịch bit xem các toán hạng của nó như là một chuỗi nhị phân 32 bit (gồm các số 0 và 1) thay vì là các số thập phân, bát phân hoặc thập lục phân. Ví dụ: số thập phân 9
được biểu diễn nhị phân là 1001
, toán tử dịch bit sẽ thực hiện các phép toán trên biểu diễn nhị phân này, nhưng kết quả trả về là một giá trị số chuẩn của JavaScript.