zoukankan      html  css  js  c++  java
  • JavaScript数据类型转换

      什么是数据类型转换?

    使用表单、prompt 获取过来的数据默认类型是字符串类型的,此时就不能直接进行加减法运算,而需要转换变量的数据类型。

    通俗来说,数据类型转换就是将一种数据类型转换成另外一种数据类型。

    通常有 3 种方式的转换:

    1. 转换为字符串类型
    2. 转换成数字型
    3. 转换成布尔类型

    JS是弱类型语言,变量的数据类型是由变量值的数据类型决定的。

    var stu; 
        //undrfined未定义变量的值
        stu=25;
        // number 数字类型的值
        stu="25"
        // string 字符串类型的值

    转换方法

    1、强制类型转换:将一种数据类型强制转换成另一种类型的数据,类型转换主要是指将其他类型的数据准换成String、Number、Boolean类型的数据

    2、隐式转换方法:自动转换,由于JS在运算过程中,自己进行转换的操作,不需要人为的参与

    一、转换为字符串

     方式  说明  案例
     toString()  转换为字符串  var num=1; alert(num.toString());  
     String() 强制转换   转换成字符串  var num=1; alert(String(num));
     加号拼接字符串        和字符串拼接的结果都是字符串        var num=1; alert(num+'我是个字符串');      

     


     (一)、使用 toString( )方法

    语法:被转换对象  .toString()

    注意:

      1、这种调用方法只适用Number、Boolean类型的数据,Null和Undefined类型数据会报错,并不适用。

      2、控制台黑色的文本是字符串类型的,蓝色的文本是数字类型的。

    实例:

    在这个例子中变量 num的值为数字 123;使用 toString() 方法将其转换成 字符串并且赋值给变量 str。这样就将数值类型转换成字符类型。

    var num = 123;
    console.log(num);
    console.log(typeof num);
    
    var str=num.toString();
    console.log(str);
    console.log(typeof str);

    这种调用方法只适用Number、Boolean类型的数据,Null和Undefined类型数据会报错,并不适用

    (二)调用 String() 函数

    调用String( )函数,并将被转换的数据作为参数传递给函数。

    语法:String(被转换对象)

    例如:a.String(a) 表示调用String函数,将a转换成字符串类型数据。

     注意:

      1、使用String()做 强制转换的时候,对于Number、Boolean类型的数据实际上就是调用toString( )方法。

      2、但是对于null和undefined,就不会调用toString( )方法,它会直接将 null 转化为 "null" ,将 undefined 转化为 "undefined"

    实例:

    var num = 123;
    console.log(String(num));
    console.log(typeof String(num));

    使用 String() 会直接将 null 转化为 "null" ,将 undefined 转化为 "undefined"

    var num = null;
    console.log(String(num));
    num = undefined;
    console.log(String(num));

    (三)+ 拼接字符串 (隐式转换)

    这种方法更常用使用+拼接转换字符串,最简单的方法就是 给被转换对象 加上一个空字符串('')。

    实例:

    var num = 123;
    var str = num + '';
    console.log(str);
    console.log(typeof str);

    二、转换为数字型(重点)

    方式 说明 案例
    parseInt(string) 函数                将string 类型转换成整数数值型            parseInt('34')   
    parseFloat(string) 函数 将 string 类型转换为浮点数值型 parseFloat('34.81')        
    Number() 强制转换函数   将 string 类型转化为数值型 Number('12')
    JS 隐式转换(- * /) 利用算术运算隐式转换为数值型 '12' - 0

     (一)parseInt() 函数转换为数值型

    parseInt( )函数可以将字符串中有效的整数内容提取出来,将字符型转换为 数字型的;

    parseInt( )函数在解析字符串的时候按照从左到右的顺序

    console.log(parseInt('3.12'));  // 3 取整
    console.log(parseInt('123aa'));  // 会取到字符串中的整数部分,从左向右
    console.log(parseInt('rem111px')); // NaN

    (二)parseFloat() 函数转换为数值型

    parseFloat( ) 函数可以获得有效的小数,并且将字符型转换为数字型

    parseFloat( )函数在解析字符串的时候按照从左到右的顺序,不能解析除了数字以外的文本。

    console.log(parseFloat('3.14'));  //3.14
    console.log(parseFloat('123aa'));  //去掉后面部分,只保留数字
    console.log(parseFloat('rem123qq'));  //NaN

     注意:

    1、如果对非String类型数据使用parseInt( ) 或是parseFloat( ) ,它会现将其转化为String,然后再进行操作。

    2、由于 parseInt( ) 或是parseFloat( ) 无法解析非数字类型的字符,所以输出 NaN,但是数据类型还是变为 number 数字类型。

    var a=parseFloat(true);
    console.log(a);
    console.log(typeof a);
    
    a=parseFloat(null);
    console.log(a);
    console.log(typeof a);
    
    a=parseFloat(undefined);
    console.log(a);
    console.log(typeof a);

    (三)使用Number() 函数(强制转换)

    调用 Number() 函数使其他类型的数据转换成 数字型

    1、当需要转换的字符串引号引的不是数字

    例如abc,最终输出结果就是NAN(Not A Number)不是一个数字。

    var a=Number('doctor');
    console.log(a);console.log(typeof a);

    2、字符串→Number 转换情况:

      1、如果是纯数字的字符串,直接将其转换为数字;

      2、如果字符串中有非数字内容,则转换为NAN(Not A Number);

      3、如果字符串是一个空串或是一个全部由空格组成的字符串,则转换为0。

    3、Boolean值→Number 转换情况:

      1、如果是true,转换为1;

      2、如果是false,转换为0。

    4、Null值→Number 转换情况:

      如果是null(空值),转换为0。

    5、Undefined→Number 转换情况:

      如果是undefined,转换为NAN(Not A Number)

    (四)算术运算隐式转换

    利用算术运算 (- * /)隐式转换数据类型

    var a='12'-0;
    console.log(a);
    a='12'*1;
    console.log(a);
    a='12'/1
    console.log(a);

     (五)实例

    要求:在页面弹出一个输入框,输入了出生年月之后,可以计算年龄

    实现思路:

      1、弹出一个输入框(prompt),让用户输入出生年份(用户输入)

      2、将用户输入的值使用变量保存起来,然后用今年的年份去减去变量值,结果就是现在的年龄(程序内部处理)

      3、弹出警示框(alert),将计算的结果输出(输出结果)

    在这里 year取过来的是字符串类型的值,但是这里面用的是减法(-),隐式转换

    var year = prompt('请输入您的出生年份');
    age = 2019 - year;
    alert('今年 '+age+'岁了');

    三、转换为布尔类型

    方式 说明 案例
    Boolean() 函数          其他类型转换成布尔值          Boolean('true')         

    注意:

    • 代表 空、否定 的值都会被转换成 false,例如 ''、0、NaN、null、undefined
    • 其余的值都会被转换成 true

    方法:使用Boolean( ) 函数

    var a=123;
        // 调用Boolean()函数将数据类型转化为Boolean
        a=Boolean(a);
        console.log(a);
        console.log(typeof a);

    数字类型→布尔,除了0和NAN其余的都是true;

    字符串→布尔,除了空串(没有内容)其余都是true;

    空值→布尔,null转换的是false;

    undefined→布尔,undefined转换的也是空值;

    对象(object)也会转换成true 。

  • 相关阅读:
    January 25th, 2018 Week 04th Thursday
    January 24th, 2018 Week 04th Wednesday
    January 23rd, 2018 Week 04th Tuesday
    January 22nd, 2018 Week 04th Monday
    January 21st, 2018 Week 3rd Sunday
    January 20th, 2018 Week 3rd Saturday
    January 19th, 2018 Week 3rd Friday
    January 18th, 2018 Week 03rd Thursday
    January 17th, 2018 Week 03rd Wednesday
    January 16th, 2018 Week 03rd Tuesday
  • 原文地址:https://www.cnblogs.com/nyw1983/p/11494874.html
Copyright © 2011-2022 走看看