js中基本的数据类型分为以下5种
1、字符型String 用引号的都是字符串,打印是黑色
2、数值型Number 打印是蓝色的
3、布尔值Boolean 真和假,true为真,false为假
4、未定义值Undefined
5、空值Null
数据类型的转换分为两种
1.强制转换
1)强转为字符串 String()
<script>
var num=null;
var a=String(num);
console.log(a);
</script>
2)强转为任意进制 toString()
<script>
var color=255;
var c=color.toString(36);
console.log(c);
</script>
3)数值强转字符串 toFixed(小数点后几位,精度会有误差)
<script>
var num=10.35;
var a=num.toFixed(1);
console.log(a);
</script>
4)强转为数值 number
a. 纯字符转数值结果是NaN
<script>
var str="你好";
var num=Number(str);
console.log(num);
</script>
b. 纯数字转数值结果是数字
<script>
var str="12";
var num=Number(str);
console.log(num);
</script>
c. 部分数字部分字符转数值结果是数字
<script>
var str="1a";
var num=Number(str);
console.log(num);
</script>
d. 布尔值true转为1,false转为0
<script>
var b=false;
var num=Number(b);
console.log(num);
</script>
<script>
var a=true;
var num=Number(a);
console.log(num);
</script>
e. undefined转数值结果是NaN
<script>
var a=undefined;
var num=Number(a);
console.log(num);
</script>
f. null转数值结果是0
<script>
var a=null;
var num=Number(a);
console.log(num);
</script>
5)强转为整数 parseInt() (可以将制定的进制方式字符串转换成10进制数值型,是toString()的逆转)
a. 纯字符转为NaN
<script>
var a=null;
var num=parseInt(a);
console.log(num);
</script>
b. 纯数字转为数字
var a=10;
var num=parseInt(a);
console.log(num);
</script>
c. 部分数字部分字符的转化结果是从开始转换到字符前为止都是数字,如果第一位是字符泽返回NaN(例:16a转为16,a16转为NaN)
<script>
var a="16a";
var num=parseInt(a);
console.log(num);
</script>
<script>
var a="a16";
var num=parseInt(a);
console.log(num);
</script>
d.布尔值转为NaN
<script>
var str=false;
var num=parseInt(str);
console.log(num);
</script>
e.undefined转为NaN
<script>
var str=undefined;
var num=parseInt(str);
console.log(num);
</script>
f.null转为NaN
<script>
var str=null;
var num=parseInt(str);
console.log(num);
</script>
6)强转为小数 parseFloat()(和parseInt类似,可以保留小数)
7)强转为布尔值
“”,false,undefined,null,NaN,0 转为false,其他均为true
2.隐式转换
1)做加法时
任意数据类型与字符串相加时都会隐式转换成字符串,然后首尾相连
<script>
var a=6;
var b="a";
var c=true;
console.log(a+b);
console.log(a+c);
</script>
2)做减法时(也包含乘,除,取余)
任意的数据类型都会先隐式转换成数值,然后相减(乘,除,取余)
<script>
var a=6;
var b="a";
var c=true;
console.log(a-b);
console.log(a-c);
</script>