javascript数据类型及转换

此篇数据类型和转换只限于ECMA规范,规范用了比较大的篇幅讲数据类型和类型转换,理解了这个最基本的概念对表达式、语句、执行环境、对象及继承都有非常大的帮助,遂整理如下:

数据类型和值

 

类型转换

表达式运算的重要前提是类型转换

[[ DefaultValue ]](hint)算法

  1. 无参数时:

    • hint = (O instanceof Date) ? “字符串值类型” : “数字类型”
    • [[ DefaultValue ]](hint)
  2. 参数为字符串类型: 

    • 调用对象的toString方法, 如果存在且返回结果是原始值,返回该原始值
    • 调用对象的valueOf方法, 如果存在且返回结果是原始值,返回该原始值
    • 否则抛出一个 TypeError 异常
  3. 参数为数字类型:

    • 调用对象的valueOf方法, 如果存在且返回结果是原始值,返回该原始值
    • 调用对象的toString方法, 如果存在且返回结果是原始值,返回该原始值
    • 否则抛出一个 TypeError 异常

 

常用的表达式运算

当不同类型的数据进行表达式运算的时候,会涉及到数据转换, 本节只分析最常用的表达式运算算法,如下:

1、x==y, != 取反

2、x === y, !==取反

3、x < y,  大于取反

4、 x + y,  x - y => x + (-y)

表达式 “+ <” 总结

  • < : 除都是字符串外,转换为Number类型⽐较
  • + : 只要其中⼀个为String类型,就将另外⼀个转换为String, 否则都转换为Number类型⽐较

 

Demo 实战

 

posted @ 2013-10-08 19:36  mininice  阅读(166)  评论(0编辑  收藏  举报