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

7 tính năng JavaScript bạn cần biết trước khi học React

0 0 27

Người đăng: No Name

Theo Viblo Asia

Giới thiệu

React là một thư viện JavaScript phổ biến để xây dựng giao diện người dùng. Nó được biết đến với Virtual DOM và Components. Tuy nhiên, trước khi bắt đầu học React, bạn cần phải hiểu rõ về JavaScript và các tính năng của nó. Vì vậy, bạn cần phải nắm rõ những điều cơ bản đó vì chúng sẽ giúp bạn làm việc với React dễ dàng hơn nhiều. Trong bài viết này, chúng tôi sẽ cung cấp cho bạn những hiểu biết cơ bản về tất cả các tính năng này mà bạn cần phải nắm rõ trước khi bạn bắt đầu học ReactJs.

1. Let and Const

Từ khóa let là một trong những tính năng hữu ích của ES6 trong JavaScript. Nó được sử dụng để khai báo các biến như từ khóa var. Nhưng từ khóa let là block scope, có nghĩa là không thể truy cập từ khóa bên ngoài phạm vi đó. Ví dụ:

var x = 1;
console.log(x); // x = 1
{ let a = 2; // Block scope. var y = 3; console.log(a); // a = 2 console.log(y); // y = 3
}
// a can NOT be used here
console.log(a) // error: a is not defined
console.log(x); // x = 1
console.log(y); // y = 3

Từ khoá const cũng tương tự như let, nó cũng là block scope nhưng nó được sử dụng cho các giá trị không đổi, có nghĩa là nó không thể thay đổi Ví dụ:

let name = "Mickey";
console.log(name); // Mickey
name = "John";
console.log(name); // John const name = "Mickey"; console.log(name); // Mickey
name = "John";
console.log(name); // error: Uncaught TypeError: Assignment to constant variable.

Lưu ý : Đối với Object và Array thì có thể thay đổi

Ví dụ:

// Object
const student = {name:"Peter", age:18, class:'12'};
console.log(student); // {name:"Peter", age:18, class:'12'}
student.name = "John";
console.log(student); // {name:"John", age:18, class:'12'} // Array
const name = ['Peter','John'];
console.log(name); // ['Peter','John']
name[1] = 'Miley';
console.log(name) // ['Peter','Miley']

Lưu ý: Khác với từ khóa var, letconst không hoisting

2. Arrow Function

Arrow function là một tính năng mới được giới thiệu trong ES6, là một cú pháp ngắn gọn hơn để viết các biểu thức hàm. Nó được sử dụng gần như rộng rãi vì cách viết ngắn gọn và dễ đọc. Ví dụ:

let name;
// Function declaration
function student(name) { return name;
}
console.log(student('John')); // John
// Arrow function
const student = (name) => { return name;
}
console.log(student('John')); // John

Như bạn thấy, ở đây tôi bỏ từ khóa function và thêm mũi tên => sau (). Các dấu ngoặc đơn vẫn được sử dụng để truyền các tham số hàm và nếu bạn chỉ có một tham số, bạn có thể bỏ dấu ngoặc đơn. Một cái hay của arrow function nữa đó là nếu arrow function của bạn chỉ có một dòng, bạn có thể trả về các giá trị mà không cần phải sử dụng từ khóa return và dấu ngoặc nhọn {}. Ví dụ :

const testFunction = () => 'Hello world';
console.log(testFunction()); // Hello world

3. Destructuring Assignment

Một trong những cú pháp mới hữu ích nhất được giới thiệu trong ES6, Destructuring assignment chỉ đơn giản là sao chép một phần của một Object hoặc Array và và gán nó cho nhiều biến riêng biệt. Ví dụ:

//Object
const user = { name: Peter', age: 18 };
console.log(user.name) // Peter
console.log(user.age); // 18
// Array
const numbers = [1,2];
console.log(numbers) // [1,2]
// Using the ES6 destructuring syntax:
const { name, age } = user;
console.log(name, age); // Peter, 18
const [one,two] = numbers;
console.log(one,two) // 1,2

4. Map, Filter, Reduce

1. Map

Phương thức map là cho phép bạn lặp qua một mảng và sửa đổi các phần tử của nó bằng cách sử dụng một hàm callback.Sau đó hàm callback sẽ được thực thi trên các phần tử của mảng.

Ví dụ:

const arr = [3, 4, 5, 6];
const modifiedArr = arr.map(function(element){ return element *3;
});
console.log(modifiedArr); // [9, 12, 15, 18]

2. Filter

Phương thức filter nhận từng phần tử trong một mảng và nó áp dụng một câu lệnh điều kiện đối với nó. Nếu điều kiện này trả về true, phần tử sẽ được đẩy vào mảng đầu ra. Nếu điều kiện trả về false, phần tử không được đẩy vào mảng đầu ra.

Ví dụ

const numbers = [1, 3, 6, 8, 11];
const lucky = numbers.filter(function(number) { return number > 7;
});
console.log(lucky); // [8,11]

3. Reduce

Phương thức reduce là lặp tất cả các phần tử trong mảng và trả về một kết quả cuối cùng.

Ví dụ:

const arr = [1,2,3];
const max = arr.reduce(function(a,b) { return Math.max(a, b);
});
console.log(max) // 3

5. ES6 Classes

Trong JavaScript, các lớp là một khuôn mẫu để tạo các đối tượng. Chúng được xây dựng trên các nguyên mẫu và chúng cung cấp một đường cú pháp dễ dàng để viết các hàm khởi tạo cho lập trình hướng đối tượng trong JavaScript.

Ví dụ:

class User { constructor(name,age) { this.name = name; this.age = age; }
}
const peter = new User('Peter', 18);
console.log(peter); // User { name: "Peter', age: 18 }

Kế thừa class trong Es6

Một lớp được tạo với kế thừa lớp sẽ kế thừa tất cả các phương thức từ một lớp khác.Để tạo một kế thừa lớp, hãy sử dụng từ khóa extend. Hãy xem ví dụ dưới đây, nơi chúng ta sẽ tạo một lớp có tên là “Role" sẽ kế thừa các phương thức từ lớp "User"

Ví dụ:

class User { constructor(name,age) { this.name = name; this.age = age; }
}
const peter = new User('Peter', 18);
console.log(peter); // User { name: "Peter', age: 18 } class Role extends User { constructor(name, age, role) { super(name, age); this.role = role }
}
const john = new Role('John', 18, 'admin');
console.log(john) // Role { name: "John", age: 18, role: "admin" }

