码迷,mamicode.com
首页 > Web开发 > 详细

js-数据类型

时间:2016-07-30 13:33:41      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:

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>

 

js-数据类型

标签:

原文地址:http://www.cnblogs.com/foodoir/p/5720462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!