1.转换成String类型:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
JS中一共有5种基本数据类型
String
Number
Boolean
Null
Undefined
- 所谓的类型转换就是值将其他的数据类型转换为String Number 或 Boolean
- 强制类型转换
- 转换为String
- 转换为Number
- 转换为Boolean
* */
/*
将其他的数据类型转换为String
- 方式一:
- 调用被转换数据类型的toString()方法
- toString()方法不会改变原变量的值,而是将值转换为字符串并返回
- 由于null和undefined中没有toString()方法,
所以不能调用toString()将他们转换为字符串
- 方式二:
- 调用String()函数
- 将被转换的数据做为参数传递给String()
- 原理:
- 对于具有toString()方法的类型来说,
String()会调用它们的toString()方法来将其转换为字符串
- 对于null和undefined来说,
会将null 直接转换为 "null"
将undefined 直接转换为 "undefined"
调用 XXX的YYY方法就是 XXX.YYY()
document.write();
console.log();
调用XXX函数就是XXX()
alert()
* */
var a = 123; //"123"
//调用a的toString()方法来将a转换为字符串
a = a.toString();
a= true;
a = a.toString();
a = undefined;
//由于Undefined中没有toString()方法,所以以下代码会报错
//a = a.toString();
/*a = null;
a = a.toString();*/
a = 10;
//调用String()函数来将a转换为字符串
a = String(a);
a = null;
a = String(a);
a = undefined;
a = String(a);
// a = a.toString();
console.log(a);
console.log(typeof a);
</script>
</head>
<body>
</body>
</html>
2.转换为Number<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var a = 15;
/*
对于数字来说,toString()方法,除了可以将一个数字转换为字符串以外,
它还可以将一个数字转换为指定进制的字符串
在数值的toString()方法中,可以传递一个进制的整数作为参数,
这样数值将会被转换为指定进制的数字的字符串
* */
a = a.toString(16);
/*console.log(a);
console.log(typeof a);*/
/*
转换为Number
- 方式一:
- 使用Number()函数
- 转换的情况:
1.对于字符串来说
- 如果字符串是一个合法的数字,则将其转换为对应的数字
- 如果字符串不是一个合法的数字,则转换为NaN
- 如果字符串是一个空串或纯空格的字符串,则转换为0
2.对于布尔值来说
- true转换为1
- false转换为0
3.对于Null
- null转换为0
4.对于Undefined
- undefined转换为NaN
* */
var b = "123px";//NaN
b = "123";//123
b = "abc";//NaN
b = ""; //0
b = " "; //0
//调用Number()函数将b转换为数字
b = Number(b);
//布尔值
b = true; //1
b = false; //0
b = Number(b);
//Null
b = null;
b = Number(b);
//Undefined
b = undefined;
b = Number(b);
console.log("b="+b);
console.log(typeof b);
//
/*
* 除了使用Number()函数,JS中还为我们提供了两个函数,
* 专门用来将一个字符串转换为数字的
* parseInt()
* - 将一个字符串转换为整数
* - 使用该函数解析字符串时,它会从字符串的左侧开始解析,
* 直到解析到最后一个有效的整数位
* parseFloat()
* - 将一个字符串转换为小数
* - parseFloat()和parseInt()类似
* 不同的是它可以解析到有效的小数位
*/
var c = "456px"; //456
c = "789a678b456"; //789
c = "123.456"; //123
/*
* 像"070"这样的字符串,火狐 chrome等浏览器会当成10进制数字进行解析,转换为70
* 但是IE8,会将其当成8进制的数字解析,解析为56
*
* 在使用parseInt时,可以传递以进制作为参数,来说明数字的进制
*/
c = "070";
//调用parseInt将其转换为Number
c = parseInt(c,10);
/*console.log(c);
console.log(typeof c);*/
var d = "123.45px";//123.45
d = "123.45.67"; //123.45
d = "hello123"; //NaN
d = parseFloat(d);
// console.log(d);
// console.log(typeof d);
//
</script>
</head>
<body>
</body>
</html>
3.转换为Boolean
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 转换为Boolean
* - 使用Boolean()函数
* - 转换的情况:
* - 对于数字
* - 除了0和NaN剩下都是true
*
* - 对于字符串
* - 除了空串剩下的都是true
*
* - null和undefined都是false
*
* - 对象默认都是true
*/
var a = 1; //true
a = -100; //true
a = Infinity; //true
a = 0; //false
a = NaN; //false
//调用Boolean()来将a转换为Boolean
a = Boolean(a);
a = "hello"; //true
a = "false"; //true
a = ""; //false
a = " "; //true
a = "0"; //true
a = Boolean(a);
a = null;
a = Boolean(a);
a = undefined;
a = Boolean(a);
console.log(a);
console.log(typeof a);
</script>
</head>
<body>
</body>
</html>