标签:
js中有5种数据类型:Undefined、Null、Boolean、Number和String。
还有一种复杂的数据类型Object,Object本质是一组无序的名值对组成的。
一、数据类型
1、undefinde类型
Undefined类型只有一个值,即undefined,使用var声明变量,但是未对初始化的,这个变量就是Undefined类型的,例子:
var i;
alert(i == undefined);//true
var i;与var i = undefined;这两句是等价的。
包含Undefined值的变量和未定义的变量是不一样的。
2、null类型
Null类型也只有一个值:null.null表示一个空对象的指针。
3、boolean类型
Boolean类型:只有两个字面量true和false。但是js中多有的变量都可以使用Boolean()函数转换成一个Boolean类型的值。
<script type="text/javascript"> var j; console.log(j+":"+Boolean(j)); //false var j=null; console.log(j+":"+Boolean(j)); //false j=50; console.log(j+":"+Boolean(j)); //true j=0; console.log(j+":"+Boolean(j)); //false j="0"; console.log(j+":"+Boolean(j)); //true j=""; console.log(j+":"+Boolean(j)); //false j="abc"; console.log(j+":"+Boolean(j)); //true console.log("----------------------"); console.log("null==‘‘:"+(null==‘‘)); //false console.log("null==‘null‘:"+(null==‘null‘)); //false console.log("null==undefined:"+(null==undefined)); //true alert(123==123); alert(0==true); //false alert(true=="true"); //false alert(false==0); //true alert(1+1==2); //true alert(0===true); //false alert(false===0); //false </script>
4、Number类型
整数和浮点数。NaN:Not a Number(不是数字类型的数字类型)。这个数值用于本来要返回一个数值,但是却未能放回一个数值的情况,以防止报错。例如:1/0 返回的就是NaN。
NaN的特点:
1、任何涉及NaN的操作都会返回NaN。
2、NaN对任何值都不相等,包括自己NaN本身。
针对NaN特性,JS内置了isNaN()函数,来判断一个变量是不是一个数字。如果是数字,返回false,不全是数字,返回true
5、String类型
凡是用双引号或是单引号引起来的,都属于string类型
<script type="text/javascript"> var i; console.log(i+":"+String(i)); //undefined i=null; console.log(i+":"+String(i)); //null i=123; console.log(i+":"+String(i)); //123 i=true; console.log(i+":"+String(i)); //true </script>
二、typeof操作符
对一个变量进行推断变量的类型,可能返回以下字符串:
"undefined" 如果这个值,未定义或者为初始化
"boolean" 布尔值
"string" 字符串
"number" 数值
"object" 对象
"function" 函数
用法:typeof 95; 或者 typeof(95); 会返回"number".
<script> var b=function str(){ var a=100; alert(a); }; console.log(b+":"+typeof(b)); var i=100; console.log(i+":"+typeof(i)); i=1.2; console.log(i+":"+typeof(i)); i=1.2345678; console.log(i+":"+typeof(i)); i=-1.23; console.log(i+":"+typeof(i)); i=1.2e8; console.log(i+":"+typeof(i)); i=034; console.log(i+":"+typeof(i)); i=0x12c; console.log(i+":"+typeof(i)); i="123"; console.log(i+":"+typeof(i)); i=true; console.log(i+":"+typeof(i)); i=false; console.log(i+":"+typeof(i)); var j; console.log(j+":"+typeof(j)); i=null; console.log(i+":"+typeof(i)); var str="123abc"; alert(typeof(str++)); alert(str); </script>
三、数据类型的转换:
1、强制数据类型的转换 : 你知道变量将会转换成什么数据类型
强制数据类型转换
1、Number():强制的把变量准换为数字类型
NaN:不是数字类型的数字类型 not a number
2、parseInt():强制的把变量准换为数字类型,而且会转换为整数
parseFloat():强制的把变量准换为数字类型,而且会转换为float单精度浮点型
<script type="text/javascript"> //alert(typeof(NaN)); var a; console.log(a+":"+Number(a)); a=null; console.log(a+":"+Number(a)); a="100"; //alert("100"+100); console.log(a+":"+(Number(a)+100)); a="-100"; console.log(a+":"+(Number(a)+100)); a=""; console.log(a+":"+(Number(a)+100)); a=true; console.log(a+":"+Number(a)); a=false; console.log(a+":"+Number(a)); a="123abc"; console.log(a+":"+Number(a)); var i="123"; console.log(i+":"+parseInt(i)); var i="123.456"; console.log(i+":"+parseInt(i)); var i="123.abc"; console.log(i+":"+parseInt(i)); //Nan var i="a123bc"; console.log(i+":"+parseInt(i)); var i="12a3bc"; console.log(i+":"+parseInt(i)); var i=0x10a; console.log(i+":"+parseInt(i)); //强制将十六进制转换为十进制 var i=123.0; console.log(i+":"+parseFloat(i)); </script>
2、隐式数据类型的转换 : 你不知道变量将会转换成什么数据类型,但是数据确实转换了
隐式数据类型的转换 :
变成字符串:+
变成数字:- * / %
变成数字:++ --
数字的比较、字符串的比较:> <
把右边的数据类型转换为布尔型:!
<script type="text/javascript"> var i="100"; console.log(i+100); console.log(100-"3"); console.log(100*3); console.log(100/3); var i="3"; i++; console.log(i); //自加和自减都会自动转换为number //alert("3">2); //true //alert("3">"2"); //true if(Boolean(2)){ alert("aaaa"); } </script>
标签:
原文地址:http://www.cnblogs.com/foodoir/p/5720462.html