Loading

摘要: 到目前为止,ECMAScript 标准中定义了8种数据类型,它们分别是Undefined、Null、Number、Boolean、String、Symbol、BigInt、Object。 为了判断变量的数据类型,JavaScript还提供了typeof操作符。 但typeof操作符错误的将一个原始类型值null判断为object 阅读全文
posted @ 2021-02-19 14:52 _Fatman 阅读(726) 评论(2) 推荐(2) 编辑
摘要: 如何判断数据属于哪种类型是JavaScript中非常重要的一个知识点,其中最常用的两个方法就是分别使用typeof与instanceof这两个关键字来对数据的类型进行判断。 typeof与instanceof虽然都可以用来对数据所属的类型进行判断,但是它们之间还是存在差异的,而这种差异主要存在于两个方面: 1.作用点的不同; typeof主要用来判断基础数据类型,instanceof则是用来判断引用数据类型。 2.底层逻辑的不同; typeof是根据数据在存储单元中的类型标签来判断数据的类型,instanceof则是根据函数的prototype属性值是否存在于对象的原型链上来判断数据的类型。 阅读全文
posted @ 2021-02-09 15:27 _Fatman 阅读(1480) 评论(0) 推荐(0) 编辑
摘要: 你知道为什么新建一个不添加任何属性的对象为何能调用toString方法吗?你知道如何让拥有相同构造函数的不同对象都具备相同的行为吗?你知道instanceof关键字判断对象类型的依据是什么吗? 阅读全文
posted @ 2021-02-06 10:02 _Fatman 阅读(320) 评论(0) 推荐(0) 编辑
摘要: JavaScript并不像别的语言,能使用关键字来声明私有变量。 我了解的JavaScript能用来声明私有变量的方式有两种,一种是使用闭包,一种是使用WeakMap。 阅读全文
posted @ 2021-02-05 13:38 _Fatman 阅读(818) 评论(0) 推荐(0) 编辑
摘要: 继承是面向对象编程中相当重要的一个概念,它对帮助代码复用起到了很大的作用。 Brendan Eich在创建JavaScript时,没有选择当时最流行的类继承机制,而是借鉴Self,用到了基于原型(prototype)的继承机制,这导致了JavaScript在继承机制方面与Java、C++等基于类继承机制的语言有着显著的区别。 其具体在于—C++的多重继承、Java的继承和接口实现中都包含"类"的概念,它们倾向于在创建对象之前[1]已经规定了对象需要继承的类和实现的接口,并且使用类与类之间的继承方式。 而在JavaScript中没有"类"的概念,在对象之后所继承的对象也是可以发生动态变化的,并且使用的是对象与对象之间的继承方式。 阅读全文
posted @ 2021-02-04 11:23 _Fatman 阅读(615) 评论(0) 推荐(0) 编辑