- vừa được xem lúc

Một số trick và tip trong javascript

0 0 15

Người đăng: Nguyen Khac Thang

Theo Viblo Asia

js_trick_tip Đối với một coder web, chắc hẳn chúng ta không còn lạ lẫm gì với javascript nữa nhỉ. Bài viết hôm nay chúng ta sẽ không bàn đến sức mạnh hay công dụng của javascript mà mình sẽ giới thiệu đến mọi người 1 số trick and tip không phải ai cũng biết trong javascript

1. Converting to number

Javascript là một ngôn ngữ loosely typed, có nghĩa là chúng ta sẽ không định dạng rõ kiểu của biến như là một số ngôn ngữ khác: C, C++,...
Cho nên nó cho phép chúng ta convert kiểu biến tùy vào từng ngữ cảnh. Việc convert 1 giá trị của biến thành số, đặc biệt là string thành số rất phổ biến

Dùng toán tử một ngôi +

typeof(+"10") // "number"

Phép toán một ngôi là một phép toán chỉ có một toán hạng. Toán hạng này đứng trước hoặc sau toán tử.

+true // 1
+false // 0
+null // 0

Number

Cú pháp Number(value) để convert 1 string hoặc 1 giá trị khác thành kiểu Number . Nếu không thể chuyển đổi được thì nó trả về giá trị NaN(Not a Number)

Number('10') // 10
Number('1.0') // 1
Number('1.1') // 1.1
Number('abc') // NaN

parseInt

Các bạn có thể tham khảo thêm vể các tham số tại parseInt()
Method này luôn luôn trả về 1 integer

parseInt('1234', 10) // 1234
parseInt('11 abc', 10) // 11
parseInt('abc 2', 10) // NaN
parseInt('10.81', 10) // 10

parseFloat

Nếu bạn muốn trả về 1 số thập phân thì có thể dùng parseFloat()

parseFloat('10.01') // 10.01
parseFloat('10.00') // 10
parseFloat('10 abc') // 10

2. Quản lý objects

Ở đây mình đề cập đến Destructuring, nó là 1 phần rất quan trọng trong ES6 và sử dụng rất thường xuyên
Nó cho phép ta trích xuất dữ liệu từ object và gán ngay vào biến

const test = {a: 100, b: 200}
const {a, b} = test
// Hoặc là đổi tên lại biến được gán
const {a: x, b: y} = test
console.log(x, y) // 100 200

Ngoài ra chúng ta còn có thể lấy được riêng lẻ 1 giá trị trong 1 object trả về của 1 function

const getUser = () => { return { firstName: 'Nguyen Khhac', lastName: 'Thang', age: 22 }
}
const { age } = getUser()
console.log(age) // 22

Bằng cách này chúng ta có thể return nhiều giá trị 1 lúc bằng cách return 1 object, và lấy ra 1 vài giá trị
Một tip nhở ở đây nếu như chúng ta muốn lấy toàn bộ object và loại bỏ 1 số thuộc tính thì:

const { age:_, ...user } = getUser()
console.log(user) // {firstName: "Nguyen Khac", lastName: "Thang"}

3. Hoán đổi giá trị của 2 biến

Nếu như bạn từng code các ngôn ngữ hướng cấu trúc như C thì việc hoán đổi này cần phải dùng biến tạm để lưu, ngoài ra dùng function thì chúng ta còn cần phải truyền con trỏ, khá phức tạp phải không (Hầu như cái gì liên quan đến con trỏ và địa chỉ ô nhớ đều rất phức tạp :v)
Trong javascript thì có 1 trick đơn giản như sau:

let a = 1, b = 2
[a, b] = [b, a] // a = 2, b = 1

4. Thiết lập giá trị mặc định

Variable

Ở đây mình muốn giới thiệu đến toán tử kết hợp nullish (??)
Đây là 1 toán tử logic mà trả về toán hạng bên phải khi toán hạng bên trái là null hoặc undefined

const variable = test ?? []

Parameters

const getCircle = (width, height = 100) => { return 2 * (width + height);
} const circle = getCircle(50);
console.log(circle); // 300

Giá trị height nếu như không được truyền vào thì sẽ lấy giá trị mặc định

Objects

const test = { height: 400 };
const { height = 750, width = 500 } = test;
console.log(height); // 400
console.log(width); // 500

Giá trị mặc định được gán khi thuộc tính đó undefined

5. Random 1 số nào đó trong khoảng

Muốn random 1 số nguyên trong khoảng cho trước ta có thể sử dụng Math.random(), vì Math.random() trả về 1 số thập phân trong [0, 1], nên ta thực hiện như sau:

const randomNumber = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);

6. Loại bỏ các mảng bị duplicates

Ta có thể kết hợp kiểu object Set với toán tử spread (...) để tạo mảng mới với các giá trị duy nhất

const array = [1, 1, 2, 4, 3, 2]
const uniqueArray = [...new Set(array)] // [1, 2, 4, 3]

7. Dynamic property names

Trong ES6 bạn có thể dùng 1 biến để làm key cho objects nhưu ví dụ sau:

const type = "a";
const item = { [type]: "b"
}; console.log(item); // {fruit: "b"}
item[type] // b
item["a"] // b
item.a // b

Trên đây mình đã giới thiệu 1 số tip & trick sử dụng trong javascript, mong rằng nó có giúp ích cho các bạn trong việc code sau này
Mình cũng không biết nhiều về js lắm nhưng mình cũng đang cố gắng học và sẽ cố gắng để viết một số bài chia sẻ lại chút hiểu biết của mình đến các bạn. Cảm ơn các bạn đã theo dõi.

Bình luận

Bài viết tương tự

- vừa được xem lúc

MOSH: Kẻ hủy diệt SSH

Lời nói đầu. Lời đầu tiên xin được xin chào cả nhà, đã lâu lắm rồi mình không viết blog nay May Fest mà người iu mình thích cái áo viblo quá nên xin phép nổ phát súng trên Viblo về Mosh - thứ khá hay

0 0 127

- vừa được xem lúc

Vòng đời và trạng thái của Thread

A. Giới thiệu.

0 0 119

- vừa được xem lúc

Giải quyết vấn đề N+1 trong quan hệ cha - con vô tận bằng Eager Loading

Vấn đề. Trong khi phát triển ứng dụng, chắc hẳn các bạn đã gặp phải trường hợp đệ quy cha-con trong khi phát triển các dự án, ví dụ như cây thư mục như sau:.

0 0 173

- vừa được xem lúc

Bạn tổ chức thư mục views cho các dự án Laravel như thế nào?

Hầu hết các ứng dụng Laravel có rất nhiều views. Một ứng dụng nhỏ sẽ không xảy ra vấn đề gì cả, tuy nhiều nếu dự án lớn dần theo thời gian, chúng ta sẽ gặp bế tắc trong việc tổ chức và sắp xếp các vie

0 0 192

- vừa được xem lúc

Sự khác nhau giữa những điều tưởng giống nhau - Phần 3

Hôm nay, để tiếp tục cho series so sánh, hãy cùng mình khám phá thêm 2 địa danh mới khá nổi tiếng của Việt Nam mình đó là Cù Lao Chàm và đảo Lý Sơn. .

0 0 100

- vừa được xem lúc

Một số thuật toán sắp xếp

Chắc hẳn ngồi trên ghế giảng đường đại học thì ai cũng sẽ được làm quen với thuật toán. Nghe thì thật là trừu tượng và mơ hồ, nhưng để tối ưu hóa những bài toán đặt ra thì bắt buộc các bạn phải học đế

0 0 159