红宝石(三)各种数据类型Pt.1

1.Undefined类型:

undefined类型只有一个值:undefined;

在用var声明变量但不加以初始化的时候,这个值就是undefined:

var test;
document.write(typeof test); //显示undefined

不需要将变量设置为undefined,因为没有初始化的变量默认值便是它。undefined适用于区分空对象指针null和未经初始化的变量的。

2.Null类型:

null类型只有一个值:null;

它表示一个空对象指针,所以typeof null的结果会是object。如果定义的变量准备在将来用于保存对象,那最好将其先初始化为null;

简单地说:如果某个被创建的变量不打算将来赋值保存,那就不要管他;如果以后有打算,那就先赋值初始化为null,后续再改;

3.Boolean类型:

布尔值,只有true和false;这两个关键字区分大小写。

注意,true不一定等于1,false也不一定等于0;

如果想要将任何类型转换为对应的布尔值,可以使用函数Boolean();转换结果参考书籍P26的表格:

数据类型转换为true转换为false
Booleantruefalse
String任何非空字符串“”(空字符串)
Number任何非零数字值(包括无穷大)0以及NaN
Object任何非空对象null
Undefinedn/aundefined

4.Number类型:

默认为十进制;0开头的有效的数字序列(每一位都是0-7)认作八进制;0x开头的认作十六进制;

进行算术计算时,全都转化为十进制;

浮点数如果小数点后数值为0会转化为整数;浮点数最高精度是17位小数;

永远不要测试某个特定的浮点数值!比如智障地写一个死循环

//此举无法通过测试,0.1+0.2≠0.3,这是IEEE 754标准所致
while(0.1 + 0.2 == 0.3) {
    break;
}

数值范围如果超出则被定义为无穷大,若返回无穷大则计算无法继续。要想确定一个数值是否有穷,使用isFinite()函数。

NaN:任何数值除以非数值都会返回NaN;涉及NaN的操作都会返回NaN;NaN与任何值都不相等,包括NaN本身;检测可以通过isNaN()函数进行;但是该函数的结果是——参与运算的元素是否能够被转换为数值,是则返回false;

基于对象调用isNaN()的时候,会首先调用对象的valueOf()方法,然后确定该方法的返回值是否可以被转换;若不能,则给予返回值调用toString()方法,再测试。

数值转换:三种函数Number()可以将任何数据类型转化为数值、parseInt()将字符串转化为整数、parseFloat()将字符串转化为浮点数。

parseInt()会检测字符串,从第一个字符(必须是数字)到第一个不是数字的位置之前的内容转化为整数

要让parseInt()一直指明基数,如果一直打算用十进制,则格式为parseInt(element, 10);

5.String类型

用于表示由0或多个16位Unicode字符组成的字符串,由“”或者‘’表示。

一些特殊的字符字面量:转义字符(一个转义字符占用一个字符长度,比如"\u03a3"是一个字符Σ,长度为1)。

字符串长度不可变(一旦创建,值就不能改变);改变某个变量保存的字符串,首先要销毁原字符串,再用另一个包含新值的字符串填充该变量;

将一个值转换为字符串可以使用toString()函数。数值、布尔值、字符串、对象都有该方法,但是null和undefined没有;如果在这个函数里传参,改参数为输出数值的基数(默认为十进制);

在不知道要转换的值是否为null或者undefined的情况下,还可以使用转型函数String(),能将任何类型的值转换为字符串(这个方法我在刷LeetCode的第9题“回文数”的时候使用过),规则如下:

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值