js基础--javascript基础概念之数据类型


数据类型

javascript有5种基本数据类型(简单数据类型) 分别如下:

        1. 1.undefined -- 未定义值;

        2. 2.boolean -- 布尔值;

        3. 3.string -- 字符串值;

        4. 4.number -- 数值;

        5. 5.null -- 空值;


还有一个复杂数据类型--- object  object本质上是一组无序的名值对应组成的。


typeof 操作符:typeof不是一个函数  是一个操作符。

使用typeof操作符可能会返回如下某些字符串:


var str = '字符串';
var num = 100;
var bool = true;
var obj = new Object();
var Fun = function(){};
var un;
alert(typeof(str));//string
alert(typeof(num));//number
alert(typeof(bool));//boolean
alert(typeof(obj));//object
alert(typeof(Fun));//Function
alert(typeof(un));//undefined


typeof 不单单可以操作变量。还可以是数值字面量的操作。如:

alert(typeof("string"));//string
alert(typeof(11));//number


有时候 typeof也会返回一些令人迷惑但技术上又是正确的值。比如,调用typeof null 会返回object 。因为特殊值null 被认为是 空object 的引用。


Undefined 类型

Undefined 只有一个值。即特殊的undefined 。 在使用var 声明变量未初始化的值则为undefined。如

var demo;
//未初始化   undefined。

var demo = uneducated

是相等的。

一般没必要设置undefined的字面量。


Null 类型

Null类型是第二个只有一个值的数据类型。这个特殊的值是null 逻辑上看来  null 类型就是一个没有指针的的空对象。当你使用typeof 操作符时。返回的是一个对象。如:


        var demo = null;        
        alert(typeof(demo));//object

如果你准备定义一个变量来保存object 。那么 建议你赋null值。

实际上 undefined是派生于null 值的。因此。

    alert(null == undefined);        
        //true


Boolean类型

该类型只有两个值。True && false 。这两个值和数值不是一回事。True不一定等于1;false不一定等于0;

如果想要一个值转换为boolean 可以使用boolean函数。如;

     

    var str = '字符串';
    alert(Boolean(str));//true

例子中的str转换为了boolean值。Boolean()可以对任何数转换为布尔值。

至于转换的结果,则取决于实际要转换的值。下面是各类数值转换规则。


数据类型     True                         False

Boolean         True                         False

String         任何非空字符串                 空字符串

Number         任何非零的数值(无穷大) 0 和 NaN

Object         任何对象                 null

Undefined N/A(不适用)             Undefined


注意:Boolean 是区分大小写的,也就是说 只有true false 才是布尔值 其他都不是。


Number 类型

这种类型使用IEEE754格式来表示整数和浮点数值。

浮点数值;

所谓浮点 就是小数类型。数值中包含有小数点的。且小数点后面必须包含有一位小数以上。如

        var a = 1.5;//正常的浮点式        
        var b = 0.5;//解析为0.8
        var c = .8;//这样也可以正常解析 但是不建议这么写。
        var d = 200.0;//解析为200
        var e = 29.;//解析为29
        var float = 9.22e4;//92200

浮点数值的最高精度是17位小数。但是进行算术运算时其精确度远远不如整数。例如,0.1 加 0.2 不是等于0.3  而是0.300000000000000004;小小的舍入误差导致无法测试特定的浮点值。例如;

        if(0.1 + 0.2 == 0.3){        
            alert("True");
        }else{
            alert("Flase");//结果是这个
        }

数值范围:

由于内存的限制,javascript表示的数值有个范围;能表示的最小的值保存在Number.MIN_VALUE ,而能表示的最大的值保存在Number.MAX_VALUE

    alert(Number.MIN_VALUE);// 能表示的最小值是5e-324    
    alert(Number.MAX_VALUE);//能表示的最大值是1.7976931348623157e+308