6. Modules

Hệ thống mô-đun ES6 cho phép JavaScript để import và export file. Đó là một cách để dễ dàng chia sẻ code giữa các files Javascript và đó là điều đầu tiên bạn sẽ sử dụng trong React. Để sử dụng các mô-đun JavaScript, bạn phải cho trình duyệt biết rằng bạn đang sử dụng các mô-đun bên trong files Javascript của mình. Bạn có thể đạt được điều đó bằng cách đặt tập lệnh bên dưới bên trong thẻ head trong HTML của mình.

<script src="myscripts.js"></script>

Giả sử bạn muốn sử dụng code trong một số files khác nhau. Bạn có thể đạt được điều đó bằng cách export đoạn code đó, sau đó import vào file khác.

export const calculator = (x, y) => { return x + y;
}
// OR.
const calculator = (x, y) => { return x + y;
} export { calculator };

Bây giờ bạn có thể nhập mã đã xuất đó vào một files khác để sử dụng nó

import { calculator } from './calculator.js';

7. The Spread Operator

Toán tử spread là một trong những tính năng quan trọng và hữu ích đã được thêm vào JavaScript. Spread Operator cho phép chuyển đổi một chuỗi thành nhiều argument (function) hoặc thành nhiều phần tử ( array ). Operator này có syntax là 3 dấu chấm ...

Ví dụ:

const number= [1,2,3,4];
const newNumber = [...number];
console.log(newNumber); //[1,2,3,4] 

Kết luận

Như bạn có thể thấy, sau khi hiểu rõ về tất cả các tính năng này trong JavaScript, bạn sẽ có thể dễ dàng học bất kỳ framework nào. Tuy nhiên, không có nghĩa là bạn phải thành thạo mọi thứ về JavaScript để bắt đầu viết một ứng dụng React, nhưng những khái niệm này sẽ giúp bạn làm mọi thứ dễ dàng hơn. Mong rằng bài viết sẽ giúp ích cho bạn.

Link tham khảo: https://medium.com/swlh/7-javascript-features-you-need-to-know-before-learning-react-e77c3b3481d8

Bình luận

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

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

Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 30)

. Hello xin chào mọi người, mình đã trở lại và tiếp tục với phần 30 của series về Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết. Bắt đầu thôi nào.

0 0 35

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

5 câu hỏi phỏng vấn Frontend giúp bạn tự tin hơn khi sử dụng bất đồng bộ trong Javascript

Một trong những điều khó khăn khi học Javascript là promises. Chúng không dễ hiểu và có thể cần một vài hướng dẫn và một thời gian kha khá để vận dụng chúng.

0 0 81

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

Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết (Phần 31)

Hello xin chào mọi người, mình đã trở lại và tiếp tục với phần 31 của series về Một vài thủ thuật CSS mà chính Frontend có thể còn chưa biết. Bắt đầu thôi nào.

0 0 33

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

Những lý do khiến mình thích CSS custom properties hơn SASS variables?

Halo các bạn,. Lại là mình với một bài post liên quan tới chủ đề Front-end đây Mình còn nhớ hồi mình bắt đầu tìm hiểu và bị SASS lôi cuốn, mình đã nghĩ rằng mình sẽ chẳng bao giờ cần dùng đụng tới CSS

0 0 75

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

Usability là gì? Những lưu ý khi thiết kế Usability

Usability là một yếu tố quan trọng trong sự thành bại của sản phẩm. Thật đáng tiếc khi sản phẩm làm ra ưu việt về tính năng, nhưng lại không được người dùng tiếp nhận, đơn giản chỉ vì khó sử dụng.

0 0 22

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

7 Repos cho Front-End mà chính bạn còn không biết là bạn cần nó

. Những repos chẳng mấy khi được nhắc đến nhưng lại giúp bạn build mọi thứ nhanh hơn và tốt hơn nhiều. Chúng ta đang sống trong một thời đại có sẵn các công cụ và tài nguyên hoàn hảo, chúng chỉ cách t

0 0 26