JavaScript的5种简单数据类型

ECMAScript有5中简单的数据类型(也称原始数据):undefined、null、string、number、boolean。其中有一种复杂的数据类型叫object(对象),object是一种无序名值对的集合。

1.undefined类型

undefined类型只有一个值,就是特殊值undefined。当使用var或let声明了变量但没有初始化时,就相当于给变量赋于了undefined值。

2.null类型

null类型只有一个值,就是特殊值null。逻辑上讲,null值表示一个空对象指针,这也是为什么给typeof传一个null会返回“object”的原因。
在定义将来要保存对象值的变量时,建议使用null来初始化,不要使用其他值,这样可以明确的知道这个变量是否被后来重新赋予了一个对象的引用。

3.boolean类型

boolean(布尔值)类型有两个字面值:true和false。
注:布尔值字面量true和false是区分大小写的,因此True和False(及其他大小混写的形式)是有效标识符,但不是布尔值。

数据类型转化为true的值转化为false的值
Booleantruefalse
String非空字符串“ ”(空字符串)
Number非零数值(包括无穷大)0、NaN
Object任意对象null
UndefinedN/A(不存在)undefined

4.number类型

number类型使用IEEE754格式表示整数和浮点值(在某些语言也叫双精度值)。不同的数值类型相应地也有不同的数值字面量格式。

1)浮点值

要定义浮点值,数值中必须包含小数点,而且小数点后面必须至少有一个数字。虽然小数点前面不是必须有整数,但推荐加上。
对于非常大或非常小的数值,浮点值可以用科学记数法来表示。科学记数法用于表示一个应该乘以10的给定次幂的数值。ECMAScript中科学记数法的格式要求是一个数值(整数或浮点数)后跟一个大写或小写的字母e,再加上一个要乘的10的多少次幂。比如

let floatNum = 3.125e7; // 等于31250000 

这种表示法实际上相当于说:“以3.125作为系数,乘以10的7次幂。”
科学记数法也可以用于表示非常小的数值,例如0.000 000 000 000 000 03。这个数值用科学记数法可以表示为3e-17

2)NaN

有一个特殊的数值叫NaN,意思是“不是数值”(Not a Number),用于表示本来要返回数值的操作失败了(而不是抛出错误)。比如,用0除任意数值在其他语言中通常都会导致错误,从而中止代码执行。但在ECMAScript中,0、+0或0相除会返回NaN。
如果分子是非0值,分母是有符号0或无符号0,则会返回Infinity(无穷大)-Infinity(负无穷大)

3)数值转换

有3个函数可以将非数值转换为数值:Number()、parseInt()和parseFloat()。Number()是转型函数,可用于任何数据类型。后两个函数主要用于将字符串转换为数值。
Number()函数基于如下规则执行转换。

  • 布尔值,true转换为1,false转换为0。
  • 数值,直接返回。  null,返回0。
  • undefined,返回NaN。
  • 字符串,应用以下规则。
  • 如果字符串包含数值字符,包括数值字符前面带加、减号的情况,则转换为一个十进制数值。因此,Number(“1”)返回1,Number(“123”)返回123,Number(“011”)返回11(忽略前面的零)。
  • 如果字符串包含有效的浮点值格式如"1.1",则会转换为相应的浮点值(同样,忽略前面的零)。
  • 如果字符串包含有效的十六进制格式如"0xf",则会转换为与该十六进制值对应的十进制整数值。
  • 如果是空字符串(不包含字符),则返回0。
  • 如果字符串包含除上述情况之外的其他字符,则返回NaN。
  • 对象,调用valueOf()方法,并按照上述规则转换返回的值。如果转换结果是NaN,则调用toString()方法,再按照转换字符串的规则转换。

5.String类型

String(字符串)数据类型表示零或多个16位Unicode字符序列。字符串可以使用双引号(")、单引号(’)或反引号(`)标示。

转化为字符串
  • toString()方法可见于数值、布尔值、对象和字符串值。(没错,字符串值也有toString()方法,该方法只是简单地返回自身的一个副本。)null和undefined值没有toString()方法。
  • 如果你不确定一个值是不是null或undefined,可以使用String()转型函数,它始终会返回表示相应类型值的字符串。
    String()函数遵循如下规则:
  • 如果值有toString()方法,则调用该方法(不传参数)并返回结果。
  • 如果值是null,返回"null"。
  • 如果值是undefined,返回"undefined"。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值