3.4 数据类型

ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number 和 String。

以及一种复杂数据类型:Object  (Object 本质上是由一组无序的名值对组成的)

 

3.4.1 typeof操作符

对一个值使用 typeof 操作符可能返回下列某个字符串:

 "undefined"——如果这个值未定义;

 "boolean"——如果这个值是布尔值;

 "string"——如果这个值是字符串;

 "number"——如果这个值是数值;

 "object"——如果这个值是对象或 null;

 "function"——如果这个值是函数。

 

3.4.2 Undefined类型

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

3.4.3 Null类型

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

3.4.4 Boolean类型

Boolean 类型是 ECMAScript 中使用得最多的一种类型,该类型只有两个字面值:true 和 false。 这两个值与数字值不是一回事,因此 true 不一定等于 1,而 false 也不一定等于 0。

3.4.5 Number类型

Number 类型应该是 ECMAScript 中最令人关注的数据类型了,这种类型使用 IEEE754 格式来表示 整数和浮点数值(浮点数值在某些语言中也被称为双精度数值)。为支持各种数值类型,ECMA-262 定 义了不同的数值字面量格式。

3.4.6 String类型

String 类型用于表示由零或多个 16 位 Unicode 字符组成的字符序列,即字符串。字符串可以由双 引号(")或单引号(')表示,因此下面两种字符串的写法都是有效的:

var firstName = "Nicholas";

var lastName = 'Zakas';

3.4.7 Object类型

ECMAScript 中的对象其实就是一组数据和功能的集合。对象可以通过执行 new 操作符后跟要创建 的对象类型的名称来创建。而创建 Object 类型的实例并为其添加属性和(或)方法,就可以创建自定 义对象

 

转换

转换为字符串

要把一个值转换为一个字符串有两种方式:

第一种:

是使用几乎每个值都有的 toString()方法。这个方法唯一要做的就是返回相应值的字符串表现。

数值、布尔值、对象和字符串值(没错,每个字符串也都有一个 toString()方法,该方法返回字 符串的一个副本)都有 toString()方法。但 null 和 undefined 值没有这个方法。

 

第二种:

还可以使用转型函数 String(),这个 函数能够将任何类型的值转换为字符串

String()函数遵循下列转换规则:

 如果值有 toString()方法,则调用该方法(没有参数)并返回相应的结果;

 如果值是 null,则返回"null";

 如果值是 undefined,则返回"undefined"。

数值转换

有3 个函数可以把非数值转换为数值:Number()、parseInt()和 parseFloat()。

Number()函数的转换规则如下。

 如果是 Boolean 值,true 和 false 将分别被转换为 1 和 0。

 如果是数字值,只是简单的传入和返回。

 如果是 null 值,返回 0。

 如果是 undefined,返回 NaN。

 如果是字符串,遵循下列规则:

 如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即"1" 会变成 1,"123"会变成 123,而"011"会变成 11(注意:前导的零被忽略了);

 如果字符串中包含有效的浮点格式,如"1.1",则将其转换为对应的浮点数值(同样,也会忽 略前导零);  如果字符串中包含有效的十六进制格式,例如"0xf",则将其转换为相同大小的十进制整 数值;

 如果字符串是空的(不包含任何字符),则将其转换为 0;

 如果字符串中包含除上述格式之外的字符,则将其转换为 NaN。

 如果是对象,则调用对象的 valueOf()方法,然后依照前面的规则转换返回的值。如果转换 的结果是 NaN,则调用对象的 toString()方法,然后再次依照前面的规则转换返回的字符 串值。 

根据这么多的规则使用 Number()把各种数据类型转换为数值确实有点复杂。下面还是给出几个具 体的例子吧。

var num1 = Number("Hello world!"); //NaN

var num2 = Number(""); //0

var num3 = Number("000011"); //11

var num4 = Number(true); //1

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值