JavaScript global – các hàm, hằng mặc định trong JavaScript

2177

Tổng hợp các hàm, hằng có thể sử dụng toàn cục trong lập trình JavaScript.

Các hằng mặc định trong JavaScript

Infinity

Infinity là hằng đại diện cho số âm/dương vô cực. Giống như ký hiệu ∞ trong toán học vậy.

// Trong JS, một số chia cho 0 sẽ bằng Infinity
var n = 10;
n/10 == Infinity; // true;

NaN

NaN (Not a Number) là hằng mang giá trị “không phải là số”. Tuy nhiên bạn không thể sử dụng hằng số này để kiểm tra một biến có phải là số hay không, chi tiết hãy xem ví dụ dưới.

// a được khai báo là một string, rõ ràng nó không phải là số.
var a = "string";

// Tuy nhiên a không thể bằng NaN, bởi a và NaN hai giá trị khác nhau
// NaN mang giá trị "không phải là số" chứ nó không đại diện cho các giá trị không phải là số
// Js hại não vậy đó.
a == NaN; // false;

undefined

undefined là hằng đại diện cho một biến chưa được khai báo giá trị

var a;
if (a === undefined) {
    console.log("a is undefined");
} else {
    console.log("a defined");
}

/*
Ouput:

a is undefined
 */

Các hàm mặc định trong JavaScript

encodeURI()

encodeURI() được sử dụng để mã hóa một URI.

Cú pháp: encodeURI(uri). Trong đó uri chính là uri bạn cần mã hóa.

var uri = "my test.asp?name=ståle&car=saab";
var res = encodeURI(uri);
console.log(res); // "my%20test.asp?name=st%C3%A5le&car=saab"

decodeURI()

decodeURI() được sử dụng khi bạn cần giải mã một URI.

Cú pháp: decodeURI(uri). Trong đó uri chính là uri cần giải mã.

var encodedUri = "my%20test.asp?name=st%C3%A5le&car=saab";
var decodedUri = decodeURI(encodedUri);
console.log(decodedUri); // "my test.asp?name=ståle&car=saab"

encodeURIComponent()

encodeURIComponent() được sử dụng khi bạn muốn mã hóa URI trở thành một phần của URI khác.

Cú pháp: encodeURIComponent(uri). Trong đó uri chính là uri cần mã hóa.

var uri = "https://w3schools.com/my test.asp?name=ståle&car=saab";
var res = encodeURIComponent(uri);
console.log(res); // "https%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab"

decodeURIComponent()

decodeURIComponent() được sử dụng khi bạn muốn giải mã một phần URI khác.

Cú pháp: decodeURIComponent(uri). Trong đó uri chính là URI cần giải mã.

var encodedUri = "https%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab";
var decodedUri = decodeURIComponent(encodedUri);
console.log(decodedUri); // "https://w3schools.com/my test.asp?name=ståle&car=saab"

Tìm hiểu về Sự khác biệt giữa encodeURI và encodeURIComponent trong JavaScript

escape()

escape() đã không còn được sử dụng từ phiên bản JavaScript 1.5. Thay vào đó bạn hãy sử dụng encodeURI() hoặc encodeURIComponent().

eval()

eval() được sử dụng khi bạn muốn chạy một đoạn code JavaScript dưới dạng một string.

Cú pháp: eval(javaScriptString). Trong đó javaScriptString chính là đoạn code JavaScript cần chạy.

var x = 10;
var y = 20;
var a = eval("x * y");
console.log(a); // 200

isFinite()

isFinite() được sử dụng khi bạn muốn kiểm tra một số có phải là số hữu hạn hay không? Nếu là số hữu hạn sẽ trả về true, ngược lại trả về false.

Cú pháp: isFinite(value). Trong đó value chính là giá trị cần kiểm tra.

isFinite(123); // true
isFinite(-1.23); // true
isFinite(5-2); // true
isFinite(0); // true
isFinite("123"); // true
isFinite("Hello"); // false
isFinite("2005/12/12"); // false
isFinite(+Infinity); // false
isFinite(-Infinity); // false
isFinite(NaN); // false

isNaN()

