【JavaScript 漫游】【002】JS 的数据类型总览

【JavaScript 漫游】【002】JS 的数据类型总览_第1张图片
文章简介

本文为【JavaScript 漫游】专栏的第 002 篇文章,主要记录了笔者学习 JS 数据类型中所了解的基本知识点。

  1. ES5 的数据类型有哪些
  2. 如何区分 ES5 的数据类型
  3. nullundefined 的相同点和不同点
  4. 布尔值的转换规则
  5. parseIntparseFloat 的基本用法

作为 JS 的复杂数据类型,对象、函数和数组的重要知识点众多,因此笔者计划将它们的知识点记录到随后的文章当中。

ES5 的数据类型有哪些

ES5 有六种数据类型。

  • 数值 number:与 C++、Java 等不同,JS 的 number 类型包含小数和浮点数。
  • 字符串 string:JS 只有 string 类型,没有 char 类型来表示单字符。
  • 布尔值 boolean
  • undefined:JS 的特有数据类型,表示未定义或不存在。
  • null
  • 对象 object

其中,number、string、boolean 合称为原始类型。object 称为合成类型,是多个原始类型的值的合成。undefined 和 null 一般看作是两个特殊值。

对象是最复杂的数据类型,它可以分成三个子类型。

  • 狭义的对象 object
  • 函数 function:可以被执行的对象。
  • 数组 array:特殊的对象,特殊点在于它的键名都是数字。

在日常开发工作当中,以及往后的学习生活当中,“对象”都特指狭义的对象。

如何区分 ES5 的数据类型

ES5 有三种方法可以区分一个值到底是什么类型。

  • typeof 运算符
  • instanceof 运算符
  • Object.prototype.toString 方法

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

它有几个注意点。

  1. 如果字符串头部有空格,空格会被自动去除。
  2. 如果参数不是字符串,会先转字符串再转换。
  3. 字符串转整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
  4. 如果第一个字符就不能转整数,返回 NaN。
parseInt('  123');  // 123
parseInt(1.23);  // 1
parseInt('123hello');  // 123
parseInt('hello123');  // NaN

parseFloat 用于将字符串转为浮点数。

parseFloat('1.23');  // 1.23

它同样有几个注意点。

  1. 如果字符串头部有空格,空格会被自动去除。
  2. 如果参数不是字符串,返回 NaN。
  3. 字符串转浮点数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
  4. 如果第一个字符就不能转整数,同样返回 NaN。
parseFloat('\t\v\r12.34\n '); // 12.34
parseFloat([]); // NaN
parseFloat('3.14more non-digit characters') // 3.14
parseFloat('FF2') // NaN

你可能感兴趣的:(JavaScript,漫游,javascript,前端)