JavaScript数据类型详解

    xiaoxiao2025-09-12  808

    JavaScript中有5种简单的数据类型(基本数据类型):UndefinedNullBooleanNumberString。还有一种复杂数据类型——ObjectObject本质是由一组无序的明值对组成的。JavaScript不支持任何创建自定义类型的机制,而所有值最终都是上述6种之一(JavaScript数据类型具有动态性)。

    检测给定变量的数据类型——typeof。使用方法:(typeof是一个操作符而不是函数,所以括号可以使用,但不必要)

    var message=”abc”;

    alert(typeof message);//"string" alert(typeof (message));//"string"

    alert(typeof 99);//"number"

    “undefined”——这个值未定义;

    “boolean”——布尔值;

    “string”——字符串;

    “number”——数值;

    “object”——对象或null(null被认为是一个空的对象引用)

    “function”——函数。

    (1)Undefined类型

    使用var声明变量但未对其初始化:

    var message;

    alert(message);//"undefined"

     

    但声明变量未对其初始化和未声明变量还是不同

    var message;

    //var message1;

    alert(message);//"undefined"

    alert(message1);//产生错误

    //"Uncaught ReferenceError: message1is not defined"

    但对于使用typeof检测其属性时,未声明的依旧会显示undefined

    var message;

    //var message1;

    alert(typeof message);//"undefined"

    alert(typeof message1);//"undefined"

    (2)Null类型

    从逻辑上看,null值表示一个空对象指针,所以这就是使用typeof操作符检测null会返回“Object”的原因。

    var car;

    alert(typeof car);//"object"

    对于定义变量未来准备用于保存为对象,最好将其初始化为null,以后只需检查null就可知道是否有相应的变量保存对象引用。

    实际使用时,undefined值是派生自null值,所以存在两者相比返回true

    alert(null == undefined);//true

    alert(null === undefined);//true

    (3)Boolean类型

    该类型只有两个字面值:truefalse。所以,TrueFalse都不是Boolean值,只是标识符。虽然只有两个值,但所有数据类型都可转换成Boolean类型,只需调用Boolean()转型函数。

    var message="abc";

    var message_type=Boolean(message);

    alert(message_type);//true

    下表给出各类数据类型转换规则:

    数据类型

    转换为true

    转换为false

    Boolean

    true

    false

    String

    任意字符串

    “”空字符串

    Number

    任意非零数(包括无穷)

    0NaN

    Object

    任何对象

    null

    Undefined

    Undefined

    (4)Number类型

    由于内存限制,数值所能表达的最小值存在Number.MIN_VALUE中,为5e-324;最大值Number.MAX_VALUE,为1.7976931348623157e+308。若超过最大值,自动转换为Indinity值。Infinity不能参加运算。

    NaN,即非数值(Not a Number)是一个特殊的数值,用于表示本应返回数值的操作数未返回数值的情况(避免抛出错)。例如:0/0会返回NaN,但正数/0返回Infinity,负数返回-Indinity

    定义了几个函数isNaN()(返回Boolean类型,判断是否是数值,是返回false,Number()(数值转换),parseInt()(返整数),parseFloat()

    Number()true——11——1null——0undefined——NaN;字符串只包含数值直接转换(空为0,八进制直接忽略,十六进制转换十进制后显示);

    parseInt():“123bad”——123;“”——NaN;“0xA”——1010.5——10;“070”——56(版本不同会有歧义js356js570.

     

    转载请注明原文地址: https://ju.6miu.com/read-1302589.html
    最新回复(0)