JS数据类型

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

  • “undefined”——如果这个值未定义;
  • “boolean”——如果这个值是布尔值;
  • “string”——如果这个值是字符串;
  • “number”——如果这个值是数值;
  • “object”——如果这个值是对象或null;
  • “function”——如果这个值是函数;
    下面是几个使用typeof操作符的例子:

var message = “some string”;
console.log(typeof message); // string
console.log(typeof(message)); // string
console.log(typeof(95)); // number
1
2
3
4
Undefined类型
Undefined类型只有一个只,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined,例如:

var message;
console.log(message == undefined); // true
1
2
Null类型
Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时返回”object”的原因,如下示例:

var car = null;
console.log(typeof(car)); // object
1
2
实际上,undefined值是派生自null值的,因此ECMA-262规定对它们的相等性测试要返回true:

console.log(null == undefiend); // true
1
Boolean类型
Boolean类型是ECMAScript中使用得最多的一种类型,该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。以下是为变量赋值Boolean类型值的例子:

var found = true;
var lost = false;
1
2
需要注意的是,Boolean类型的字面值true和false是区分大小写的。
要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean(),如下所示

var message = “Hello world!”;
console.log(Boolean(message)); // true;
1
2
下表给出了各种类型及其对应的转换规则:

数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 “”(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a或N/A(意思是不适用) undefined
Number类型
Number类型应该是ECMAScript中最令人关注的数据类型了,这种类型适用IEEE745格式来表示整数和浮点数值(浮点数值在某些语言中也被称为双精度值)。为支持各种数值类型,ECMA-262定义了不同的数值字面量格式。
最基本的数值字面量格式是十进制,十进制整数可以像下面这样直接在代码中输入:

var intNum = 55; // 整数
1
除了以十进制表示外,整数还可以通过八进制(以8为基础)或十六进制(以16为基数)的字面值来表示。其中,八进制字面值的第一位必须是零(0),然后是八进制数字序列(0~7)。如果字面值中的数值超出了范围,那么前导零将会被忽略,后面的数值将被当作十进制数值解析。请看下面的例子:

var octalNum1 = 070; // 八进制的56
var octalNum2 = 079; // 无效的八进制数值——解析为79
var octalNum3 = 08; // 无效的八进制数值——解析为8
1
2
3
十六进制字面值的前两位必须是0x,后跟任何十六进制数字(09及AF)。其中字母A~F可以大写,也可以小写。如下面的例子所示:

var hexNum1 = 0xA; // 十六进制的10
var hexNum2 = 0x1f; // 十六进制的31
1
2
在进行算数计算时,所有以八进制和十六进制表示的数值最终都将被转换成十进制数值。
————————————————
版权声明:本文为CSDN博主「yz_Blog」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yz_Blog/article/details/79178849

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值