💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## 1.强制转换 * string,boolean-->Number(value) > 特点:只能识别纯数字的字符串 ~~~ true-->1 false-->0 ~~~ ~~~ var a = "12"; var b = "true"; var c = true; var d = false; console.log(Number(a)); console.log(Number(b));//注意 console.log(Number(c)); console.log(Number(d)); ~~~ 输出答案如下: ![](https://box.kancloud.cn/69c70bfedfdfeb5e7476b6be40c795d4_70x113.png) * string-->number parseInt(); parseFloat(); Tip:第一位必须为数字 ~~~ var test =document.getElementById("test"); var height=test.style.height; console.log(parseInt(height)); test.onclick = function(){ this.style.height = parseInt(this.style.height)+1+"px"; } var a="12px"; var b="a13px"; var c="13.45px"; console.log(parseInt(a)); console.log(parseInt(b)); console.log(parseInt(b)); console.log(parseFloat(c)); ~~~ ![](https://box.kancloud.cn/b2ea551f9540db7dcef13b57f8815e32_95x171.png) ## 2.自动转换 > 定义:不需要程序员干预,js自动完成的类型转换 算数计算中的自动转换: ### 2.1.算数计算中,数据都默认转为数字,再计算,不能转为数字则为NaN ~~~ Boolean类型:true-->1 false-->0 eg: var a=1; var b=true; var c = "hello world"; console.log(a+b); //2 console.log(a-c); //NaN ~~~ ### 2.2.特殊+运算中,碰到字符串,+就变为字符串拼接 另一个不是字符串的数据,被自动转为字符串 比较运算(>,<,>=,<=,==,!=)中的自动转换: 默认将所有类型转为数字再比较 将两个值做比较-->返回值:true、false ## 3.强制转换 ### 3.1. 任意-->数字:3个API a.特点:只能识别纯数字的字符串 ~~~ Number(x) eg: var a ="20"; console.log(Number(a)) //只能识别这样的字符串 ~~~ b. 将字符串转为数字:2个API parseInt(str): 从第一个字符开始依次读取每个数字,只要碰上第一个非数字字符就停止,自动跳过开头的空字符 ***不识别小数点 > Tip:何时使用:将字符串转为整数时 ~~~ var width="20px"; console.log(Number(width)) //NaN console.log(parseInt(width)) //20 ~~~ parseFloat(str):用法同parseInt > 比较Number()和parseInt() ~~~ var b=true; console.log(Number(b)) //1 console.log(parseInt(String(b))) //NaN ~~~ ### 3.2. 任意类型-->字符串:2个API ~~~ x.toString(); x不是undefined或null时,才可用 String(x) ~~~ ### 3.3.任意类型-->Boolean: Boolean(x) ~~~ 只有5个值转为false: "" NaN undefined null 0 其余都转为true ~~~