JSP中判断一个变量不等于undefined(typeof的使用)

      typeof 运算符把类型信息当作字符串返回,包括有大家常有变量类型: "number", "string" ,"boolean", "undefined","function","nan" 以及"object"。

PS:在使用typeof()操作符时圆括号是可选项,可带可不带。即两种形式 typeof(XX) 或 typeof XX

    1.我们可以使用typeof来判断一个变量是否存在,如判断变量a是否存在,我们可以使用if(typeof(a)!="undefined"){},而不要去使用if(a){}。因为如果a不存在(未声明)则会出错。

常见的操作实例还有:

//Number  数字
typeof(37) === 'number';
typeof 3.14 === 'number';
typeof Number(1) === 'number'; // 但不要使用这种形式!!!

// String  字符串
typeof ("") === 'string';
typeof "bla" === 'string';
typeof String("abc") === 'string'; // 但不要使用这种形式!!!

// Boolean   布尔值
Typeof (true) === 'boolean';
typeof false === 'boolean';
typeof Boolean(true) === 'boolean'; // 但不要使用这种形式!!!

// Undefined 未定义
typeof undefined === 'undefined';
Typeof(未定义的变量/对象) === 'undefined';

//function   函数
typeof function(){} === 'function'; 
typeof Math.sin === 'function';   //返回数的正弦。

//NaN (Not-A-Number的缩写) 不是一个数字
typeof 1/0 === 'NaN';

// Object  对象
typeof null === 'object';
typeof (new Date()) === 'object';
// 下面的容易令人迷惑,不要使用!!!
typeof new Boolean(true) === 'object';
typeof new Number(1) ==== 'object';
typeof new String("abc") === 'object';

       2.局限性:对于Array,Null等特殊对象使用typeof 一律返回object,这正是typeof的局限性。如果我们希望获取一个对象是否是数组,或判断某个变量是否是某个对象的实例则要选择使用instanceof。instanceof用于判断一个变量是否是某个对象的实例。

①如:数组

var arr=new Array();
alert(arr instanceof Array);  //true
alert(arr instanceof Object)  //true

都返回true,这是因为Array是object的子类

②再如:实例

function test(){};
var te=new test();
alert(te instanceof test) //true。

 返回true并不是因为 Array是Object的子对象,而是因为 Array的prototype属性构造于Object,Array的父级是Function)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值