您的位置:首页 > Web前端 > JavaScript

Js 数据类型详解和各种数据类型之间的运算

2013-10-22 18:30 429 查看

数据类型

            ECMAScript有5种简单数据类型(基本数据类型)和一种复杂数据类型(object )

            1 : undefined

            2 : null

            3 : Boolean

            4 : Number

            5 : String

首先介绍一个函数 typeof (检测给定变量的数据类型),它有六种返回值类型(全部小写)

1 :undefined

2 : boolean

3 : string

4 : number

5 : object(如果这个值是对象或者

6 : function 

说明下:function也是对象但由于函数有一些特殊的属性。所以需要typeof来区分函数和其他对象之间的区别。

undefined : 类型只有一个值 即undefined .。在使用 var 声明变量但未对其加以初始化时,这个变量的值就是undefined.

             对未初始化和未声明的变量执行typeof操作都返回了undefined .对于尚未声明的过的变量,只能执行一项操作,即使用typeof操作符检测数据类型。否则报错

            var message;

            var age ;

           alert(typeof message);  // undefined

           alert(type of age); // undefined

           alert(message) ;// undefined

           alert(age); // 产生错误

null : 类型是第二个只有一个值的数据类型 null值表示一个空对象指针,这也是使用typeof操作检测null值会返回object的原因

          由于undefined 的是派生自 null值的因此ECMA-262 规定对它们的相等性测试返回true

           alert(null == undefined) ; // true

Boolean :

Number :

     十进制 : var intNum = 55;

     八进制 :    var octalNum =  070  // 八进制的56

    十六进制 : var hexNum = 0xA //十六进制10                Ox开头后跟0-9 a-f(不分大小写)

     浮点数值的最高精度是17位小数 但进行算术计算时其精确度远远不如整数 例如0.1+0.2的结果不是0.3。而是0.3000000000004(这是基于IEEE754数值的浮点计算的通病)

   Number.MAX_VALUE  最大值

   Number.MIN_VALUE  最小值

  如果一个数值超过这个范围就是Infinity -Infinity(正负无穷)所以如果想确定一个值是不是无穷可以用isFinite()来判断 因为Infinity不是能够参与计算的值

alert(isFinite(Number.MAX_VALUE+Number.MAX_VALUE)); // false;

  NaN 即非数值 这个数值用于表示一个本来要返回数值的操作数未返回数据的情况(这样就不会抛出错误了)

任何涉及NaN的操作都返回NaN

NaN/10  ;//NaN

其次NaN与任何值都不相等

alert(NaN == NaN) ;// false;

isNaN()这个函数接受一个参数,该参数可以是任何类型,函数会帮我么确定这个参数是否不是数值,isNaN在接受到一个值之后,会尝试将这个值转换为数值,

parseInt()

由于ECMAsCRIPT 3 js引擎 070被当成八进制字面量

而EcmaScript 5 js引擎070 被当成0 即不具有解析8进制值的能力

为了消除上述困惑 可以为这个函数提供第2个参数。转换时使用基数 (多少进制)parInt("0xAF",16) //175

String :类型

    \n 换行 \t 制表 \b空格 \r 回车 \\斜杠

转换成字符串

toString();

var age = 11;

age.toSring() ; // '11';

对应数值的toString()还可以传入进制

var num = 10;

num.toString(2);//"1010" //转换成2进制的字符串

下面讲述下各类型之间的运算

在表达式中出现不同的数据类型时:js会自动的进行数据类型转换以使他们相容,通常来讲 类型转换是根据优先级来进行的

字符串优先级最高,其次是浮点型,整形, 布尔型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息