美文网首页javascript基础入门
Javascript - 五个基本数据类型以及类型转换

Javascript - 五个基本数据类型以及类型转换

作者: 厦门_小灰灰 | 来源:发表于2019-11-10 23:10 被阅读0次
    数据类型.png

    通过上图,我们可以知道,

    number
    string
    boolean
    null
    undefined
    

    五个属于基本数据类型

    object
    

    属于复杂数据类型。

    Null类型

    只有一个值的数据类型即null,null值表示一个空指针对象,因此typeof操作符检测null值时返回“object”。

    Undefined类型

    Undefined类型只有一个值即undefined。对未初始化的变量执行typeof操作符会返回undefined。因此显示的初始化变量依然是明智的选择,但不应该初始化为undefined。

    无论在什么情况下都没有必要把一个变量的值初始化为undefined,但对于意在保存对象的变量则应明确的初始化为null值。这样做不仅体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined。

    Boolean类型

    Boolean类型有两个字面值:true和false。注意:true不一定等于1,false不一定等于0。

    Number类型

    Number类型包括整数和浮点数。

    最小数值保存在Number.MIN_VALUE中,最大值保存在Number.MAX_VALUE中。如果某次计算的结果超出了javascript的数值范围则这个数值将被自动转换成特殊的Infinity值(负数则转换为-Infinity(负无穷),整数则转换为Infinity(正无穷))。

    正或负的Infinity值无法参与下一次的计算。

    使用isFinite()函数可以判断数值是否在最小值与最大值之间。

    这里有一个特殊的标识符:NaN(Not a Number),任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等。

    javascript定义了isNaN(),这个函数会尝试将这个参数转换为数值然后再判断是否不是数值,注意判断结果,不是数值返回true,是数值返回false。

    String类型

    数值、布尔值、对象、字符串值都有toString()方法,但null和undefined值没有。

    在不知道要转换的值是不是null或undefined的情况下,可以使用转型函数String(),这个函数能将任何类型的值转换为字符串。

    类型转换

    类型转换为String类型

    转换成String类型的方式有两种:

    • 调用toString()方法
    • 调用String()函数
    //boolean类型转string类型
    //1.使用toString()方法
    var fBool = false;
    var tBool = true;
    
    console.log(fBool.toString());  //"false"
    console.log(tBool.toString());  //"true"
    //2.使用String()函数
    console.log(String(fBool));  //"false"
    console.log(String(tBool));  //"true"
    
    //number类型转String类型
    var intNum = 123;
    var floatNum = 123.45;
    
    //1.使用toString()方法
    console.log(intNum.toString());  //"123" 
    console.log(floatNum.toString());  //"123.45"
    //2.使用String()函数
    console.log(String(intNum));  //"123"
    console.log(String(floatNum));  //"123.45"
    
    //null类型转String类型
    var nullObj = null;
    
    //1.使用toString()方法
    //console.log(nullObj.toString());  //这里会报错:Uncaught TypeError: Cannot read property 'toString' of null
    //2.使用String()函数
    console.log(String(nullObj));  //"null"
    
    //undefined类型转String类型
    var undefinedVal = undefined;
    
    //1.使用toString()方法
    //console.log(undefinedVal.toString());  //这里会报错: Uncaught TypeError: Cannot read property 'toString' of undefined
    
    //2.使用String()函数
    console.log(String(undefinedVal));  //"undefined"
    

    总结:
    null和undefined不能使用toString()方法,但是可以使用String()函数;

    类型转换为Number类型
    //boolean类型转number类型
    var tBool = true;
    var fBool = false;
    
    //1.通过Number()函数
    console.log(Number(tBool));  //1
    console.log(Number(fBool));  //0
    
    //2.通过parseInt()函数
    console.log(parseInt(tBool));  //NaN
    console.log(parseInt(fBool));  //NaN
    
    //string类型转number类型
    var str1 = "123";
    var str2 = "123.45";
    var str3 = "10px";
    //1.通过Number()函数
    console.log(Number(str1));  //123
    console.log(Number(str2));  //123.45
    console.log(Number(str3));  //NaN
    
    //2.通过parseInt()函数
    console.log(parseInt(str1));  //123
    console.log(parseInt(str2));  //123
    console.log(parseInt(str3));  //10
    
    //3.通过parseFloat()函数
    console.log(parseFloat(str1));  //123
    console.log(parseFloat(str2));  //123.45
    console.log(parseFloat(str3));  //10
    
    //undefined类型转number类型
    var undefinedVal = undefined;
    
    //1.通过Number()函数
    console.log(Number(undefinedVal));  //NaN
    //2.通过parseInt()函数
    console.log(parseInt(undefinedVal));  //NaN
    
    //null类型转number类型
    var nullObj = null;
    
    //1.通过Number()函数
    console.log(Number(nullObj));  //0
    //2.通过parseInt()函数
    console.log(parseInt(nullObj));  //NaN
    

    总结:

    • 可以通过三种方式转成数值类型,Number(),parseInt(),parseFloat();

    • boolean类型只能通过Number()进行转换;

    • string类型,使用Number()的时候,如果字符串中包含非数字的字符,那么就转换不成功,返回NaN;注意:空字符串返回的都是0
      使用parseInt()的时候,遇到非数字的字符之后就停止转换为数字。所以 "10px" 转成 10,另外如果第一个字符串就是非数字的字符,那么返回的是NaN,如:“abc” 返回 NaN
      使用parseFloat()的时候,当同时存在多个小数点的时候,以第一个小数点为主;

    • null类型,使用Number()的时候,返回0,使用parseInt()的时候,返回NaN;

    • undefined类型,使用Number()的时候,返回NaN,使用parseInt()的时候,返回NaN;

    类型转换为Boolean类型
    //number类型转boolean类型
    var number1 = 123;
    var number2 = -123;
    var number3 = 0;
    
    console.log(Boolean(number1));  //true
    console.log(Boolean(number2));  //true
    console.log(Boolean(number3));  //false
    
    //string类型转boolean类型
    var str1 = "";
    var str2 = "   ";
    var str3 = "name";
    
    console.log(Boolean(str1));  //false
    console.log(Boolean(str2));  //true
    console.log(Boolean(str3));  //true
    
    //null类型转boolean类型
    var nullObj = null;
    
    console.log(Boolean(nullObj));  //false
    
    //undefined类型转boolean类型
    var undefinedVal = undefined;
    
    console.log(Boolean(undefinedVal));  //false
    

    总结:

    • 空字符串返回false,字符串中都是空返回true

    相关文章

      网友评论

        本文标题:Javascript - 五个基本数据类型以及类型转换

        本文链接:https://www.haomeiwen.com/subject/xxczbctx.html