Javascript中的五种简单数据类型

ECMAscript中有五种简单的数据类型:Undefined,Null,Boolean,Number和String。


typeof是用来检测给定变量的数据类型,对一个值使用typeof操作符可能返回下列某个字符:

1,”undefined“——如果这个真值未定义;

2,“boolean”——如果这个值是布尔值;

3,“string”——如果这个值是字符串;

4,“number”——如果这个值是数值;

5,“null”——如果这个值是


Number类型

Number类型是ECMAScript中最令人关注的数据类型,这种类型使用IEEE754格式来表示整数与浮点数值。

最基本的数值字面量格式是十进位制,也可以使用八进位制或十六进位制。

数值范围

由于内存限制,ECMAScript并不能保存所有数值;

最小值保存在Number.MIN_VALUE中——5e-324;

最大值保存在Number.MAX_VALUE中——1.7976931348623157e+308;

超过上述数值限制会自动转换成特殊值Infinity值(正无穷),如果是负值则被转换成-Infinity(负无穷)。

NaN

NaN(not a number)一个非数值的特殊数值,这个数值用于表示一个本来要用来返还数值的操作数未返回数值的情况。

NaN有两个非同寻常的特点。

1,任何涉及NaN的操作都会返回NaN。

console.log(NaN/10);    // NaN

2,NaN与任何值都不相当,包括NaN本身。

console.log(NaN == NaN);   // false

数值转换

有三个函数可以把非数值转换为数值:Nmuber(),parseInt()和parseFloat()。第一个函数,即转型函数Number()可以用于任何数据类型,而另外两个则专门用于吧字符串转换成数值。

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

1,如果是boolean值,true和false件分别被转换为1和0.

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

3,如果是null值,返回0。

4,如果是undefined,返回NaN。

5,如果是字符串在转换时比较复杂且不够合理,因此更常用的是parseInt()函数。

parseInt()函数在转换字符串时,更多的是看其符合数值模式。它会忽略掉字符串前面的空格,直至找到第一个非空字符。

如果第一个字符不是数字字符或者负号,parseInt()就会返回NaN。用parseInt()转换空字符串时和Number()不同。

var num1 = parseInt(“a123”);     //    NaN

var num2 = parseInt(“”);     //    NaN

var num3 = Number(“”);     //    0

如果第一个字符是数字字符,parseInt()会继续解析第二个字符,知道解析完所有后续字符或遇到一个非数字字符。

var num4 = parseInt(“123abc”);     //    123

var num5 = parseInt(“22.5”);     //    22    (小数点并不是有效的数字字符,所以会被转换为22)

parseFloat()与parseInt()函数相似,不同地方是字符串中的第一个小数点试试有效的,而第二就无效了,因此他后面的字符串将被忽略。

var num1 = parseFloat(“22.33.44”);     //    22.33

第二个却别是parseFloat()始终会忽略前导的0.

var num2 = parseFloat(“0123”);     //    123


String类型

String类型用于表示由零或者多个16位Unicode字符序列,即字符串。字符串可以有双引号(”)或者单引号(’)表示。

var firstName = “Tom”;

var lastName = ‘Jim’;

1,字符字面量

String数据类型包含一些特殊的字符字面量,也叫转义序列,,用于表示非打印字符或者具有其他用途的字符。

\n    换行    

\t    制表

\b    退格

\r    回车

\f    进纸

2,字符串的特点

ECMAScript中的字符串是不可变,也就是说,字符串一旦创建,他们的值就不能改变。要改变某个变量保存的字符串,首先要销原来的字符串,然后正在创建一个包含新值的字符串填充该变量。

var lang = “Java”;

lang = lang + “Script”;


3,转换为字符串

要把一个值转换为一个字符串有两种方式。第一种是使用几乎每个值都有的toString()方法,这个方法纬仪要做的就是返回相应值的字符串表现。

var age = 11;

var ageAsString = age.toString();    //    字符串“11”

var found = true;

var foundAsString = found.toString();    //    字符串“true”

数值,布尔值,对象和字符串值都有toString()方法,但null和undefined值没这个方法。

在不知道要转换的值是不是null和undefined的情况下,还可以是使用转型函数String(),这个函数能够将任何类型的值转换为字符串。String()函数遵循下列转换规则:

如果值是toString()方法,则调用该方法并返回相应结果;

如果值是null,则返回“null“;

如果值是undefined,则返回”undefined“。


Nudefined

Undeifined类型只有一个值,即特殊的undeifned。在使用var声明变量但为对其初始化时,这个变量的值就是undeifined。

var message;

console.log(message == undeifined);   //    true


Null

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

var car = null;

console.log(typeof car);    //    “object”

实际上,undefined值是派生自null值的。

console.log(null == dunefined);    //    true


BOOlean类型

Boolean类型是ECMAScript中使用最多的一种类型,该类型只有两个字面量值:true和false。

这两个值和数字值不是一回事,因此true不一定等于1,而false也不一定等于0.

虽然Boolean类型字面量值只有两个,但ECMAScript中所有类型值都有与这两个Boolean等价的值。要将一个值转换为其对应的boolean值,可以调用转型函数Boolean()。

var message = ”Hello world“;

var messageAsBoolean = Boolean(message);    //    true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值