javascript数据类型及null、NaN、undefined

     工作一年多了,从来没有把知识总结写下来的习惯,最近发现记忆力真的太有限了。开始试着在空闲总结一些基础的知识,一方面巩固一下知识,另一方面方便以后查找吧。 

1、javascript的类型
    javascirpt有三种基本数据类型:
    字符串 string,数值 number,布尔 boolean
    两种引用数据类型:
     对象 Object;数组 Array
    两种特殊的数据类型:Null,Undefined
可以通过typeof(param)来判读数据类型。

 

var t1;
var t2 = true;
var t3 = 3;
var t4 = "t";
var t5 = new Object();
var t6 = null;
var t7 = NaN;
var t8 = undefined;
alert(typeof(t));  // 显示"undefined"
alert(typeof(t1)); //显示"undefined"
alert(typeof(t2)); //显示"boolean"
alert(typeof(t3)); //显示"number"
alert(typeof(t4)); //显示"string"
alert(typeof(t5)); //显示"Object"
alert(typeof(t6)); //显示"Object"
alert(typeof(t7)); //显示"number"
alert(typeof(t8)); //显示"undefined"

当定义的一个变量没有初始化时,默认为undefined.

 

2、判断为空或不是对象或是否相等

 

var t1;        //t1的值默认为undefined
var t2 = null;
var t3 = NaN;
var t4="";
var t5='';
var t6 = new Object();

alert(t1 == t2); //显示"true" undefined与null相等
alert(t1 == t3); //显示"false"
alert(t2 == t3); //显示"false" 
alert(t3 == t3); //显示"false" NaN与任何值都不相等,与自己也不相等。
alert(t4==t5); //显示 "true" 双引号的字符串和单引号的字符串相等
alert(t4==null);//显示 "false" 空字符串不等于null
alert(t4==t6);//显示 "false" 
alert(t6==null);//显示 "false"

 Number,Boolean,String,Undefined这几种基本类型混合比较时,会将其转换成数字再进行比较
基本类型与复合对象进行比较时,会先将复合对象转换成基本类型(依次调用valueOf与toString方法)再进行比较
undefined被当成基本类型,undefined转换成数字是NaN,因此undefined与除null之外的其它类型值进行比较时始终返回false

null被当成复合对象,由于null没有valueOf与toString方法,因此和除了undefined之外的其它类型值进行比较时始终返回false

3、if判断

  if(param) 直接判断,当参数为0、NaN、unfinded、空字符串时返回false,参数为其他时返回true

 

if   (typeOf(x)   ==   "undefined") // 变量是否已定义
if   (typeOf(x)   ==   "object") //变量是否是object类型
if(isNaN(x)) //返回true不是数字,返回false是数字
if(x) //直接判断
var t;
var t1 = 0;
var t2 = -1;
var t3 = 2;
var t4 = "";
var t6 = new Object();
alert(t6?"true":"false");//true 
alert(t?"true":"false"); //false undefined常量在if判断中为false
alert(t1?"true":"false");//false 数字0在if判断中为false
alert(t2?"true":"false");//true
alert(t3?"true":"false");//true 不为0的数字在if判断中为true
alert(t4?"true":"false"); //false 空字符串在if判断中为false
alert(NaN?"true":"false"); //false
alert(null?"true":"false"); //false 任何值为null的变量在if判断中为false

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值