速览 JavaScript 数据类型 (javascript红皮书二刷 - Ch3.4 数据类型)

6种数据类型

通过 typeof 运算符可以输出某个变量的数据类型~

  • Undefined 🙉
  • Null(特殊) - 空的Object 🙉
  • Boolean
  • Number
  • String
  • Object 👍

Undefined 未定义

一般的,未初始化或未声明的变量均为undefined,但是 未声明 的变量名只能用来执行 typeof 判断。

Null 空对象指针

  • Undefined 类型只有一个值 undefined,Null 类型同样只有 null
  • 👍 初始化变量时如果未来打算用来存储 Object,设置值为 null 是好的习惯。
  • 一个事实是,Null 类型派生出了 Undefined 类型,因此 null == undefined 是正确的。

Boolean 布尔型

只有 truefalse 两个值。一个值得关注的重点内容是:采用 Boolean(Message) 可以将任意类型转换取得一个 Boolean 类型的值,见下:

类型转为 true转为false
String任意 非空字符串空字符串 " "
Number任意 数字值0NaN
Object任意 对象null
UndefinedN/A (means not/applicable)均为 false

👍 这些内容比较重要,因为 if (Message) { //code block } 会取其 Boolean 值。

Number 数字

几个进制的整数:

var int = 10
var real_int = 10.0 // 自动转换优化
var octal_num = 072 // 8进制, in which not use strict
var hex_num = 0xA1 // 16进制, 任意大小写

带小数点的家伙:

var float = 10.0
var bad_float = .012 // 能跑, 但没必要
var fake_float = 1.234e7 // 这其实是12340000, 科学计数法

范围和精度:

var tiny_float = 1e-17 // 最高精度是17位小数
console.log(Number.MIN_VALUE) // 5.00e -324
console.log(Number.MAX_VALUE) // 1.79e +308
// 超出范围将变成 Infinity, 或者是 -Infinity

JavaScript 中的 NaN

  • 除以 0 时数字会变成 NaN,保证了代码仍能跑。
  • 👍 为了保证代码正确跑起来,NaN 不等于 != NaN。
  • 使用 isNaN() 可以判断能否变成数字,false 可以,"10" 和 10 可以"blue" 不行,没这个能力。

用于 Number 的转型函数

  • Number() 如果是 null 返回 0,如果是 undefined 返回 NaN,字符串会自动删除 前导的 0 ,并可以正确判断小数点 . 和十六进制 0x ,如果是对象,先调用对象的 valueOf(),如果是 NaN 再调用 toString()
  • parseInt() 主要用于字符串,且更加合理,会自动取出 字符串中第一个是数字的值,比如parseInt("2012blue") 即为 2012,parseInt("") 会取出 NaN,而 Number("") 转换出来的数字为 0。
  • parseFloat() 规则和👆上面的大概一样,有一些关于小数点的细节篇幅较长,就不在此赘述了~

String 字符串

  • 单双引号的效果是一样的。
  • 字符字面量 又叫 转义序列,换行符 \n,制表符 \t,退格符 \b,斜杠 \\ (同理单双引号),Unicode 字符 \u0000
  • JS中的字符串不可变,如 lang = lang + str,会创造一个长度为 lang.length 的字符串,浅拷贝内容后把原来的 lang 销毁掉。
  • toString() 的参数即为输出的数字基数,如 toString(16) 将会输出一坨 16进制的数字,用时有奇效。

Object 对象

JS中的对象是一坨 数据和功能的集合,通过 new customTypedObject() 来创建新的对象,使用 new Object 省略构造函数也是可以的,但不推荐。

  • ⚠️ 需要注意的是,JS 的 Objectjava.lang.Object 里的一样,它所具有的属性和方法存在于更具体的对象中,只是一个它的所有实例的基础,这一点将会在后续针对 prototype 原型 进行进一步的了解~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值