当前位置:网站首页>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 .
边栏推荐
- RepLKNet:不是大卷积不好,而是卷积不够大,31x31卷积了解一下 | CVPR 2022
- Noi / 1.5 06: element maximum span value of integer sequence
- 具有倍数关系的时钟切换
- 写单元测试的时候犯的错
- Batch update in the project
- Example project: simple hexapod Walker
- 18.[stm32] read the ROM of DS18B20 temperature sensor and realize multi-point temperature measurement
- MySQL 巨坑:update 更新慎用影响行数做判断!!!
- Six common transaction solutions, you sing, I come on stage (no best, only better)
- The computer is busy, and the update is a little slow
猜你喜欢
Replknet: it's not that large convolution is bad, but that convolution is not large enough. 31x31 convolution. Let's have a look at | CVPR 2022
Subclasses and superclasses of abstract classes
Data communication foundation smart_ Link_&_ Monitor_ Link
Data communication foundation - routing communication between VLANs
Example of lvgl display picture
19.[STM32]HC_ SR04 ultrasonic ranging_ Timer mode (OLED display)
abstract关键字和哪些关键字会发生冲突呢
Use of RLOCK lock
Arduino控制微小的六足3D打印机器人
Advanced level of static and extern
随机推荐
一文带你吃透js处理树状结构数据的增删改查
漫画:什么是蓝绿部署?
list使用Stream流进行根据元素某属性数量相加
Vulnhub-Moneybox
对象和类的关系
20. [stm32] realize the function of intelligent garbage can by using ultrasonic module and steering gear
D-snow halo solution
CODING DevSecOps 助力金融企业跑出数字加速度
Noi / 1.4 07: collect bottle caps to win awards
一文搞定vscode编写go程序
Reproduce ThinkPHP 2 X Arbitrary Code Execution Vulnerability
The difference between abstract classes and interfaces
Use of RLOCK lock
示例项目:简单的六足步行者
写单元测试的时候犯的错
Information collection of penetration test
Find the root of the following equation by chord cutting method, f (x) =x^3-5x^2+16x-80=0
vant popup+其他组件的组合使用,及避坑指南
Why should we learn mathematical modeling?
Codasip adds verify safe startup function to risc-v processor series