js有6种数据类型:
- number
- string
- boolean
- function
- object
- undefined
数据类型判断:
- typeof 操作符
使用 typeof 操作符来查看 JavaScript 变量的数据类型。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."
请注意:
- NaN 的数据类型是 number
- 日期对象Date()、数组对象Array()和null 使用typeof输出后均为object,因此就无法通过 typeof 来判断他们的类型
- 未定义变量的数据类型为 undefined
实例:
typeof "John" // 返回 string
typeof 3.14 // 返回 number
typeof NaN // 返回 number
typeof false // 返回 boolean
typeof [1,2,3,4] // 返回 object
typeof {name:'John', age:34} // 返回 object
typeof new Date() // 返回 object
typeof function () {} // 返回 function
typeof myCar // 返回 undefined (如果 myCar 没有声明)
typeof null
2、constructor属性
constructor 属性返回所有 JavaScript 变量的构造函数。可以用它来弥补typeof不能区分Array和Data类型的缺陷
用 constructor 属性来查看对象是否为数组 (包含字符串 "Array"):
return myArray.constructor.toString().indexOf("Array") > -1;
}
用 constructor 属性来查看对象是否为日期 (包含字符串 "Date"):
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
二.数据类型的转换
1.转为字符串:使用 .toString或者String。
(1) .toString()方法:注意,不可以转null和underfined
1.var bool=true;
2.console.log(bool.toString());(2)String()方法:都能转
console.log(String(null));(3)隐式转换:num + "",当 + 两边一个操作符是字符串类型,一个操作符是其它类型的时候,会先把其它类型转换成字符串再进行字符串拼接,返回字符串var a=true;var str= a+"";
console.log('str');2.转为数值类型
(1)Number():Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN
console.log(Number(true));(2)parseInt():var a="12.3px";
console.log(parseInt(a);
//结果:12.3. 如果第一个字符是数字会解析知道遇到非数字结束.
.var a="abc2.3";
4.console.log(parseInt(a);
////结果:返回NaN,如果第一个字符不是数字或者符号就返回NaN.(3)parseFloat(): parseFloat()把字符串转换成浮点数,parseFloat()和parseInt非常相似,不同之处在与parseFloat会解析第一个. 遇到第二个.或者非数字结束如果解析的内容里只有整数,解析成整数。(4)隐式转换
var str="123";
var num=str-0;
console.log(num);
//结果为数值型;
3.转换为Boolean():0 ''(空字符串) null undefined NaN 会转换成false 其它都会转换成true
(1)Boolean():
console.log(Boolean(2));