zoukankan      html  css  js  c++  java
  • javaScript基础用Number()把其它类型转换为Number类型

    js在做加法运算时会隐式调用Number()方法

    一:基本类型

    字符串

    把字符串转换为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果都是NaN,空字符串会变为数字零

    console.log(Number("12.5")); //12.5
    console.log(Number("12.5px")); //NAN
    console.log(Number("12.5.5px"));//NAN
    console.log(Number(""));//0

    布尔

    console.log(Number(true));//1
    console.log(Number(false));//0
    console.log(isNaN(false));//false可以转为0 是有效数字

    null和undefined

    console.log(Number(null));//0
    console.log(Number(undefined));//NaN

    二:引用数据类型

    把引用数据类型转换为数字是先把它基于toString()转换为字符串,再转换为数字

    console.log(Number({num:"10"}));//NaN
    console.log(Number({}));//NaN  ({num:"10"}).toString();是"[object Object]" 是非有效数字字符所以是NaN
    console.log(Number([]));//0 [].toString()是""所以转为数字是0
    console.log(Number([12]));//12 [12].toString()是"12"所以转为数字是12
    console.log(Number([12,23]));//NaN [12].toString()是"12,23"里面的","是非有效数字字符所以是NaN

    相关面试题

    let a=10+null+true+[]+undefined+'腾讯'+null+[]+10+false;
    console.log(a)//结果是字符串: "11undefined腾讯null10false"
    上面的面试题会隐式调用Number(),null变为数字是0,true是1,[]变为数字,先要经历变为空字符串,遇到字符串,啥也别想了,直接变为字符串拼接.所以结果是字符串"11undefined腾讯null10false"
    当去掉undefined前面的[]结果就变成了NaN腾讯null10false
  • 相关阅读:
    [古城子的房子] 贪心
    [小兔的棋盘] 组合数学
    [Triangle] Fibonacci+二分查找
    [Fibonacci] 矩阵快速幂
    [DP?]素数筛+Lucas定理+费马小定理
    react本地开发关闭eslint检查
    react 不同js文件里公用同一个变量
    js学习笔记
    node内存扩展,前端项目运行时报内存不足的错误
    Gitee码云通过WebHooks实现自动同步代码部署
  • 原文地址:https://www.cnblogs.com/zimengxiyu/p/11666517.html
Copyright © 2011-2022 走看看