Boolean null undefined Number String Symbol(ECMAScript 2015)
可以通过 typeof检测类型。
var x = 1; ???????console.log(typeof x);//number ????????????????var a = undefined; ???????console.log(typeof a);//undefined ?????????????????var b = null; ???????console.log(typeof b);//object,(null是空对象引用/或者说指针)。 ??????????????????var c = new Object(); ???????console.log(typeof c);//object ???????????????????var e = [1,2,3]; ???????console.log(typeof e);//object ?????????????????????var d = function(){ ?????????????????// ... 语句块 ???????} ???????console.log(typeof d);//function ???????var e = {}; ???????console.log(typeof e); //object ???????var f; ???????console.log(typeof f);//undefined ???????var g = "helloWorld"; ???????console.log(typeof g);//string ???????var h = true; ???????console.log(typeof h);// boolean
1.Number类型
Number类型包含整数和浮点数
NaN:非数字类型。特点:① 涉及到的 任何关于NaN的操作,都会返回NaN ② NaN不等于自身
var ab = "a1";console.log(ab/10);// NaNconsole.log(NaN == NaN);// false;
isNaN()函数,用于判断是否是一个非数字类型。如果传入的参数是一个非数字类型,那么返回true;否则返回false;
???????var num1 = 55; ???????console.log(isNaN(num1)); ???//false ???????var num2 ="测试"; ????????console.log(isNaN(num2)); ???//true ???????var num3 ="666"; ???????console.log(isNaN(num3)); ?//false
Infinity 属性用于存放表示正无穷大的数值。
var num4 = 66 / 0;console.log(num4);//Infinityconsole.log(typeof(num4));//number ???
数值转换:
Number()转型函数,可以用于任何数据类型;
parseInt(),将值转换为整型,用的比较多;
parseFloat();将值转换为浮点型。
2.String类型
字符串转换:转型函数String(),适用于任何数据类型(null,undefined 转换后为null和undefined);toString()方法(null,defined没有toString()方法)。
var bc = "test";var bd = null;var be = undefined;var ob = {};console.log(bc.toString()); testconsole.log(ob.toString());[object Object]console.log(typeof ob.toString()); string//console.log(bd.toString());//error 报错//console.log(be.toString());//error 报错console.log("------");console.log(String(bc)); testconsole.log(String(bd)); nullconsole.log(String(be)); undefinedconsole.log(String(ob)); ???[object Object]
3.Null类型
null类型被看做空对象指针,前文说到null类型也是空的对象引用。只有一个值,即null值,所以,在你 用typeof 操作符去检测null类型的值时,结果是object类型。
var test = null;console.log(typeof test); //object
4.Undefined类型
只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。
var name = "test";var age;console.log(name);//testconsole.log(age);//undefined//console.log(height);//error,变量height没有声明console.log(typeof name);//stringconsole.log(typeof age);//undefinedconsole.log(typeof height);//undefined,变量height没有声明
5.Boolean类型
true 或者false
var times = new Date("");console.log(times); //Invalid Dateconsole.log(times == null); ?//falseconsole.log(times == "Invalid Date"); //trueconsole.log(times === "Invalid Date");// falseconsole.log(typeof times);//objectconsole.log(times.toString() === "Invalid Date"); //truevar newObj1;/console.log(newObj1);//undefinedconsole.log(typeof newObj1);//undefinedconsole.log(newObj1 == null);//trueconsole.log(newObj1 == undefined);//trueconsole.log(newObj1 === null);//falseconsole.log(newObj1 === undefined);//true var newObj2 = null ;console.log(newObj2);//nullconsole.log(typeof newObj2);//objectconsole.log(newObj2 == null);//trueconsole.log(newObj2 == undefined);//trueconsole.log(newObj2 === null);//trueconsole.log(newObj2 === undefined);//false//0/0 5/0var tnum = 5 / 0; console.log(tnum); //Infinityconsole.log(typeof tnum);//numberconsole.log(tnum == true);//falseconsole.log(isNaN(tnum));//false
js数据类型
原文地址:http://www.cnblogs.com/yxcoding/p/7464742.html