<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*20.将其他数据类型转换为Number
* 转换方式一:
* 使用Number()函数
* -字符串-->数字
* 1,如果是纯数字的字符串,则直接将其转换为数字
* 2,如果字符串中有非数字的内容,则转换为NaN
* 3,如果字符串是一个空串,或者是一个全是空格的字符串,则转换为0
* -布尔值-->数字
* 如果是true则转为1
* 是false则转为0
* -Null-->数字 转为0
* -Undefined-->数字 NaN
*
*
* 转换方式二:
* 这种方式专门用来对付字符串
* -parseInt() 把一个字符串转换成一个整数(可以将一个字符串中的有效整数内容取出来,然后转换为Number,遇到非整数之后内容则不读)
* -parseFloat()把一个数转换为一个浮点数(作用和parseInt()类似,不同的是他可以获得有效小数)
*
* 如果对非String使用parseInt()或parseFloat(),它会先将其转换为String,然后在操作
*
*/
var a = "1234";//如果a的内容是abc则转换结果为NaN
//调用Number()函数,将a转换为Number类型
a = Number(a);
a = true;
//a = false;
a = Number(a);
a = null;
a = undefined;
a = Number(a);
a = "123px";
a = parseInt(a);//调用parseInt()函数转换为Number
a= "123.456";
a = parseFloat(a);
//console.log(typeof a);
//console.log(a);
/*21.在js中,如果要表示16进制的数字,则需要以0x开,八进制用0开头,二进制用0b开头
* 特殊情况:070在下面要注意
*/
//下面用的比较少,用得多的是十进制
//十六进制
a = 0X10;
a = 0Xff;
a = 0xCafe;
//八进制
a = 070;
//二进制
//a = 0b10
//console.log(a
a = "070";//此时为String类型,注意,这个070有些会把它当作十进制解析有的会当作八进制解析
a = parseInt(a);//类型转换
//解决方法,只当作十进制的写法
a = parseInt(a, 10);
//console.log(typeof a);
//console.log(a);
/*22.将其他数据类型转换为Boolean(记一下)
* 使用Boolean()函数
* -数字-->布尔
* 除了0和NaN,其余的都是true
* -字符串-->布尔
* 除了空串,其余都是true
* -null和undefined都会转换为false
* -对象也会转换为true
*/ var a = -1234;
a = Infinity;
a = 0;
a = NaN;
//调用Boolean()函数来将a转换为布尔值
a = "错误";
a = null;//false
a = undefined;
a = Boolean(a);
// console.log(typeof a);
//console.log(a);
/*23.运算符也叫操作符
* 通过运算符可以对一个值或多个值进行运算
* 比如:typeof就是运算符,可以用来获取一个值的类型
* 它会将该值的类型以字符串的形式返回:
* number string boolean undefined object
* 算数运算符:+,-,*,/,%
* 当对非Number类型的值进行运算时,会将这些值转换为Number然后再运算
* 任何值和NaN运算结果都是NaN
* 如果对两个字符串进行加法运算则会将两个字符串拼接成一个字符串
* 任何值和字符串做加法运算都会先转换为字符串,然后再和字符串进行拼串
* 我们只需要为任意的数据类型+ 一个""即可将其转换为String
* 这是一种隐式的转换,由浏览器自动完成,实际上它也是调用String()函数
*
* 任何值做- * /运算时都会转换为Number
* 可以利用这一特点做隐式类型转换
* 可以通过为一个值-0./1 ,*1将其转换为Number
* 原理和Number()函数一样,使用起来更加简单
*/
var a = 123;
var result =typeof a;
result = a + 1;
result = true + 1;
result = true +false;
result = 2 + null;
result = 2 + NaN;
result = "boolean23" + "123";
var str = "www" +
"nnnn";
str = 124 + "2244";
str = 123 + " ";
console.log(result);
//console.log(typeof result);
//console.log(typeof str);
console.log(str);
//console.log("str = " +str);
result = 1 +2 + "3";//输出33,注意运算顺序,从左往右
result = "1" + 2 + 3;//输出123
result = 100 - true;
result = 100 - "1";//注意除了加法,其他都只会输出number
result = 2 * 2;
result = 2 * "8";
result = 2 * undefined;
result = 2 * null;
result = 8 / 2;
result = 9 % 5;
console.log("result = "+ result);
</script>
</head>
<body>
</body>
</html>
JS基础学习(3)可在HBuilder运行
最新推荐文章于 2023-04-14 18:30:00 发布