js数据类型回顾

js数据类型回顾

简单数据类型: undefined null boolean number string
复杂数据类型: object

Undefined
js中变量声明,用关键字var , 如果声明了变量但没有赋值,该变量默认值就是undefined。

例如: var hello; hello的值为undefined
如果使用了没有声明的变量, 就会直接报错

Null
null表示一个空对象指针,如果定义的变量将来用于存放对象, 可以给该变量初始化为null
例如: var obj = null ;
实际应用中我们还可以给对象赋值null,来清空一个对象:

    var json = {“id”:1, “name”:”呵呵嗒”} ; 
    json = null ;

undefined与null的关系:
undefined派生自null ,相等测试时返回的是true:
alert(undefined == null) // true
虽然相等,但是undefined表示没有赋值的变量, null表示空对象用于将来要存放的对象,它们是不同类型的值,全等测试时返回false:
alert( undefined === null ) // false

Boolean
boolean类型有两个值true和false , Boolean()函数可以将其它类型的值转为布尔类型,转换规则:

数据类型转换为true的值转换为false的值
booleantruefalse
number任何非零数字值0和NaN
string任何非空字符串“”(空字符串)
object任何对象null
undefinedundefined

我们也可以用双逻辑非来转换布尔值:

    !!””    //false
    !!0    //false
    !!NaN    //false
    !!null    //false
    !!undefined    //false

javascript中boolean类型在流程控制语句中很重要,实际应用中我们会经常将其它类型转换成布尔类型。

Number
number有整数和浮点数
整数 可以由 十进制 八进制 十六进制 字面值表示:

    var num = 666;  //十进制666
    var num = 070; //八进制56
    var num = 079; //无效八进制, 解析为79
    var num = 0xA; //十六进制的10

浮点数就是我们所说的小数:

var float = 3.14 ;

对于极大或极小的浮点数可以用e表示法,即科学计数法:

    var float = 3.14e6 ; //等于3140000
    var float = 3.14e-6 ; //等于0.00000314

浮点数的最高精度为17位小数, 浮点数的计算会产生舍入误差:

    0.1+0.2   //等于 0.30000000000000004
    0.1+0.7   //等于 0.7999999999999999

数值范围:
ECMAscript中最小值保存在Number.MIN_VALUE 中,最大值保存在MAX_VALUE中,超出这个范围的数值都会被转换成Infinity值,这个值是正数转换成Infinity(正无穷),负数转换成-Infinity(负无穷)

NaN: NaN表示非数值(Not a Number)。0除以0会返回NaN; NaN与任何值都不相等,包括NaN本身。我们可以用isNaN()来判断一个值是否’不是一个数值’例如:

0/0 //等于NaN
NaN == NaN //false
正数/0 //Infinity
负数/0 //-Infinity
isNaN(NaN) //true
isNaN(‘hello’) //true
isNaN(true) //false

数值转换: Number() parseInt() parseFloat()
parseInt()比较常用,转换规则:

null undefined 以及对象 直接返回NaN
浮点数 直接取整数部分, 如: parseInt(3.14) //返回3
字符串 如果第一个字符是除正负符号和数字以外的字符,直接返回NaN 如:parseInt(‘a123’) //返回NaN
否则一直往下找,直到碰到非数字字符为止, 当起始字符是”0x”的时直接十六进制转换
当起始字符是”0”时, ECMAscript允许以八进制转换, 不指定进制默认转十进制

  parseInt('18hello') //返回18
  parseInt('020')   //返回20
  parseInt('020',8)  //返回16
  parseInt('0xA') //返回10

实际应用中,我们通常是要转为十进制, 因此我们最好指定进制,如:parseInt(‘3.14’,10)

String
string类型,即字符串,用于表示0个或多个16位Unicode字符组成的序列。
创建字符串有三种方式:

    var str1 = 'hello';
    var str2 = String('hello');
    var str3 = new String('hello');

以上创建字符串方式的区别: str1 str2 str3虽然相等,但他们有区别的:

  typeof str1  //'string'
  str1 instanceof Object  //false
  str1 instanceof String  //false

  typeof str2 //'string'
  str2 instanceof Object  //false
  str2 instanceof String  //false

  typeof str3 //'object'   
  str3 instanceof Object  //true
  str3 instanceof String  //true

以上可以看出,str1和str3类型上就不同, 而str2是将其它类型转换为string类型,除此之外跟str1没有区别。
转换为字符串: String()函数能将任何类型的值转换为字符串,包括null转为’null’,undefined转为’undefined’, 也可以将空字符串(“”)加在一起,效果一样。

Object
ECMAscript中对象是一组数据和功能的集合。[详细的下回详解]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值