这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战
前言
如今Vue3 + TypeScript 应用特别广了,如果不学习, 总感觉跟不上大厂的步伐了. 学习 TypeScript(当然也是可选的). TypeScript 实战专栏这里记录学习 TypeScript 的过程, 以及学习 Vue3.x 实战专栏 的过程, 回顾上一篇: 学习了 TS 的初始化, 安装, 创建 TS 项目, 编译运行以及初识 TS 类型约束的世界: 原始数据类型 各个击破
本文对 基本数据类型 Symbol 进行针对性学习
基本数据类型 Symbol
Symbol 是一种基本数据类型 (primitive data type)。
Symbol()函数会返回symbol类型的值, 该类型具有静态属性和静态方法。它的静态属性会暴露几个内建的成员对象;它的静态方法会暴露全局的symbol注册, 且类似于内建对象类, 但作为构造函数来说它并不完整, 因为它不支持语法:"new Symbol()"。
每个 Symbol()返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的。
const symbol1 = Symbol();
const symbol2 = Symbol(213);
const symbol3 = Symbol('xn213');
console.log(typeof symbol1); /// "symbol"
console.log(symbol2 === 213); /// false
/// 下面的代码 s2 和 s3 并不相同..
let s1 = Symbol();
let s2 = Symbol('xn213');
let s3 = Symbol('xn213');
Symbol("xn213") === Symbol("xn213"); /// false
new 一个 Symbol? No!
如果使用 [new]关键字创建, new运算符的语法将抛出 [TypeError]错误:
let newSymbol = new Symbol(); /// => TypeError
Symbol 属性
Symbol长度属性Symbol.length,值为0。symbol构造函数的原型:Symbol.prototype
Vue3 学习实战系列更文:
- Vue3 源码学习-工具函数 utils(二)
- Vue3-初体验,
- Vue3-
生命周期和setup()函数, - Vue3-
computed & watch, - Vue3-
Teleport改变组件挂载的根节点, - Vue3-
Suspense处理异步请求, - Vue3-
defAsyncComponent异步组件(新增), - Vue3-
fragments(新增), - Vue3-
v-model(非兼容),
- Vue3 源码仓库
vue-next: github.com/vuejs/vue-n… - Vue3.x 官方中文文档: v3.cn.vuejs.org
- TypeScript 系列: