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

    1、有哪些数据类型?

    (1)基本数据类型:指简单的数据类型。有五种,分别是:

    • 数字 → Number                特殊:NaN 表示Not a Number,不是一个数字。但却是Number类型。

    • 字符串 → String

    • 布尔 → Boolean

    • 未定义 → Undefined

    • 空 → Null

    (2)引用数据类型(复杂数据类型) 有多种,比如: 

    • 数组 → Array

    • 日期 → Date

    • 对象 → Object

    • ...

    2、数据类型转换

    (1)强制转换:就是手动的通过转换工具将一个数据转换成另一种类型的数据。

     ① 其他数据类型转换数字 Number

    • Number(其他数据);
      //数值字符串转数字
      var result1 = Number('123');
      console.log(result1);//123
      console.log(typeof(result1)); //number
      
      //非数值字符串转数字
      var result2 = Number('abc');
      console.log(result2); //NaN,'abc'整体不是数值,转换不了正常的数字。
      console.log(typeof(result2)); //number
      
      //非数值字符串转数字
      var result3 = Number('12abc');
      console.log(result2); //NaN,'12abc'不是数值,转换不了正常的数字
      console.log(typeof(result2)); //number
      
      //布尔值转数字
      var result4 = Number(true);  
      var result5 = Number(false); 
      console.log(result4)  //1
      console.log(result5)  //0
      
      //undefined 转数字
      var result6 = Number(undefined);
      console.log(result6); //NaN
      
      //null 转数字
      var result7 = Number(null);
      console.log(result7); //0
    •  parseInt(其他数据);
      //与Number工具不同是,parseInt能将正常的字符串数值转换为整数
      
      //数值字符串转数字
      var result1 = parseInt('123.34');
      console.log(result1);//123
      console.log(typeof(result1)); //number
      
      //非数值字符串转数字
      var result2 = parseInt('abc');
      console.log(result2); //NaN,'abc'整体不是数值,转换不了正常的数字。
      console.log(typeof(result2)); //number
      
      //非数值字符串转数字
      var result3 = parseInt('12abc');
      console.log(result2); //12,会把最前面的数字提取出来
      console.log(typeof(result2)); //number
      
      //布尔值转数字
      var result4 = parseInt(true);  
      var result5 = parseInt(false); 
      console.log(result4)  //NaN
      console.log(result5)  //NaN
      
      //undefined 转数字
      var result6 = parseInt(undefined);
      console.log(result6); //NaN
      
      //null 转数字
      var result7 = parseInt(null);
      console.log(result7); //NaN
    • parseFloat(其他数据); 
    • 与parseInt不同的是,可以将正常的小数字符串数值转换成数字类型的小数,其他情况都和parseInt相同。
      var result1 = parseFloat('3.14');
      console.log(result1); //3.14
      console.log(typeof(result1)); //number

      注意事项:①Number 可以将true和false 转换成1、0   但是parseInt 和parseFloat 将true和false 转换成 NaN

           ②Number 可以将null转换成0 ,parseInt 和parseFloat 将null转换成 NaN

      ②其他类型数据转字符串 String

      所有的数据在转换成字符串时,其实就是在其他数据两边加上双引号或单引号

    • 变量名.toString();
      //数字转字符串
      var num = 123;
      var result1 = num.toString();
      console.log(result1); //"123";
      
      //布尔值转字符串
      var flag = true;
      var flag2 = false;
      console.log(flag.toString()); //"true"
      console.log(flag2.toString());//"false"
      
      //在使用变量.toString()方法时,变量的值不能为undefined和null,否则会报错
      var a = null;
      a.toString(); //报错
      注意:在使用变量.toString()方法时,变量的值不能为undefined和null,否则会报错
    • String(其他数据)
      var result1 = String(123); //'123';
      var result2 = String(true); //'true';
      var result3 = String(NaN); //'NaN';

      ③其他数据类型转布尔 Boolean

      注意:null、undefined、0、NaN、'' 转换为boolean结果为false,其他的数据转换的结果为true

    • Boolean(null); //false
      Boolean(''); //false
      //其他略
      
      Boolean('我'); //true
      Boolean(123); //true

      (2)隐式转换 【重要】

        什么叫做隐式转换?

      • 隐式转换,也被称为自动转换。就是在程序运行过程中,不需要我们手动转换,数据会根据运算情况自动的转换为其他类型的数据

      ①其他数据转数字 Number

      在做算术运算时(除了和字符串做相加运算外),其他非数字类型的数据会自动的转换为Number类型的数据。
      就相当于悄悄的,看不见的用Number(其他数据)转换为数字。
      任何数据和NaN做运算(除了和字符串做相加运算外),结果始终都是NaN。
      var result1 = '2' - 1; //字符串 '2' 自动转换为数字 2
      console.log(result1); // 1;
      
      var result2 = '3a' - 1;  //字符串 '3a' 自动转换为数字 NaN
      console.log(result2); // NaN

      ②其他数据转字符串 String

      任何数据和字符串做相加运算时,其他非字符串数据会自动的转换为String类型的数据。
      就相当于悄悄的,看不见的用String(其他数据)转换为字符串。
      var result1 = true + '我'; // 布尔值 true 自动转换为字符串 'true'
      console.log(result1); // 'true我'

      ③其他数据转布尔 Boolean

      在取反、选择语句 和 循环语句中的条件表达式中,其他数据会自动的转换为布尔值。
      就相当于悄悄的,看不见的用Boolean(其他数据)转换为布尔值。
      console.log(!1);  //false ; 数字1 转换为boolean值为 true,对true取反就是false
      consoel.log(!(1>=2)); //true
    • 那么,问题来了,看下面代码,输出什么,foo的值为什么?
    • var foo = "11"+2-"1";
              console.log(foo);
              console.log(typeof foo);

      foo的值为111,foo的类型为number

    • 解析:
      任何数据和字符串做相加运算时,其他非字符串数据会自动的转换为String类型的数据。
      在做算术运算时(除了和字符串做相加运算外),其他非数字类型的数据会自动的转换为Number类型的数据。
  • 相关阅读:
    deep_learning_Function_tensorflow_reshape()
    deep_learning_tensorflow_get_variable()
    deep_learning_Function_tensorflow_random_normal_initializer
    deep_learning_Function_numpy_newaxis参数
    deep_learning_Function_tensorflow_unpack()
    deep_learning_Function_tensorflow_transpose()
    deep_learning_LSTM长短期记忆神经网络处理Mnist数据集
    deep_learning_Function_rnn_cell.BasicLSTMCell
    嵌入式技术基础与实践-学习札记(一)
    2019-ACM-ICPC-徐州站网络赛- I. query-二维偏序+树状数组
  • 原文地址:https://www.cnblogs.com/zhaosijia----1234/p/8734300.html
Copyright © 2011-2022 走看看