1、typeof 查看数据类型
可以返回number,string,Boolean,object,undefined,function
<!DOCTYPE html> <html lange = "en"> <head> <meta charset="UTF-8"> <title>js之 </title> </head> <body> <h1>js之 </h1> <script type="text/javascript"> var num = 12; console.log(typeof(num)); </script> </body>
运行结果如下:
注意如下几个数据类型的输出
<!DOCTYPE html> <html lange = "en"> <head> <meta charset="UTF-8"> <title>js之数据类型 </title> </head> <body> <h1>js之数据类型 </h1> <script type="text/javascript"> var num = 12 console.log(typeof(num)) var num = {} console.log(typeof(num)) var num = [] console.log(typeof(num)) var num = null //null的数据类型:object console.log('null的数据类型:' + typeof(num)) var num = undefined //undefined的数据类型:undefined console.log('undefined的数据类型:' + typeof(num)) // var str = '2' // console.log(typeof(str)) // console.log(typeof(num+str)) // console.log(typeof(num-str)) // console.log(typeof(num*str)) // console.log(typeof(num/str)) // console.log(typeof(num%str)) </script> </body>
2、数据转换
显示数据类型转换和隐式数据类型转换
隐式数据类型转换
注意加减乘除的数据类型转换,只有加法转换成字符串,其他的都转换成数字进行运算。
结果为:
显示数据转换之Number 注意首字母大写
全局方法 Number() 可以将字符串转换为数字。
字符串包含数字(如 "3.14") 转换为数字 (如 3.14).
空字符串转换为 0。
其他的字符串会转换为 NaN (不是个数字)。
运行结果为:
parseInt 转换成整数
注意
1、可以将字符串转换为整数
2、可以将小数掉小数点后边的数字,转换为整数
3 可以将数字和字符串合并的字符串转换为整数
4、可以将其他进制的数据转换为10进制的整数
结果为
parseFloat
parseFloat() 函数可解析一个字符串,并返回一个浮点数。
该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
注释:开头和结尾的空格是允许的。
提示:如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。
运行结果为:
String
转换为字符串
Boolean
转换为布尔值
toString
转换为字符串函数,区别是(1)用法不同,(2)undefined不能用,(3)可以进行数字进制转换,如demo=10,demo.toSting(8) 转换为8进制12
3 隐式类型转换
隐式类型转换内部调用的都是现实类型转换的方法。
isNaN()
isNaN() 函数用于检查其参数是否是非数字值。
如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
<!DOCTYPE html> <html lange = "en"> <head> <meta charset="UTF-8"> <title>js之隐式类型转换 </title> </head> <body> <h1>js之隐式类型转换 </h1> isNaN() 函数用于检查其参数是否是非数字值。 <br> 如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false <script type="text/javascript"> console.log("查看NaN是否是NaN:" + isNaN(NaN)); //查看NaN是否是NaN console.log("查看字符NaN是否是NaN:" + isNaN('NaN')); //查看字符NaN是否是NaN console.log("查看123是否是NaN:" + isNaN(123)); //查看123是否是NaN console.log("查看字符123是否是NaN:" + isNaN("123"));//查看字符123是否是NaN console.log("查看字符abc是否是NaN:" + isNaN("abc"));//查看字符abc是否是NaN console.log("查看null是否是NaN:" + isNaN(null)); console.log("查看undefined是否是NaN:" + isNaN(undefined)); </script> </body>
注意,+和其他的隐式转换不同,其他四则运算都是转换为数字,只有+转换为字符,其他的是有数字的运算先转换为数字
<!DOCTYPE html> <html lange = "en"> <head> <meta charset="UTF-8"> <title>js之隐式转换 </title> </head> <body> <h1>js之隐式转换 </h1> <script type="text/javascript"> var a = '123' ; a ++ ; var b = 'abc' ; b ++ ; var c = 321 ; c = "123" + c ;//结果为“123321” var d = 1 == true console.log(d + " : " + typeof(d)) var e = 1 == "1" console.log(e + " : " + typeof(e)) </script> </body>
结果为