How to execute statement in javascript if variable defined
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How to check a not defined variable in javascript
Determining if a javascript object has a given property
号
在我的beforesend函数中我有这个
但是有些脚本没有这个元素,所以我的这行给了我错误
我该怎么做
1 2 | if($.myloader exists) $.myloader.show(); |
最通用和最可靠的解决方案是:
1 | if (typeof $.myloader != 'undefined') { |
如果您确定变量不能包含除函数或未定义之外的任何内容,则可以使用
1 | if ($.myloader) { |
号
但是,只有当您确定可能的值时才这样做,因为此测试也匹配
如果你想要短一点,你也可以这样做:
1 | $.myloader && $.myloader.show(); |
第一个操作数(在&;&;之前)称为保护。然而,有些人认为这是不够可读和安全的,所以您可能需要使用
您可以更迅速地执行此操作:
1 | $.myloader.show() ? console.log('yep') : console.log('nope'); |
或:
1 | $.myloader.show() || console.log('fail'); |
。
鉴于jquery(
1 2 3 4 5 | if ($.hasOwnProperty('myloader')) { //should work //try: $.hasOwnProperty('fn'), it'll return true, too } |
如果
1 2 3 4 5 6 7 8 | if ('myloader' in $) { //works, like: if ('hasOwnProperty' in $) {//is true, but it's not a property/method of the object itself: console.log($.hasOwnProperty('hasOwnProperty'));//logs false } } |
。
您可以用相同的方法检查要使用的方法:
1 2 3 4 | if ('myloader' in $ && 'show' in $.myloader) { $.myloader.show(); } |
。
未定义的值是"false",并且在if语句中计算为false,因此您只需要:
1 2 | if( $.myloader ) $.myloader.show(); |
。
你可以这样做…
1 2 | if(typeof $.myloader != 'undefined') { // your code here. }; |