文章简介
本文为【JavaScript 漫游】专栏的第 002 篇文章,主要记录了笔者学习 JavaScript 数据类型中所了解的基本知识点。
- ES5 的数据类型有哪些
- 如何区分 ES5 的数据类型
null
和undefined
的相同点和不同点- 布尔值的转换规则
parseInt
和parseFloat
的基本用法
作为 JavaScript 的复杂数据类型,对象、函数和数组的重要知识点众多,因此笔者计划将它们的知识点记录到随后的文章当中。
ES5 的数据类型有哪些
ES5 有六种数据类型。
- 数值
number
:包含小数和浮点数。 - 字符串
string
- 布尔值
boolean
undefined
null
- 对象
object
其中,number
、string
、boolean
合称为原始类型。object
称为合成类型,是多个原始类型的值的合成。undefined
和 null
一般看作是两个特殊值。
对象是最复杂的数据类型,它可以分成三个子类型。
- 狭义的对象
object
- 函数
function
:可以被执行的对象。 - 数组
array
:特殊的对象,特殊点在于它的键名都是数字。
在日常开发工作当中,以及往后的学习生活当中,“对象”都特指狭义的对象。
如何区分 ES5 的数据类型
ES5 有三种方法可以区分一个值到底是什么类型。
typeof
运算符instanceof
运算符Object.prototype.toString
方法
本文仅介绍 typeof 运算符。它可以返回一个值的数据类型。
- 数值返回
number
- 字符串返回
string
- 布尔值返回
boolean
- undefined 返回
undefined
- null 返回
object
- array 返回
object
- object 返回
object
- function 返回
function
null 和 undefined 的相同点和不同点
null 和 undefined 都表示“没有”,在转布尔值时都会被自动转为 false。它们的区别在于,null 表示一个空的对象,它在转为数值时为 0,而 undefined 表示“此处未定义”的原始值,转为数值时为 NaN
布尔值的转换规则
除了下面六个被转为 false,其他值都视为 true
- undefined
- null
- false
- 0
- NaN
- 空字符串
parseInt 和 parseFloat 的基本用法
parseInt 用于将字符串转为整数。
parseInt('123'); // 123
它有几个注意点。
- 如果字符串头部有空格,空格会被自动去除。
- 如果参数不是字符串,会先转字符串再转换。
- 字符串转整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
- 如果第一个字符就不能转整数,返回 NaN。
parseInt(' 123'); // 123
parseInt(1.23); // 1
parseInt('123hello'); // 123
parseInt('hello123'); // NaN
parseFloat 用于将字符串转为浮点数。
parseFloat('1.23'); // 1.23
它同样有几个注意点。
- 如果字符串头部有空格,空格会被自动去除。
- 如果参数不是字符串,返回 NaN。
- 字符串转浮点数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
- 如果第一个字符就不能转整数,同样返回 NaN。
parseFloat('\t\v\r12.34\n '); // 12.34
parseFloat([]); // NaN
parseFloat('3.14more non-digit characters') // 3.14
parseFloat('FF2') // NaN