JS 类型

typeof 操作符

鉴于 ECMAScript 是松散类型的,因此需要有一种手段来检测给定变量的数据类型 ----typeof 就是负责提供这方面信息的操作符。对于一个值使用 typeof 操作符可能返回下列某个字符串:

  • undefined --- 如果这个值没有定义
  • boolean --- 如果这个值是 boolean 值
  • string --- 如果这个值是字符串
  • number --- 如果这个值是数值
  • object --- 如果这个值是对象或者 null
  • function --- 如果这个值是函数

例如:

var message = null;
console.log(typeof message);
复制代码

typeof 是一个操作符,而不是一个函数。调用之后返回的是这个变量的类型,属于什么类型。

undefined 类型

undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:

var message;
console.log(typeof message);

打印出:undefined
复制代码

对未初始化的变量执行 typeof 操作符会返回 undefined值,而对未声明的变量执行 typeof 操作符同样也会返回 undefined 值。 例如:

console.log(typeof message);

输出打印:undefined
复制代码
Null 类型

Null 类型是第二个只有一个值的数据类型,这个特殊的值是 null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用 typeof 操作符检测 null 值时会返回 "object"的原因

var car = null;
console.log(typeof car);

打印出:object
复制代码

null 表示是一个空对象指针。 如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值。这样一来只要直接检查 null 就可以知道相应的变量是否已经保存了一个对象的引用。 例如:

var car = null;
if (car != null) {
    console.log("对car对象执行某些操作");
}
复制代码

undefined 是派生自 null 值的,因此相等性测试是返回 true。

Boolean 类型

Boolean 只有两种类型 true 和 false,这两个值和数字值不是一回事,因此 true 不一定等于 1,而 false 也不一定的等于 0。而且这个两个值是区分大小写的,也就是说 True 和 False (以及其他的混合大小写形式)都不是 Boolean 值,只是标识符。可以对任何数据类型的值调用 Boolean(函数),而且总会返回一个Boolean值。至于返回的这个值是 true 还是 false,取决于要转换值的数据类型及实际值。转换规则如下:

* String   非空字符串->true       空字符串("")->false
* Number   任何非零数字值(包括无穷大)-> true    0和NaN->false
* Object   任何对象->true      null->false
复制代码
Number 类型
  1. 会把其他进制转换为十进制输出。
  2. 会根据浮点数小数的有无,转换为相关的数值。
    比如:
var floatNum1 = 1.0; 整数解析为 10
复制代码
  1. 如果是 Boolean 值,true和false将分别转换为 1 和 0;
  2. 如果是数字值只是简单的传入和返回
  3. 如果是 null 值,返回 0
  4. 如果是 undefined,返回 NaN
String 类型

String 类型用于表示由零个或多个16位 Unicode字符组成的字符序列,即字符串。

Object 类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值