【系列】JavaScript中一切皆为对象的揭秘

【系列】JavaScript中一切皆为对象的揭秘

写在前面

以前在阅读《JavaScript 高级语言程序设计》中有提到“在 JavaScript 中,一切皆为对象”,当时并没有深入理解其真正的含义,现在想想其内含着很大的信息量,下面跟着我一步一步的揭开其神秘的面纱。

第一步:类型检测

在 JavaScript 中通过 typeof 进行数据类型检测。

运行以下代码:

1
2
3
4
5
6
7
8
9
10
console.log(typeof undefined); // undefined
console.log(typeof ""); // string
console.log(typeof 123); // number
console.log(typeof true); // boolean
console.log(typeof Symbol()); // symbol
console.log(typeof function () {}); // function
console.log(typeof []); // object
console.log(typeof {}); // object
console.log(typeof null); // object
console.log(typeof new Number(123)); // object

根据上面代码输出结果可知,除开基本类型,typeof 输出的其它的都是 function 和 object,即引用类型

阅读更多
【系列】JavaScript 面试中常见的隐式类型转换

【系列】JavaScript 面试中常见的隐式类型转换

通过阅读前面几期的内容,我们已经知道了 JavaScript 中的数据类型以及其在运算时进行隐式转换过程。

本期我们将重点分析一下面试过程中常见的隐式类型转换的面试题。

1. 加号操作

请输出代码运行的结果并说明原理?

1
2
3
4
console.log(1 + undefined);
console.log(1 + null);
console.log(1 + true);
console.log("hello" + 123);

分析:通过加号运算符进行运算,存在两种情况,第一种是字符串与加号运算符组成字符串连接操作,第二种是非字符串与加号运算符组成算术运算操作(需要将对应项转换成 Number 类型后进行操作)

答案:

1
2
3
4
console.log(1 + undefined); // NaN
console.log(1 + null); // 1
console.log(1 + true); // 2
console.log("hello" + 123); // 'hello123'
阅读更多
【系列】深入理解 JavaScript 数据类型转换

【系列】深入理解 JavaScript 数据类型转换

上一期中我们主要是了解了 JavaScript 中存在两大数据类型:基本类型引用类型以及其存储的方式(堆和栈)。

本期我们将重点谈谈 JavaScript 数据类型转换过程出现的各种“奇葩”的问题。

写在前面

在 JavaScript 中当运算符在运算时,如果两边数据不统一,CPU 就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算,这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换

在 JavaScript 中“一切皆是对象”,在我们具体了解隐式转换前先了解一下对象的两个方法:toString()valueOf()

toString()

toString() 方法返回一个表示该对象的字符串。

阅读更多
【系列】如何正确的理解 JavaScript 数据类型

【系列】如何正确的理解 JavaScript 数据类型

写在前面

前端进阶系列本着“好好干前端”的心态,一步一个脚印认真练好前端的基本功,为在前端的发展道路上做好铺垫。

本周正式开始前端进阶的第 1 期,本周的主题是理解JavaScript数据类型

数据类型

最新的 ECMAScript 标准定义了 7 种数据类型,主要分为两大类基本类型引用类型

基本类型

基本类型有时也被称为值类型原始类型。其中包括 6 种数据类型,分别是:字符串类型(String)数字类型(Number)布尔类型(Boolean)对空类型(Null)未定义类型(Undefined)符号类型(Symbol)

字符串类型

JavaScript 的字符串类型用于表示文本数据。它是一组 16 位的无符号整数值的“元素”。在字符串中的每个元素占据了字符串的位置。第一个元素的索引为 0,下一个是索引 1,依此类推。字符串的长度是它的元素的数量。

阅读更多
个人微信公众号正式运营

个人微信公众号正式运营

2019 年,就是好好干。

官宣

今天正式开通微信个人公众号“好好干前端”和掘金个人专栏,欢迎各位捧个场给个关注或者 star。

写在后面

博客继续全面承担个人生活、情感、工作、技术等方方面面的内容,公众号和掘金专栏将承担个人在技术方面的学习和沉淀方面的内容,主要以技术研究和内容输出为主。

最后,感谢大家的支持!