注:
练习一主要讲述“显式”的三种强制转换,即:
1、其他数据类型转换为String型
2、其他数据类型转换为Number型
3、其他数据类型转换为Boolean型
练习二为五个运算符的使用,在练习二中也包括“隐式”的强制转换,例如:通过+、-、*、/等运算符可以将非数值的变量或常量进行运算,且结果为数值型。
练习一:
<!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>强制类型转换</title>
<script>
// 强制类型转换
// 指将一个数据类型强制转换为其他的数据类型
// 类型转换主要指,将其他的数据类型,转换为
// String Number Boolean
// 将其他的数据类型转换为String
// 方法一
// 调用被转换数据类型的toString()方法
// 该方法不会影响到原变量,它会将转换的结果返回
// 但是注意:null和undefined这两个值没有toString()方法
// 如果调用它们的方法,会报错
// 方法二
// 调用String()函数,并将被转换的数据作为参数传递给函数
// 使用String()函数做强制类型转换时,
// 对于Number和Boolean实际上就是调用的toString()方法
// 但是对于null和undefined,就不会调用toString()方法
// 它将会null直接转换为‘null’
// 将undefined 直接转换为‘undefined’
// var a=123;
//调用a的toString()方法
//调用xxx的yyy()方法,就是xxx.yyy()
// a=false;
// a="13";
// a=undefined;
// a=Object;
// a= a.toString();
// console.log(a);
// var b;
// b=123;
// b=true;
// b=false;
// b=null;
// b=undefined;
// b=46;
// b="asdf";
// String(b);
// console.log(b);
//将其他数据类型转换为Number
// 方法一
// 使用Number()函数
// 字符串--》数字
// 1、如果是纯数字的字符串,则直接将其转换为数字
// 2、如果字符中有非数字的内容,则转换为NaN
// 3、如果字符串是一个空串或者是一个全是空格的字符串,则返回0;
// 布尔值--->数字
// true 转成 1
// false 转成 0
// null-->数字 0
// undefined --> 数字 NaN
// 方法二
// 这种方式专门用来对付字符串
// parseInt() 把一个字符串转换为一个整数
// parseFloat() 把一个字符串转换为一个浮点数
// 对于一个非String类型转换为Number类型,JS会自动将其转换为String类型,然后在转换为Number类型
// var c;
// c="123ads12";
// c="123";
// c=true;
// c=false;
// c=null;
// c=undefined;
// c="";
// c=Number(c);
// console.log(c);
// console.log(typeof c);
// var d;
// d="123adfad123";
//
// d="a123";
//
// d=123.46;
//
d="213.465000sdfad"
//
// // d=parseInt(d);
// d=parseFloat(d);
// console.log(d);
// console.log(typeof d);
// var e="10";
// console.log(parseInt(e,8));
// 将其他的数据类型转换为Boolean
// 使用Boolean()函数
// 数字-->布尔值
// 除了0和NaN,其余都是true
// 字符串-->布尔值
// 除了空串,其余都是true
// null和undefined都是false
</script>
</head>
<body>
</body>
</html>
练习二:
<!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>运算符</title>
<script>
/*
运算符也叫操作符
通过运算符可以对一个或多个值进行运算,并获取运算结果
比如: typeof就是运算符,可以来获得一个值的类型
它会将该值的类型以字符串的形式返回
number string boolean undefined object
算数运算符
当对非number的值进行运算时,会将这些值转换为number然后进行运算
任何值和NaN做运算,结果都为NaN
+
+可以对连个值进行加法运算
如果对两个字符串进行加法运算,则会做拼串
会将连个字符串拼凑为一个字符串,并返回
任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串
-
- 可以对两个值进行减法运算,并将结果返回
*
* 可以对两个值进行乘法运算
/
/ 可以对两个值进行除法运算
%
% 取模运算(求余)
*/
var result;
// result=12+12+"12";
// result=null+"001";
// result=12+null;
// // result=null-"1";
// // result=null-NaN;
// result=12+1+undefined;
// result=12+12+"锄禾日当午,汗滴禾下土。谁知盘中餐,粒粒皆辛苦。"+789+12
// console.log(result);
result="123"-"12";
result=true-"123";
result=undefined-NaN;
result=12+"123"-undefined;
result=123/45;
result=23*12-"176";
result=12%13+'123'-12000;
console.log(result);
</script>
</head>
<body>
</body>
</html>