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

技术宅的理想房间
文章简介

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

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

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

ES5 的数据类型有哪些

ES5 有六种数据类型。

  • 数值 number:包含小数和浮点数。
  • 字符串 string
  • 布尔值 boolean
  • undefined
  • null
  • 对象 object

其中,numberstringboolean 合称为原始类型。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

它有几个注意点。

  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
  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值