Có gì mới trong ngôn ngữ JavaScript năm 2017


của Flavio H. Freitas

k4f95BDjIaGWgQO0FeQoIBfur1su20MEMBNk
Có gì mới?

ES8 đang hoạt động! Được phát hành vào đầu mùa hè này, ES8 (còn được gọi là ES2017) cung cấp các cách viết mã mới bằng JavaScript. Hãy khám phá chúng.

Nếu bạn có phiên bản Chrome mới nhất, hãy mở bảng điều khiển và cùng viết mã.

IA-BH2UVyy--TrnW3x4zwQuxEMfW47VTVb5F
Cách truy cập bảng điều khiển JavaScript trong Chrome: Xem > Nhà phát triển > Bảng điều khiển JavaScript

Object.values()

Truy cập tất cả các giá trị của đối tượng của chúng tôi mà không có bất kỳ sự phức tạp nào. Đây là một ví dụ:

const countries = {    BR: 'Brazil',    DE: 'Germany',    RO: 'Romania',    US: 'United States of America'};
Object.values(countries); // ['Brazil', 'Germany', 'Romania', 'United States of America']

Object.entries

biến của bạn vật thuộc tính trong một mảng thuộc tính:

const countries = {    BR: 'Brazil',    DE: 'Germany',    RO: 'Romania',    US: 'United States of America'};
Object.entries(countries); 
// [['BR', 'Brazil'], ['DE', 'Germany'], ['RO', 'Romania'], ['US','United States of America']]

Đệm chuỗi (padStart và padEnd)

Điều này trả về chuỗi đã truyền thêm phần đệm và phần đầu hoặc phần cuối của nó. Định nghĩa hàm là:

'string'.padStart(targetLength, padString)
'string'.padEnd(targetLength, padString)

Chúng tôi có thể thực hiện:

'0.10'.padStart(10); // it return a string of length 10, padding empty spaces in the beginning
'hi'.padStart(1);            // 'hi''hi'.padStart(5);            // '   hi''hi'.padStart(5, 'abcd');    // 'abchi''hi'.padStart(10, 'abcd');   // 'abcdabcdhi'
'loading'.padEnd(10, '.');   // 'loading...'
// useful example making things easier to read'0.10'.padStart(12);         // '       0.10''23.10'.padStart(12);        // '      23.10''12,330.10'.padStart(12);    // '  12,330.10'

Object.getOwnPropertyDescriptors()

Nó trả về tất cả các bộ mô tả thuộc tính riêng (không kế thừa) của một đối tượng. Các thuộc tính của đối tượng trả về có thể là: value, writable, get, set, configurableenumerable.

const obj = {    name: 'Pablo',    get foo() { return 42; }};
Object.getOwnPropertyDescriptors(obj);//// {//  "name": {//     "value": "Pablo",//     "writable":true,//     "enumerable":true,//     "configurable":true//  },//  "foo":{//     "enumerable":true,//     "configurable":true,//     "get": function foo()//     "set": undefined//  }// }

Một ví dụ thực tế là: JavaScript có phương thức sao chép thuộc tính Object.assign(). Nó sao chép thuộc tính có khóa là key. Như thế này:

const value = source[key]; // gettarget[key] = value;       // set

Và trong một số trường hợp nó bị lỗi do không sao chép đúng các thuộc tính có thuộc tính không mặc định như getters, setters và thuộc tính không thể ghi.

Đọc thêm  yêu cầu cURL trong javascript - JavaScript

Ví dụ:

const objTarget = {};const objSource = {    set greet(name) { console.log('hey, ' + name); }};Object.assign(objTarget, objSource);
objTarget.greet="love";     // trying to set fails, sets greet="love"

giải quyết:

const objTarget = {};const objSource = {    set greet(name) { console.log('hey, ' + name); }};Object.defineProperties(objTarget,                     Object.getOwnPropertyDescriptors(objSource));
objTarget.greet="love"; // prints 'hey, love'

Dấu phẩy trong danh sách tham số chức năng và các cuộc gọi

Đây là một sự thay đổi cú pháp. Nó cho phép chúng ta viết một khai báo hàm hợp lệ với dấu phẩy ở cuối.

getDescription(name, age,) { ... }

Các chức năng không đồng bộ (không đồng bộ và đang chờ)

Điều này giúp làm việc với các hàm không đồng bộ dễ dàng hơn nhiều:

function loadExternalContent() {    return new Promise((resolve, reject) => {        setTimeout(() => {            resolve('hello');        }, 3000);    });}
async function getContent() {    const text = await loadExternalContent();    console.log(text);}
console.log('it will call function');getContent();console.log('it called function');
// it prints:
'it will call function' // synchronous'it called function'    // synchronous'hello'                 // asynchronous (after 3 seconds)

Bộ nhớ dùng chung và nguyên tử

Theo đặc điểm kỹ thuật:

“Bộ nhớ dùng chung đang được hiển thị dưới dạng một loại SharedArrayBuffer mới; đối tượng Nguyên tử toàn cầu mới cung cấp các hoạt động nguyên tử trên các vị trí bộ nhớ dùng chung, bao gồm các hoạt động có thể được sử dụng để tạo nguyên tắc đồng bộ hóa chặn.”

Điều này có nghĩa là:

Bộ nhớ dùng chung: chúng ta có thể cho phép nhiều luồng đọc và ghi cùng một dữ liệu với bộ nhớ mới SharedArrayBuffer người xây dựng.

Nguyên tử: Chúng ta có thể sử dụng Atomics đối tượng để đảm bảo không có gì đang được viết hoặc đọc sẽ bị gián đoạn ở giữa quá trình. Vì vậy, các hoạt động được hoàn thành trước khi một hoạt động tiếp theo bắt đầu.

Đọc thêm  Cách chuyển đổi chuỗi thành số trong JavaScript (kèm ví dụ)

Nếu bạn thích bài viết này, hãy nhớ thích nó và vỗ tay cho tôi thật nhiều – nó có nghĩa là cả thế giới đối với người viết? Và hãy theo dõi tôi nếu bạn muốn đọc thêm các bài viết về Văn hóa, Công nghệ và Khởi nghiệp.

Flávio H. de Freitas là một Doanh nhân, Kỹ sư, Người yêu công nghệ, Người mơ mộng và Người thích du lịch. đã làm việc như giám đốc công nghệ Trong Brazil, Thung lũng Silicon và Châu Âu.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status