当前位置:网站首页>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 .
边栏推荐
- Basic JSON operations of MySQL 5.7
- Data communication foundation - route republication
- 写单元测试的时候犯的错
- 示例项目:简单的六足步行者
- Noi / 1.3 01: a+b problem
- vant popup+其他组件的组合使用,及避坑指南
- How to introduce devsecops into enterprises?
- 【网易云信】超分辨率技术在实时音视频领域的研究与实践
- Modify PyUnit_ Time makes it support the time text of 'xx~xx months'
- Cs231n notes (top) - applicable to 0 Foundation
猜你喜欢
ES6深入—async 函数 与 Symbol 类型
Arduino控制微小的六足3D打印机器人
Cs231n notes (medium) -- applicable to 0 Foundation
D-snow halo solution
后台系统发送验证码功能
vlunhub- BoredHackerBlog Social Network
具有倍数关系的时钟切换
Data communication foundation NAT network address translation
Explanation report of the explosion
Li Kou today's question -729 My schedule I
随机推荐
Maximum common subsequence
verilog实现计算最大公约数和最小公倍数
Linear DP (basic questions have been updated)
效果编辑器新版上线!3D渲染、加标注、设置动画,这次一个编辑器就够了
具有倍数关系的时钟切换
List de duplication and count the number
Intelligent metal detector based on openharmony
vant popup+其他组件的组合使用,及避坑指南
数学建模之层次分析法(含MATLAB代码)
The list set is summed up according to a certain attribute of the object, the maximum value, etc
对象和类的关系
Arduino controls a tiny hexapod 3D printing robot
19.[STM32]HC_SR04超声波测距_定时器方式(OLED显示)
Definition of episodic and batch
Appium自动化测试基础 — APPium基础操作API(一)
Detailed explanation of C language branch statements
Verilog realizes the calculation of the maximum common divisor and the minimum common multiple
21.[STM32]I2C协议弄不懂,深挖时序图带你编写底层驱动
20. [stm32] realize the function of intelligent garbage can by using ultrasonic module and steering gear
视觉体验全面升级,豪威集团与英特尔Evo 3.0共同加速PC产业变革