js数据类型转换
在JavaScript中类型转换有三种情况:
转换为数字(调用Number(),parseInt(),parseFloat()方法)
转换为字符串(调用.toString()或String()方法)
转换为布尔值(调用Boolean()方法) 还有隐式转换 注意:null、undefined没有.toString方法
转换为数字 Number():可以把任意值转换成数字,如果要转换的字符串中有不是数字的值,则会返回NaN Number('1') // 1 Number(true) // 1 Number('123s') // NaN Number({}) //NaN parseInt(string,radix):解析一个字符串并返回指定基数的十进制整数,radix是2-36之间的整数,表示被解析字符串的基数。 parseInt('2') //2 parseInt('2',10) // 2 parseInt('2',2) // NaN parseInt('a123') // NaN 如果第一个字符不是数字或者符号就返回NaN parseInt('123a') // 123 parseFloat(string):解析一个参数并返回一个浮点数 parseFloat('123a') //123 parseFloat('123a.01') //123 parseFloat('123.01') //123.01 parseFloat('123.01.1') //123.01 隐式转换 let str = '123' let res = str - 1 //122 str+1 // '1231' +str+1 // 124 转换为字符串 .toString() ⚠️注意:null,undefined不能调用 Number(123).toString() //'123' [].toString() //'' true.toString() //'true' String() 都能转 String(123) //'123' String(true) //'true' String([]) //'' String(null) //'null' String(undefined) //'undefined' String({}) //'[object Object]' 隐式转换:当+两边有一个是字符串,另一个是其它类型时,会先把其它类型转换为字符串再进行字符串拼接,返回字符串 let a = 1 a+'' // '1' 转换为布尔值 0, ''(空字符串), null, undefined, NaN会转成false,其它都是true Boolean() Boolean('') //false Boolean(0) //false Boolean(1) //true Boolean(null) //false Boolean(undefined) //false Boolean(NaN) //false Boolean({}) //true Boolean([]) //true 条件语句 let a if(a) { //... //这里a为undefined,会转为false,所以该条件语句内部不会执行 } 隐式转换 !! let str = '111' console.log(!!str) // true {}和[]的valueOf和toString的返回结果? valueOf:返回指定对象的原始值 对象 返回值 Array 返回数组对象本身。 Boolean 布尔值。 Date 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。 Function 函数本身。 Number 数字值。 Object 对象本身。这是默认情况。 String 字符串值。 Math 和 Error 对象没有 valueOf 方法。 toString:返回一个表示对象的字符串。默认情况下,toString() 方法被每个 Object 对象继承。如果此方法在自定义对象中未被覆盖, toString() 返回 "[object type]",其中 type 是对象的类型。 ({}).valueOf() //{} ({}).toString() //'[object Object]' [].valueOf() //[] [].toString() //''
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具