• 类型转换


    类型转换
    1、数据类型
    2、显示类型转换
    3、隐示类型转换
    1、ECMAScript最新的7中数据类型
    原始类型 Number String Boolean Null Undefined Symbol(es6)
    对象 Object
    2、显示类型转换
    1)Number函数
    <script type="text/javascript">
      /**
      * 原始类型:数值,字符串,布尔值,undefined,null
      */
      console.log(Number(324)) // 324
      // 字符串转换后如果可以被解析成数值,则转换为相应的数值,否则得到NaN
      console.log(Number('324')) // 324
      console.log(Number('324abc')) // NaN
    
      console.log(Number('')) // 0
      // true转成1,false转成0
      console.log(Number(false)) // 0
      // 转成NaN
      console.log(Number(undefined)) // NaN
      // 转成0
      console.log(Number(null)) // 0
    
      /**
      * 对象类型
      * 先调用对象自身的valueOf方法,如果该方法返回原始类型的值,则直接对该值使用Number
      * 方法,不再进行后续步骤
      *
      * 如果valueOf返回复合类型的值,再调用对象自身的toString方法,如果toString方法
      * 返回原始类型的值,则对该值使用Number方法,不再进行后续步骤
      *
      * 如果toString方法返回的是复合类型的值,则报错
      */
      var a = {a:1}
      console.log(Number(a)); // NaN
      /**
      * 为什么是这个值,首先调用对象自身的valueOf方法,a.valueOf返回的是一个对象,复合类型{a:1}
      * 再调用对象自身的toString方法,a.toString,这个时候返回是基本类型字符串"[object Object]"
      * 这个时候Number('[object Object]') 就变成了NaN
      */
    </script>
    2)String函数
    <script type="text/javascript">
      /**
      * 原始类型:数值,字符串,布尔值,undefined,null
      */
      console.log(String(123)); // "123"
      console.log(String('abc')); // "abc"
      console.log(String(true)); // "true"
      console.log(String(undefined)); // "undefined"
      console.log(String(null)); // "null"
    
      /**
      * 对象
      * 先调用toString方法,如果toString方法返回的是原始类型的值,则对值使用String方法,
      * 不再进行以下步骤
      *
      * 如果toString方法返回的是复合类型的值,再调用valueOf方法,如果valueOf方法返回的
      * 是原始类型的值,则对该值使用String方法,不再进行以下步骤。
      *
      * 如果valueOf方法返回的是复合类型的值,则报错
      */
      console.log(String({a:1})) // "[object Object]"
      // b.toString() 返回 "[object Object]" 是字符串,就不再继续了
    </script>
    3)Boolean函数
    <script type="text/javascript">
      /**
      * 原始类型:undefined,null,-0,+0,NaN,'' => false
      */
      console.log(Boolean(undefined));
      console.log(Boolean(0));
      console.log(Boolean(NaN));
      console.log(Boolean(null));
      console.log(Boolean(''));
      // 其他一律为true
      console.log(Boolean([])); // true
      console.log(Boolean({})); // true
    </script>
    3、隐示类型转换
    1)四则运算(加法,减法,乘法,除法)
    2)判断语句
    3)Native调用
    <script type="text/javascript">
      // 四则运算
      console.log(100 + 10); // 110
      console.log(100 + '10'); // 10010
    
    
      //判断语句
      var a = 100;
      if (a) {
        console.log('a come in');
      }
      var b = '';
      if(b) {
        console.log('b come in')
      }
      // 打印出了a come in,没打印出b come in
    
      // native代码调用
      alert({a:1}); // [Object Object]
    </script>



  • 相关阅读:
    2020.02.28 【ABAP随笔】- EXCEL批导程式3
    2020.02.27 【ABAP随笔】- EXCEL批导程式2
    2020.02.26 【ABAP随笔】- EXCEL批导程式1
    2020.02.24 【ABAP随笔】- EXCEL常见操作笔记 1
    2020.02.15 【ABAP随笔】- 物料主数据增强
    2020.01.14 【ABAP随笔】-程序优化笔记
    2020.01.11 【ABAP随笔】获取标准报表数据(MB52)数据进行客制ALV
    2020.01.11 【ABAP随笔】SM30常见增强操作-自动带描述等
    2020.01.10 【ABAP随笔】ALV上的下拉框
    Linux资源监控命令/工具(调试)
  • 原文地址:https://www.cnblogs.com/wzndkj/p/10153990.html
Copyright © 2020-2023  润新知