判断php中的undefined,js判断变量与对象是否定义(undefined)转换函数

在处理html5的页面取值的时候,发现当取不到的时候报错,js程序不再执行,直接写个修正函数处理

如下:

代码如下

复制代码

//修正未定义的变量

function checkUnfined(value){

if(typeof(value)=='undefined'){

return "";

}

return value;

}

话说判断是否未定义也是很常用的东东

看下面简单例子

代码如下

复制代码

if(typeof(VAL1) == 'undefined') {

var VAL1 = "now defined";

}else {

alert("already defined");

}

alert("VAL1=" + VAL1);

通过判断typeof(VAL1) == 'undefin'可以知道某变量是否定义。顺便提一下,javascript里面没有block的概念,所以尽管VAL1是在if语句种定义的,在外面仍然可以访问。

但是注意如果某个var是在函数内定义的,那么该变量则是该函数的局部变量。

再看下面的例子

代码如下

复制代码

if(typeof(FUN1) == 'undefined') {

alert("now define the FUN1");

function FUN1() {

alert("this is FUN1");

}

}else {

alert("already defined");

}

你觉得输出应该是什么?

正确答案应该是alert("already defined");。函数和变量不同,对于funtion 这个关键字,javascript是在编译期间就搞定了,所以执行时认为该函数已经定义。

这样对于函数判断是否定义可以更具体的用

if(typeof(FUNC1) == 'function')

来检查一个函数是否声明。对于作插件的程序可能会有用。

全局对象,可以用window.变量名方式判断:

代码如下

复制代码

if(window.MyObject == null) {

window.MyObject = {};

}

//或者

if(!("MyObject" in window)) {

window.MyObject = {};

}

不建议使用if(!MyObject)或者if(!window.MyObject)方式判断对象是否存在,因为当MyObject=false或者MyObject=""时,该条件判断也是成立的。

附上判断对象未定义的方法:

代码如下

复制代码

var a;

alert(a == undefined);//第一种

alert(typeof a == "undefined");//第二种

alert(a === undefined);//与第一种类似

//如果是判断一个对象的某个属性是否存在,可以用以下方法:

var obj = {};

alert(obj.hasOwnProperty('a'));

alert('a' in obj);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 `typeof` 运算符来判断变量的类型。如果变量对象,则 `typeof` 运算符会返回 "object"。 例如: ``` let obj = {}; if (typeof obj === "object") { console.log("obj is an object"); } ``` 但是,有一点需要注意:数组也是对象,所以 `typeof []` 也会返回 "object"。如果要判断变量是否为数组,可以使用 `Array.isArray()` 方法,例如: ``` let arr = []; if (Array.isArray(arr)) { console.log("arr is an array"); } ``` ### 回答2: 在JavaScript判断一个变量是不是对象可以使用`typeof`运算符。这个运算符会返回一个字符串,表示变量的数据类型。如果变量对象类型,则返回值为"object";如果变量是其他基础数据类型(如数值、字符串、布尔值等),则返回相应的数据类型。通过这个返回值,我们可以对变量进行判断。 例如,我们可以使用以下代码判断一个变量`obj`是否对象类型: ```javascript if (typeof obj === "object") { console.log("变量对象"); } else { console.log("变量不是对象"); } ``` 需要注意的是,`typeof`运算符对于`null`返回的是"object",这是因为在JavaScript早期的一个设计错误。如果需要详细判断一个变量是否对象,可以结合`Object.prototype.toString.call()`方法使用。这个方法返回一个表示对象类型的字符串,可以更加准确地判断一个变量的数据类型。 ```javascript if (Object.prototype.toString.call(obj) === "[object Object]") { console.log("变量对象"); } else { console.log("变量不是对象"); } ``` 通过以上方法,我们可以在JavaScript准确地判断一个变量是否对象类型。 ### 回答3: 要判断一个变量是否对象,可以使用JavaScript的typeof运算符和instanceof运算符。 typeof运算符可以返回变量的类型,它可以返回的类型有"undefined"、"boolean"、"string"、"number"、"bigint"、"symbol"、"function"和"object"。当变量类型为对象时,typeof运算符会返回"object"。但是需要注意的是,typeof运算符对于null的返回值也是"object",所以单独使用typeof运算符不能准确判断一个变量是否对象。 此时可以使用instanceof运算符来进一步判断一个变量是否对象。instanceof运算符用于判断一个变量是否属于某个类的实例,如果是,则返回true,否则返回false。由于在JavaScript对象都是从Object类继承而来的,因此可以使用instanceof运算符来判断一个变量是否对象。如果一个变量对象,则返回true,否则返回false。 下面是一个示例代码用于演示如何判断一个变量是否对象: ``` function isObject(variable) { return typeof variable === 'object' && variable !== null; } var obj = {name: 'John'}; var str = 'Hello'; var num = 123; var arr = [1, 2, 3]; var nul = null; console.log(isObject(obj)); // 输出 true console.log(isObject(str)); // 输出 false console.log(isObject(num)); // 输出 false console.log(isObject(arr)); // 输出 true console.log(isObject(nul)); // 输出 false ``` 通过以上代码,我们可以看到当变量对象时,isObject函数返回true,否则返回false。根据这个函数的返回结果,我们可以判断一个变量是否对象

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值