标签:
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