🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
前言
请讲下
JavaScript
中的数据类型?
前端面试中,估计大家都被这么问过。
答:Javascript
中的数据类型包括原始类型和引用类型。其中原始类型包括 null
、undefined
、boolean
、string
、symbol
、bigInt
、number
。引用类型指的是 Object
。
没错,我也是这么回答的,只是这通常是第一个问题,由这个问题可以引出很多很多的问题,比如
Null
和Undefined
有什么区别?前端的判空有哪些需要注意的?typeof null
为什么是object
?- 为什么
ES6
要提出Symbol
? BigInt
解决了什么问题?- 为什么
0.1 + 0.2 !== 0.3?
你如何解决这个问题? - 如何判断一个值是数组?
- …
弱类型语言
因为 JavaScript
是弱类型语言或者说是动态语言。这意味着你不需要提前声明变量的类型,在程序运行的过程中,类型会被自动确定,也就是说你可以使用同一个变量保存不同类型的值
var foo = 42; // foo is a Number now
foo = "bar"; // foo is a String now
foo = true; // foo is a Boolean now
这一特性给我们带来便利的同时,也给我们带来了很多的类型错误。试想一下,假如 JS
说是强类型语言,那么各个类型之间没法转换,也就有了一层隔阂或者说一层保护,会不会更加好维护呢?——这或许就是 TypeScript
诞生的原因。
对 JavaScript
的数据类型掌握,是一个前端最基本的知识点
null 还是 undefinded
定义
undefined
表示未定义的变量。null
值表示一个空对象指针。
追本溯源: 一开始的时候,
JavaScript
设计者Brendan Eich
其实只是定义了null
,null
像在Java
里一样,被当成一个对象。但是因为JavaScript
中有两种数据类型:原始数据类型和引用数据类型。Brendan Eich
觉得表示"无"的值最好不是对象。
所以 Javascript
的设计是 null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。
Number(null)
// 0
5 + null
// 5
Number(undefined)
// NaN
5 + undefined
// NaN
Null 和 Undefined 的区别和应用
null表示"没有对象",即该处不应该有值。,典型的用法如下
- 作为函数的参数,表示该函数的参数不是对象。
- 作为对象原型链的终点。
Object.getPrototypeOf(Object.prototype)
// null
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
- 变量被声明了,但没有赋值时&