强制类型转换:
概念:
① 指将一个数据类型强制转换为其他的数据类型
② 类型转换主要指,将其他的数据类型,转换为String 、Number、 Boolean
方法:
方法一:
-
调用被转换数据类型的toString()方法
-
该方法不会影响到原变量,它会将转换的结果返回
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var a = 123;
//调用a的toString()方法
//调用XXX的yyy()方法,就是xxx.yyy()
var b = a.toString();
console.log(typeof b);
console.log(b)
</script>
</head>
<body>
</body>
</html>
-
但是注意:null和undefined这两个值没有toString()方法,如果调用他们的方法,会报错。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//null
var a = null;
a = a.toString
console.log(a)
//undefined
var a = undefined;
a = a.toString
console.log(a)
</script>
</head>
<body>
</body>
</html>
null:
undefined:
方法二:
-
调用String()函数,并将被转换的数据作为参数传递给函数
-
使用String()函数做强制类型转换时, 对于Number和Boolean实际上就是调用的toString()方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var a = 123;//number
a = String(a);//改为string
console.log(a);
console.log(typeof a)
</script>
</head>
<body>
</body>
</html>
- 对于null和undefined的区别:
- 但是对于null和undefined,就不会调用==toString()==方法
- 它会将==null==直接转换为"null"(字符串)
- 将==undefined==直接转换为“undefined”
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
//调用String()函数,来将a转换为字符串
//a = null;
//a = String(a);
a = undefined;
a = String(a);
console.log(typeof a);
console.log(a);
</script>
</head>
<body>
</body>
</html>