JavaScript包含3种基本数据类型:数值、字符串和布尔型。
以下所有代码都是基于.html文件的
1. 数值
JavaScript的数值是不区分整数型和浮点数的,所有数值都用浮点型数值来表示。
数值 -> 字符串的方式:
- toString()
<script>
var a = 100;
var c;
c = a.toString();
document.write(c);
document.write('\n');
document.write(typeof(c));
</script>
- 让数值与空字符串相加
<script>
var a = 100;
var c;
c = a + "";
document.write(c + " ");
document.write('\n');
document.write(typeof(c));
</script>
上述两种方法的转换结果:
可以看到在document.write()里面写"\n"得到的结果并不是换行,而是空格,说明这里并没有解析出来“\n”是换行符,我的理解是document.write()中应该包含的是html语言,就是各种标签,但是不能解析Js的特殊符号,转义符之类的。
2. 字符串
JavaScript中字符串是由Unicode字符、数字、标点符号等组成的字符序列。
字符串必须使用单引号或双引号包括;单引号中可以包含双引号,双引号中也可以包含单引号;所有的字符必须在同一行书写。
字符串 -> 数值的方式:
- 使用parseInt()和parseFloat()
<script>
var a = "2020.1120";
var b,c;
b = parseInt(a);
c = parseFloat(a);
document.write("b = " + b + "<br/> c = " + c);
</script>
结果:
在document.write()中放“<br/>”就可以被解析,并成功换行。
- 让字符串与1相乘
<script>
var a = "2020.1120";
var b;
b = a * 1;
document.write("b = " + b + "<br/> type of b is " + typeof(b));
</script>
结果:
3.布尔型
布尔型数据仅包括2个值:true和false,分别表示逻辑的真和假。
任何值 -> 布尔型的方式:
在值的前面加两个感叹号即可:
<script>
var a = "2020.1120";
var b = 100;
var c, d;
c = !!a;
d = !!b;
document.write("c = " + c + "<br/> type of c is " + typeof(c) + "<hr>");
document.write("d = " + d + "<br/> type of d is " + typeof(d));
</script>
结果:
1 任何非0数字转换为布尔值后为ture,而0转换为布尔值后为false
2 任何非空字符串转换为布尔值后为true,而空字符串转换为布尔值后为false
3 如果把布尔值转换为字符串,则true为“true”,false为“false”
4 如果把布尔值转换为数值,则true = 1,false = 0
布尔型 -> 其他型的方式:
可以上文提到的toString、parseInt、parseFloat、+“ ”和*1的形式:
<script>
var a = true;
var b, c, d, e;;
b = a + "";
c = a.toString();
d = parseInt(a);
e = a * 1;
document.write("b = " + b + "<br/> type of b is " + typeof(b) + "<hr>");
document.write("c = " + c + "<br/> type of c is " + typeof(c) + "<hr>");
document.write("d = " + d + "<br/> type of d is " + typeof(d) + "<hr>");
document.write("e = " + e + "<br/> type of e is " + typeof(e));
</script>
结果:
使用parseInt或parseFloat效果一样,都是NaN,所以布尔转数值比较好的方式就是乘以1。
以下数值的布尔值都是false:
- 0、NaN、‘ ’、false、null、undefined