惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
C
Cisco Blogs
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
aimingoo的专栏
aimingoo的专栏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
Intezer
P
Privacy International News Feed
T
Threatpost
小众软件
小众软件
Latest news
Latest news
T
Threat Research - Cisco Blogs
腾讯CDC
L
LINUX DO - 热门话题
Simon Willison's Weblog
Simon Willison's Weblog
NISL@THU
NISL@THU
Scott Helme
Scott Helme
C
Cyber Attacks, Cyber Crime and Cyber Security
T
The Exploit Database - CXSecurity.com
有赞技术团队
有赞技术团队
T
Tenable Blog
Cisco Talos Blog
Cisco Talos Blog
博客园 - 【当耐特】
Project Zero
Project Zero
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
G
GRAHAM CLULEY
I
InfoQ
V
V2EX
T
Tailwind CSS Blog
IT之家
IT之家
Security Archives - TechRepublic
Security Archives - TechRepublic
Cloudbric
Cloudbric
G
Google Developers Blog
T
Troy Hunt's Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
AI
AI
博客园 - Franky
Martin Fowler
Martin Fowler
罗磊的独立博客
博客园_首页
PCI Perspectives
PCI Perspectives
Jina AI
Jina AI
Hugging Face - Blog
Hugging Face - Blog
C
Cybersecurity and Infrastructure Security Agency CISA
S
Secure Thoughts
月光博客
月光博客
The Cloudflare Blog
Google Online Security Blog
Google Online Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - bala001

【记录】一文搞懂pinia状态管理(保姆级教程) 前端开发设计模式:原型模式 2025 年前端面试中常见问题 Object.create 前端开发设计模式:工厂模式(Factory Pattern)【下】 前端开发设计模式:工厂模式(Factory Pattern)【上】 前端开发设计模式:单例模式之场景应用&实现 前端开发设计模式:架构 前端开发设计模式: 单例模式(Singleton Pattern) JS篇之JS类型 2024/10/20: TypeScript 学习笔记三:TypeScript 类型系统 博文阅读密码验证 - 博客园 2024/09/22:TypeScript 学习笔记二 css 技巧 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 45 个每个开发人员都应该知道的 JavaScript 超级技巧 - 抄录 明确学习路径与方法 开篇词 - 《重学前端》
2024/09/20: TypeScript 学习笔记一
bala001 · 2024-09-21 · via 博客园 - bala001

1、 7 种数据类型 —— ECMAScript 2015 规范中定义

  •  Undefined
  • Null
  • Boolean
  • String
  • Symbol
  • Number
  • Object
  • BigInt  - -  第八种数据类型 。2019年9月纳入到标准中

  其中 Undefined、Null、Boolean、String、Symbol 和 Number 类型是 【原始数据类型】 —— 编程语言中的基础数据类型

  Object 类型是【非原始数据类型】

2、BigInt

  • 2019年9月被正式纳入 ECMAScript 标准中的特性。
  • 新的【原始数据类型】,同时又属于数值类型的一种。
  • Number:双精度 64位浮点数格式表示;能够安全表示的最大整数是 253 - 1,能使用内置的Number对象上的 MAX_SAFE_INTEGER属性来表示。
  • BigInt 能够表示任意精度的整数,尤其是大于  253 - 1 的整数

  创建 BigInt :

  • 使用 BigInt 字面量:在一个整数后添加一个小写字母“n”。字母“n” 必须紧随数字之后。两者之间不允许存在空白字符:如  
  • 使用 BigInt() 函数
const unit = BigInt(1)   // 1n

BigInt 与 Number :

  • BigInt类型的值能够 与 Number 类型的值进行大小及相等关系的比较
  • 严格模式下,两者的值永远不相等
  • 非严格模式下,两者的值将进行数学意义上的比较
  • 虽然两者的值可以进行比较。但是【BigInt 类型的值不允许与Number类型的值一起进行混合数学运算】,如:
// 类型错误!无法混合使用 BigInt 和其他类型
1 + 1n

通过内置的 Number() 函数能够将 BigInt 类型的值转换成 Number 类型的值。但要注意:在BigInt 类型与 Number 类型之间进行强制类型转换时有可能损失精度。如:

3、详解 Symbol 

  • Symbol 是 ECMAScript 2015 新引入的原始类型
  • 重要特征:每一个 Symbol 值都是唯一的且不可改变的
  • 主要应用场景:作为对象的属性名

4、Symbol()

  • JavaScript 提供了一个全局的 “Symbol()” 函数来创建 Symbol 类型的值
  • 每次调用 “Symbol()” 函数都会生成一个完全不同的 Symbol 值。

5、字面量

  在计算机科学中,字面量用于在源代码中表示某个固定值。在JavaScript 程序中,字面量不是变量,它是直接给出的固定值。

  • Null 字面量 —— 只有一个,记作 null
  • Boolean 字面量 —— 两个,分别记作 true 和 false
  • Number 字面量 —— 包含四类:二进制整数字面量;八进制整数字面量;十进制数字面量;十六进制整数字面量
  • 字符串字面量 —— 单引号或双引号包围起来的 Unicode 字符
  • 模板字面量 —— 反引号“`”

6、原型对象

  • 原型对象:对象的原型既可以是一个对象,即原型对象。也可以是一个null 值
  • 原型对象本质上是一个普通对象,用于在不同对象之间共享属性和方法。

  对象与其原型之间具有隐含的引用关系。如图:

7、原型链:

  • 原型链:原型对象又有其自身的原型,因此对象的原型会形成一条原型链。原型链将终止于 null 值。
  • 原型能够用来在不同对象之间共享属性和方法,JavaScript 中的继承机制也是通过原型来实现的。
  • 原型的作用主要体现在查询对象某个属性或方法时会沿着原型链依次向后搜索。如图:

 

  • 原型对象在属性查询和属性设置时起到的作用是不对等的:
    在查询对象属性时会考虑对象的原型;但在设置对象属性是不会考虑对象的原型,而是直接修改对象本身的属性值。

8、可选链运算符   ?.

  只有当对象不为 undefined 或 null 时才去访问对象的属性。

9、空值合并运算符  ??

a ?? b

// 【当且仅当 】 ?? 运算符左侧操作数 a 为 undefined 或 null 时,返回右侧操作数 b; 
// 否则返回左侧操作数 a
// 若 a 不为 undefined 或 null,右侧操作数不会被求值,而是直接返回 a 的值