当前位置:网站首页>ES6 drill down - Async functions and symbol types

ES6 drill down - Async functions and symbol types

2022-07-05 16:03:00 Braised snapper with orange cat


Preface

This article will briefly introduce async Functions and ES6 Of Symbol type .

One 、async function

The syntax is as follows :

async function name([param[, param[, ... param]]]) {
     statements }
  • name: The name of the function .
  • param: The name of the parameter to be passed to the function .
  • statements: Function body statement .

Return value async The function returns a Promise object , have access to then Method to add a callback function .

Two 、async Case study

Example , Create a new one called helloAsync.js The file of , Write the following code in it .

// helloAsync.js
async function helloAsync() {
    
  return "helloAsync";
}

console.log(helloAsync()); // Promise {<resolved>: "helloAsync"}

helloAsync().then((v) => {
    
  console.log(v); // helloAsync
});

Run the following command on the terminal .

node helloAsync

You can see , The following results :
 Please add a picture description

3、 ... and 、Symbol type

ES6 A new type of raw data is introduced Symbol, Represents a unique value . It is JavaScript The seventh data type of language , The first six are :Undefined 、Null 、 Boolean value (Boolean)、 character string (String)、 The number (Number)、 object (Object).

Symbol Value through Symbol Function generation . Object property names can now be of two types , One is the original string , The other is the new Symbol type . All attribute names belong to Symbol type , They are unique , You can ensure that there is no conflict with other property names .

Four 、Symbol attribute

establish Symbol Variable of type , The grammar is as follows :

var s = Symbol(["message"]);

Symbol Functional message It can be omitted , Indicates the current Symbol Description of value , Used to distinguish Symbol Variable .

Example , Create a new one called test1.js The file of , Write the following code in it .

// test1.js
var p1 = Symbol();
var p2 = Symbol("zhangsan");

console.log(p1); // Symbol()
console.log(p2); // Symbol(zhangsan)

After the terminal runs , You will get the following results :
 Please add a picture description

Symbol Types can also be used to define a set of constants , Make sure that the values of these constants are not equal .

Example , Create a new one called test2.js The file of , Write the following code in it .

// test2.js
const log = {
    };
log.levels = {
    
  DEBUG: Symbol("debug"),
  INFO: Symbol("info"),
  WARN: Symbol("warn"),
};
console.log(log.levels.DEBUG, "debug message");
console.log(log.levels.INFO, "info message");

After the terminal runs , You will get the following results :
 Please add a picture description

5、 ... and 、Symbol Method

The syntax is as follows :

Symbol([description]);

ES5 when , Declaring object properties usually uses strings ,ES6 Provided in Symbol, Use Symbol It can be used as the attribute name of the object .

Example , Create a new one called test3.js The file of , Write the following code in it .

// test3.js
var pname = Symbol("lisi");
var age = Symbol();
var sex = Symbol();
var person = {
    
  //  to  person  Object add properties  pname  And the assignment 
  [pname]: "zhangsan",
};
//  to  person  Object add properties  age  And the assignment 
person[age] = 18;
//  to  person  Object add properties  sex  And the assignment 
Object.defineProperty(person, sex, {
     value: "male" });

console.log(person[pname]); // 'zhangsan'
console.log(person[age]); // 18
console.log(person[sex]); // male
var p = Object.getOwnPropertySymbols(person);
console.log(p); // Symbol(lisi), Symbol(), Symbol()

After the terminal runs , You will get the following results :
 Please add a picture description

6、 ... and 、 other

Symbol.for() Is to receive a string as a parameter , Then search whether there is a parameter named Symbol value . If there is , I'm just going to return this Symbol value , Otherwise, it will create and return a string named Symbol value .Symbol() There is no registration mechanism , So each call will return a different value .

Symbol.keyFor() Is to return a registered Symbol The type is worth key.

Example , Click on File -> New File Create a new one called test4.js The file of , Write the following code in it .

// test4.js
var s1 = Symbol.for("aaa");
var s2 = Symbol.for("aaa");

console.log(s1 === s2); // true

var s3 = Symbol.for("aaa");
console.log(Symbol.keyFor(s3)); // "aaa"

var s4 = Symbol("aaa");
console.log(Symbol.keyFor(s4)); // undefined

After the terminal runs , You will get the following results :
 Please add a picture description

summary

This article explains async Syntax of functions 、 Case study ; as well as ES6 Of Symbol Type concept 、 attribute 、 Method .

The following explains ES6 Class class .

原网站

版权声明
本文为[Braised snapper with orange cat]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207051527192628.html