介绍
本文是在学习JS所做的学习笔记,所有笔记内容请看:JS学习笔记
强制类型转换介绍
强制类型转换
- 指将一个类型,强制转换成其它类型
- 类型转换主要指将其它数据类型转换成
String Number Boolean
1、强制转换成Sring类型
主要有两种方法:
1、 方法一:
- 调用被转换数据类型的toString()方法
- 该方法不会影响到原变量
- 不能将null 和 undefined 转换成String,这两个数据类型没有toSring 方法。
2、 方法二:
- 调用String()函数,并将被转换的数据作为参数传入函数
- 使用String()函数进行强制类型转换时:
对于Number和Boolean 就是调用toString()方法
对于null 和 undefined 就不是调用toString()方法了
它会将null 直接转换成 "null"
将undefined 直接转换成 "undefined"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
将其它数据类型转换成String
方法一:
- 调用被转换数据类型的toString()方法
- 该方法不会影响到原变量
- 不能将null 和 undefined 转换成String,这两个数据类型没有toSring
方法。
方法二:
- 调用String()函数,并将被转换的数据作为参数传入函数
- 使用String()函数进行强制类型转换时:
对于Number和Boolean 就是调用toString()方法
对于null 和 undefined 就不是调用toString()方法了
它会将null 直接转换成 "null"
将undefined 直接转换成 "undefined"
var a = 123;
// .toString()方法不会影响到原变量
var b = a.toString()
console.log(b)// 输出字符串"a"
console.log(typeof b) // 输出String
console.log(typeof a) // 输出Number
a = a.toString()
a=null;
a.toString(); //会输出错误,不能将null转换成String
a = undefined;
a.toString(); // 会输出错误,不能将undefined转换成String
a=123;
// 调用String()函数,将a转化成字符串
a= String(a);
a= null;
a = String(a);// 调用String()函数将 null 转换成字符串 "null"
a= undefined;
a = String(a); / 调用String()函数将 undefined 转换成字符串 "null"
// 该方法也是先将198.23转换成字符串"198.23",然后再进行转换
a = 198.23
a = parseInt(a); // 输出198,进行了取整
</head>
<body>
</body>
</html>
2、其它数据类型转换成Number
将其它数据类型转换成Number:
转换方式一:
-使用Number()函数
- 字符串 -->数字
1.如果是纯数字的字符串,则直接将其转换成数字
2.如果字符串中有非数字的内容,则转换为NaN
3.如果为空字符串,则转换成0
- 布尔 --> 数字
1.true 转成 1
2.false 转成 0
- Null --> 数字
1.null 转成 0
- Undefined --> 数字
1.转成NaN
转换方式二:
-该方式专门用来转换字符串
-parseInt() 把一个字符串转换成一个整数
-paresFloat() 把一个字符串转换成一个小数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
将其它数据类型转换成Number:
转换方式一:
-使用Number()函数
- 字符串 -->数字
1.如果是纯数字的字符串,则直接将其转换成数字
2.如果字符串中有非数字的内容,则转换为NaN
3.如果为空字符串,则转换成0
- 布尔 --> 数字
1.true 转成 1
2.false 转成 0
- Null --> 数字
1.null 转成 0
- Undefined --> 数字
1.转成NaN
转换方式二:
-该方式专门用来转换字符串
-parseInt() 把一个字符串转换成一个整数
-paresFloat() 把一个字符串转换成一个小数
var a = "123";
// 调用Number()函数将a转化成number类型
a = Number(a); // 将"123" 转化成 number,输出数字123
a= "abc";
a = Number(a); // 输出NaN
a="";
a = Number(a); // 输出为0
a = true;
a = Number(a); // 输出 1
a = false;
a = Number(a); // 输出 0
a = null;
a = Number(a); // 类型 Number 输出结果为0
a = undefined;
a = Number(a);// 为NaN
a = "123px";
// 调用parseInt(a)把字符串转换成Number ,把 123px 转换成 123
parseInt()可以将一个字符串中的有效整数内容取出来,
然后转换成Number.
parseInt()转换成数字的方法,是从左往右顺序读取其数字,并将
其转换成Number()
a = parseInt(a); // a=123
a = "12px45";
a = parseInt(a); // a=12
a = "12.567px";
a = parseInt(a); // a=12
parseFloat() 效果与parseInt()效果类似,只是它可以获得有效的小数
a = "123.45px";
a = Number(a); // a = 123.45
a = "123.45.66px";
a = Number(a);// a = 123.45
如果对非String使用parseInt() 或 parseFloat(),它会先将其转换成
String,然后再操作
a = true;
a = parseInt(a);// 输出a 的值NaN
</head>
<body>
</body>
</html>
3、其它数字类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
在js中,如果需要表示16进制的数字,则需要以0x开头.
8进制的数字,则需要以0开头
2进制的数字,需要以0b开头
// 16进制数字
var a=0x10
// 8进制的数字
a = 070;
// 2进制的数字
a = 0b10
console.log(a) // 输出16
a = "070"
// 在如下转换中,有些浏览器会转换成70,有些浏览器会当成8进制转换
a = parseInt(a)
// 如下,在parseInt()中传递第二个参数,转换成10进制
// 这样,在所有浏览器中就统一了
a = parseInt(a,10)
console.log(a)
</script>
</head>
<body>
</body>
</html>
4、转换成Boolean类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
将其它的数据类类型转换成Boolean
- 使用Boolean()函数
- 数字 ---> 布尔
- 除了0和NaN,其余都是true
- 字符串 ---> 布尔
- 除了空串,都转成true
- null 和 undefined 都是false
- 对象也会转换成true
var a = 123;
a = Boolean(a); // true
a = -123;
a = Boolean(a); // true
a = 0
a = Boolean(a); // false
a = Infinity;
console.log(a); // true
a = NaN;
cosnole.log(a); // false
a= "hello";
a = Boolean(a);// true
a = "false";
a = Boolean(a); // true
a = "";
a = Boolean(a); // false
a = null;
a = Boolean(a);// false
a = undefined;
a = Boolean(a);// false
</script>
</head>
<body>
</body>
</html>