isNaN() được sử dụng khi bạn muốn kiểm tra một giá trị có phải là NaN hay không? Nếu là NaN (hoặc tương tự NaN) sẽ trả về true, ngược lại trả về false.

Cú pháp: isNaN(value). Trong đó value chính là giá trị cần kiểm tra.

isNaN(123); //false
isNaN(-1.23); //false
isNaN(5-2); //false
isNaN(0); //false
isNaN('123'); //false
isNaN('Hello'); //true
isNaN('2005/12/12'); //true
isNaN(''); //false
isNaN(true); //false
isNaN(undefined); //true
isNaN('NaN'); //true
isNaN(NaN); //true
isNaN(0 / 0); //true

Number()

Number() được sử dụng khi bạn muốn ép một giá trị bất kỳ về dạng số. Nếu không ép được, sẽ trả về NaN.

Cú pháp: Number(value). Trong đó value chính là giá trị muốn ép về kiểu số.

Number(true); // 1
Number(false); // 0
Number(new Date()); // 1579531129765 (timestamp of now)
Number("999"); // 999
Number("999 888"); // NaN

parseFloat()

parseFloat() được sử dụng khi bạn muốn chuyển một chuỗi thành một số dấu phẩy động. Hàm sẽ chỉ chuyển được nếu chuỗi được bắt đầu bằng số (không tính các dấu khoảng cách như space, tab) và lấy ra số đầu tiên. Nếu không sẽ trả về NaN.

Cú pháp: parseFloat(string). Trong đó string chính là chuỗi cần chuyển về số.

parseFloat("10"); // 10
parseFloat("10.00"); // 10
parseFloat("10.33"); // 10.33
parseFloat("34 45 66"); // 34
parseFloat(" 60 "); // 60
parseFloat("40 years"); // 40
parseFloat("He was 40"); // NaN

parseInt()

parseInt() được sử dụng khi bạn muốn chuyển một chuỗi về dạng số nguyên. Hàm sẽ chỉ chuyển được nếu chuỗi được bắt đầu bằng số (không tính các dấu khoảng cách như space, tab) và lấy ra số đầu tiên. Nếu không sẽ trả về NaN.

Cú pháp: parseInt(string, radix). Trong đó:

  • string: bắt buộc, là chuỗi cần ép về dạng số nguyên.
  • radix: không bắt buộc (một số từ 2 – 36) đại diện cho cơ số được sử dụng.

Nếu hàm parseInt() để trống tham số radix, thì cơ số sẽ được xác định dựa vào string như sau:

  • Nếu string bắt đầu với “0x” thì sẽ là cơ số 16.
  • Nếu string bắt đầu với bất kỳ số nào sẽ là cơ số 10.
  • Với một số trình duyệt cũ sử dụng phiên bản JavaScript cũ (cũ hơn ES5) thì string bắt đầu với “0” sẽ được coi là cơ số 8. Tuy nhiên các trình duyệt đó giờ không còn được dùng nữa.
parseInt("10"); // 10
parseInt("10.00"); // 10
parseInt("10.33"); // 10
parseInt("34 45 66"); // 34
parseInt(" 60 "); // 60
parseInt("40 years"); // 40
parseInt("He was 40"); // NaN
parseInt("10", 10); // 10
parseInt("010"); // 10
parseInt("10", 8); // 8
parseInt("0x10"); // 16
parseInt("10", 16); // 16

String()

String() được sử dụng khi bạn muốn ép một giá trị bất kỳ về dạng string

Cú pháp: String(object). Trong đó object chính là đối tượng cần ép sang string.

var x1 = Boolean(0);
var x2 = Boolean(1);
var x3 = new Date();
var x4 = "12345";
var x5 = 12345;

console.log(String(x1)); // 'false'
console.log(String(x2)); // 'true'
console.log(String(x3)); // 'Sat Feb 01 2020 02:36:44 GMT+0000 (Coordinated Universal Time)'
console.log(String(x4)); // '12345'
console.log(String(x5)); // '12345'

unescape()

unescape() đã không còn được sử dụng từ phiên bản JavaScript 1.5. Thay vào đó bạn hãy sử dụng decodeURI() hoặc decodeURIComponent().