• js数据类型


    就直接给自己写的代码吧:该写的都写在注释里了
      1 //js 数据类型共6种(es5)  number,string,boolean,null,undefined,引用数据类型(Array,Object,Function)
      2   //Symbol (ES6 新增,表示独一无二的值)
      3   var typeArr = [
      4     {
      5       type: '数值类型',
      6       value: 251
      7     },
      8     {
      9       type: '字符串类型',
     10       value: 'abcdefg'
     11     },
     12     {
     13       type: '布尔类型',
     14       value: false
     15     },
     16     {
     17       type: '布尔类型',
     18       value: true
     19     },
     20     {
     21       type: 'null类型',
     22       value: null
     23     },
     24     {
     25       type: 'undefined类型',
     26       value: undefined
     27     },
     28     {
     29       type: '引用类型(对象{})',
     30       value: {}
     31     },
     32     {
     33       type: '引用类型(对象{a:2})',
     34       value: { a: 2 }
     35     },
     36     {
     37       type: '引用类型(数组[])',
     38       value: []
     39     },
     40     {
     41       type: '引用类型(数组[1])',
     42       value: [1]
     43     },
     44     {
     45       type: '引用类型(数组[1,2])',
     46       value: [1, 2]
     47     },
     48     {
     49       type: '引用类型(function)',
     50       value: function () { }
     51     }
     52   ]
     53   for (var i = 0; i < typeArr.length; i++) {
     54     console.log(typeArr[i].type + typeArr[i].value + '转化为数值:', Number(typeArr[i].value))
     55     console.log(`${typeArr[i].type}${typeArr[i].value}转化为字符串:`, String(typeArr[i].value))
     56     console.log(`${typeArr[i].type}${typeArr[i].value}转化为布尔值:`, Boolean(typeArr[i].value))
     57     console.log(`${typeArr[i].type}${typeArr[i].value}执行toString:`, typeArr[i].value && typeArr[i].value.toString())
     58     console.log(`${typeArr[i].type}${typeArr[i].value}执行valueOf:`, typeArr[i].value && typeArr[i].value.valueOf())
     59   }
     60   console.log()
     61   // console.log([] + {}) // "[object Object]"
     62   // console.log(Number([])) // "0"
     63   // console.log(String([])) // ""
     64 
     65   //基本数据类型之间转化:
     66   /* 
     67   string转number
     68     1.空字符串或全空字符串   0
     69     2.纯数字字符串或者科学计算法或者进制数表示  得对应的数值
     70     3.其他 NaN
     71   */
     72   console.log(Number('')) // 0
     73   console.log(Number('   ')) // 0
     74   console.log(Number('9527')) // 9527 纯数字字符串
     75   console.log(Number('0x11')) // 17  16进制表示数
     76   console.log(Number('2e2')) // 200 科学计数
     77   console.log(Number('qerw')) // NaN
     78 
     79   /* 
     80   string转Boolean
     81     只有空字符串转为 false
     82     其他全为true
     83   */
     84   console.log(Boolean('')) // false
     85   console.log(Boolean('   ')) // true
     86 
     87   /* 
     88   number转string
     89     1.普通数直接加引号变成字符串
     90     2.表达式表示的数 将转化为实际数后加引号变成字符串
     91   */
     92   console.log(String(0)) // '0'
     93   console.log(String(0x11)) // '17'  
     94   console.log(String(2e2)) // '200' 
     95   console.log(String(2e-2)) // '0.02' 
     96   console.log(String(2 / 3)) // '0.6666666666666666'
     97 
     98   /* 
     99   number转boolean
    100     0为false,非0为true
    101   */
    102   console.log(Boolean(0)) // false
    103   console.log(Boolean(1)) // true 
    104 
    105   /* 
    106     boolean转number
    107       false 0,true  1
    108     */
    109   console.log(Number(true)) // 1
    110   console.log(Number(false)) // 0
    111 
    112   /* 
    113    undefined 转number,string,boolean
    114   */
    115   console.log(Number(undefined)) // NaN
    116   console.log(String(undefined)) // 'undefined'
    117   console.log(Boolean(undefined)) // false
    118 
    119   /* 
    120    null 转number,string,boolean
    121   */
    122   console.log(Number(null)) // 0
    123   console.log(String(null)) // 'null'
    124   console.log(Boolean(null)) // false
    125 
    126   /* 
    127     引用数据类型转number
    128     1.对象 NaN
    129     2.数组 空数组为0,只有一个元素且可以转化为数字的会得到对应的数值,其他的都是NaN
    130     3.函数 NaN
    131   */
    132   console.log(Number({})) // NaN
    133   console.log(Number([])) // 0
    134   console.log(Number([1])) // 1
    135   console.log(Number(['0x11'])) // 17
    136   console.log(Number([1, 2])) // NaN
    137   console.log(Number([1, 2, 3])) // NaN
    138   console.log(Number(function () { })) // NaN
    139 
    140   /* 
    141     引用数据类型转string
    142     1.对象 '[object Object]'
    143     2.数组 去掉[]和分隔逗号,剩下的内容用引号包起来形成字符串
    144     3.函数 整个函数体加引号成为字符串
    145   */
    146   console.log(String({})) // '[object Object]'
    147   console.log(String([])) // ''
    148   console.log(String([1])) // '1'
    149   console.log(String([1, 2])) // '1,2'
    150   console.log(String([1, 2, 3])) // '1,2,3'
    151   console.log(String(function () { })) // 'function () { }'
    152 
    153 
    154   /* 
    155     引用数据类型转boolean
    156     全为true
    157   */
    158   console.log(Boolean({})) // true
    159   console.log(Boolean([])) // true
    160   console.log(Boolean(function () { })) // true
    161 
    162 
    163 
    164   //js显式类型转换 规律和原理总结
    165     // 1.Number()转数值类型的过程:先调用原生方法valueOf,如果返回值是可以转化成数值的基本数据类型,直接返回整个结果,结束。如果返回值是非基本数据类型,根据调用原生方法toString的返回字符串类型转化成最终的数值类型,结束。
    166     // 2.String()转字符串类型的过程:先toString方法,返回值。
    167     //所以知道原理后,涉及到引用类型这种的,记住这些toString的返回值就行了

    谢谢支持,转载或其他用途。请注明出处:https://www.cnblogs.com/singerlee-changealive/
  • 相关阅读:
    页面通过Ajax异步生成的添加按钮增加事件
    本地浏览器访问虚拟机上tomcat失败
    Android 6.0 动态申请 音频+拍照+相册 权限
    TouTiao开源项目 分析笔记6
    TouTiao开源项目 分析笔记5
    TouTiao开源项目 分析笔记4==>一个简单APP 整体常用框架
    TouTiao开源项目 分析笔记3
    TouTiao开源项目 分析笔记2
    Wind Of Change
    TouTiao开源项目 分析笔记1
  • 原文地址:https://www.cnblogs.com/singerlee-changealive/p/11132944.html
Copyright © 2020-2023  润新知