JavaScript基础知识-强制类型转换
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.强制类型转换-String
1>.JavaScript源代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>强制类型转换-String</title> <script type="text/javascript"> /** * 强制类型转换: * 指将一个数据类型转换成其它数据类型; * 类型转换只要指将其他的数据类型转换为String,Number,Boolean * */ /** * 将其它的数据类型转换为String: * 方式一: * 调用被转换数据类型的toString()方法; * 该方法不会影响到原变量,它会将转换的结果返回; * 温馨提示: * null和undefined这两个值没有toString()方法,如果调用它们的方法会报错。 * 方式二: * 调用String()函数,并将转换的数据作为参数传递给函数。 * 使用String()函数做强制类型转换时,对应规则如下: * 对于Number和Boolean实际上就是调用toString()方法 * 对于null和undefined,就不会调用toString()方法,它会将字面量null直接转换为字符串"null",将字面量undefined直接转换为字符串"undefined"。 */ var a = 18; var a1 = a.toString(); var b = null; //var b1 = b.toString(); //会报错:"Uncaught TypeError: Cannot read property 'toString' of null" var b1 = String(c); var c = undefined; //var c1 = c.toString(); //会报错:"Uncaught TypeError: Cannot read property 'toString' of undefined" var c1 = String(c); console.log(a1,typeof a1); console.log(b1,typeof b1); console.log(c1,typeof c1); </script> </head> <body> </body> </html>
2>.浏览器打开以上代码渲染结果
二.强制类型转换-Number
1>.JavaScript源代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>强制类型转换-Number</title> <script type="text/javascript"> /** * 将其它数据类转换为Number。 * 方式一: * 使用Number()函数,转换情况如下: * 字符串转换数字时: * 1>.如果时纯数字的字符串,则直接将其转换为数字; * 2>.如果字符串有非数字的内容,则转换为NaN; * 3>.如果字符串是空串或者是一个全是空格的字符,则转换为0; * 布尔值转换数字时: * 1>.true转换为1; * 2>.false转换为0; * Null转换为数字时: * 直接转换为0. * undefined转换为数字时: * 直接转换为NaN . * * 方式二: * 这种方式专门用来对付字符串。 * parseInt(): * 把一个字符串转换为一个整数,它可以将一个字符串中有效的整数内容取出来。 * parseFloat(): * 把一个字符串转换为一个浮点数,同理,它可以将一个字符串中有效的浮点数内容取出来。 * 温馨提示: * 如果对非String的数据类型使用parseInt()或者parseFloat()方法时,它们会先将其转换成String,然后再进一步处理。 * */ var a = "2019"; var a1 = Number(a); var b = "尹正杰2019"; var b1 = Number(b); var c = " "; var c1 = Number(c); console.log(a1,typeof a1); console.log(b1,typeof b1); console.log(c1,typeof c1); var d = true; var d1 = Number(d); var e = false; var e1 = Number(e); console.log(d1,typeof d1); console.log(e1,typeof e1); var f = undefined; var f1 = Number(f); console.log(f1,typeof f1); var g = null; var g1 = Number(g); console.log(g1,typeof g1); var f = "300px"; var f1 = parseInt(f); console.log(f1,typeof f1); var g = "3.1415926px"; var g1 = parseFloat(g); console.log(g1,typeof g1); /** * 在js中,其它进制数字默认打印时默认会转换为十进制输出: * 如果需要表示十六进制的数字,则需要"0x"开头,; * 如果需要表示八进制的数字,则需要使用"0"开头; * 如果需要表示二进制的数字,则需要使用"0b"开头; */ i = 0x10; j = "070"; j1 = parseInt(j); //像"070"这种字符串,有些浏览器会当成8进制解析,有时会当成10进制解析; j2 = parseInt(j,10); //可以在parseInt()中传递第二个参数,来指定数字的进制; k = 0b111010; console.log(i); console.log(j); console.log(k); console.log(j1); console.log(j2); </script> </head> <body> </body> </html>
2>.浏览器打开以上代码渲染结果
三.强制类型转换-Boolean
1>.JavaScript源代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>强制类型转换-Boolean</title> <script type="text/javascript"> /** * 将其它的数据类型转换为Boolean,使用Boolean()函数,转换情况如下: * 数字转布尔值: * 除了0和NaN,其余的都转换为true。 * 字符串转布尔值: * 除了空串,其余的都转换为true。 * null和undefined转布尔值: * 都转换为false。 * 对象转换成布尔值: * 直接转换为true。 */ var a = 100; var a1 = Boolean(a); console.log(a1,typeof a1); var b = -100; var b1 = Boolean(b); console.log(b1,typeof b1); var c = 0; var c1 = Boolean(c); console.log(c1,typeof c1); var d = Infinity; var d1 = Boolean(d); console.log(d1,typeof d1); var e = NaN; var e1 = Boolean(e); console.log(e1); var f = "错误" var f1 = Boolean(f); console.log(f1, typeof f1); var g = " "; var g1 = Boolean(g); console.log(g1,typeof g1); var h = null; var h1 = Boolean(h); console.log(h1, typeof h1); var i = undefined; var i1 = Boolean(i); console.log(i1,typeof i1); </script> </head> <body> </body> </html>
2>.浏览器打开以上代码渲染结果