当前位置:网站首页>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】
List of articles
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 :
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 :
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 :
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 :
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 :
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 .
边栏推荐
- 18.[STM32]读取DS18B20温度传感器的ROM并实现多点测量温度
- 抽象类中子类与父类
- 20. [stm32] realize the function of intelligent garbage can by using ultrasonic module and steering gear
- 18.[stm32] read the ROM of DS18B20 temperature sensor and realize multi-point temperature measurement
- Why should we learn mathematical modeling?
- Maximum common subsequence
- 16.[STM32]从原理开始带你了解DS18B20温度传感器-四位数码管显示温度
- List de duplication and count the number
- 视觉体验全面升级,豪威集团与英特尔Evo 3.0共同加速PC产业变革
- Use of set tag in SQL
猜你喜欢
Summary of the third class
CODING DevSecOps 助力金融企业跑出数字加速度
数学建模之层次分析法(含MATLAB代码)
Data communication foundation NAT network address translation
Which keywords will conflict with the abstract keyword
Pits encountered in the use of boolean type in development
wxml2canvas
Parameter type setting error during batch update in project SQL
Intelligent metal detector based on openharmony
vant tabbar遮挡内容的解决方式
随机推荐
异常com.alibaba.fastjson.JSONException: not match : - =
Data communication foundation NAT network address translation
Noi / 1.3 01: a+b problem
Advanced level of static and extern
一文搞定vscode编写go程序
Subclasses and superclasses of abstract classes
19.[STM32]HC_ SR04 ultrasonic ranging_ Timer mode (OLED display)
[Netease Yunxin] research and practice of super-resolution technology in the field of real-time audio and video
Vulnhub-Moneybox
Noi / 1.5 06: element maximum span value of integer sequence
SQL injection sqllabs (basic challenges) 11-20
vulnhub-Root_ this_ box
obj解析为集合
Value series solution report
Reproduce ThinkPHP 2 X Arbitrary Code Execution Vulnerability
Data communication foundation - dynamic routing protocol rip
Information collection of penetration test
Dataarts studio data architecture - Introduction to data standards
【簡記】解决IDE golang 代碼飄紅報錯
19.[STM32]HC_SR04超声波测距_定时器方式(OLED显示)