js如何把一个变量转换成数字类型

Posted on   猫头唔食鱼  阅读(4399)  评论(0编辑  收藏  举报

 

复制代码
     let a = 'a'
        let b =  true 
        let c = NaN
        let d = null
        let e = undefined
        let f = {}
        let g = []
        let h = {name:'zs'}
        let i = ['a']
        let j = '1.03'
        let k = '1.03a'
        let l = 'b1.03a'
复制代码

 

复制代码
 // 判断是否NaN
        let isNaN = a => a!=a?true :false

// 把变量转换成数字,不能转换的,就转成NaN
 let toNumber = a =>  {
            if(isNaN(a)){
                return a * 1
            }else{
                if(typeof(a) === 'number'){
                    return parseFloat(a)
                }else{
                    if(typeof(a) === 'string'){
                        return parseFloat(a)
                    }else{
                        return a * 1
                    }
                }
            } 
        }


// 或者
 
        let toNumber2 = a =>  {
            if(isNaN(a)){
                return a - 0
            }else{
                if(typeof(a) === 'number'){
                    return parseFloat(a)
                }else{
                    if(typeof(a) === 'string'){
                        return parseFloat(a)
                    }else{
                        return  a - 0
                    }
                }
            }
        }
 
     console.log(toNumber(a)); // NaN
        console.log(toNumber(b)); // 1 
        console.log(toNumber(c)); // NaN
        console.log(toNumber(d)); // 0
        console.log(toNumber(e)); // NaN
        console.log(toNumber(f)); // NaN
        console.log(toNumber(g)); // 0
        console.log(toNumber(h)); // NaN
        console.log(toNumber(i)); // NaN
        console.log(toNumber(j)); // 1.03
        console.log(toNumber(k)); // 1.03
        console.log(toNumber(l)); // NaN


复制代码

 

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示