sad*_*ave 2000 javascript variables null jquery undefined
如何确定变量undefined
还是null
?我的代码如下:
var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
//DO SOMETHING
};
Run Code Online (Sandbox Code Playgroud)
<div id="esd-names">
<div id="name"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
但是如果我这样做,JavaScript解释器会暂停执行.
Sar*_*raz 2707
您可以使用抽象相等运算符的质量来执行此操作:
if (variable == null){
// your code here.
}
Run Code Online (Sandbox Code Playgroud)
因为null == undefined
是真的,上面的代码将同时捕获null
和undefined
.
tem*_*ame 1064
捕获null
和undefined
同时的标准方法是:
if (variable == null) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
- 这是100%相当于更明确但不简洁:
if (variable === undefined || variable === null) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
在编写专业JS时,理所当然地认为类型相等和==
vs 的行为===
是理解的.因此我们使用==
并且仅与之比较null
.
表明使用的评论typeof
完全是错误的.是的,如果变量不存在,我上面的解决方案将导致ReferenceError.这是一件好事.这个ReferenceError是可取的:它可以帮助您在发送代码之前找到错误并修复它们,就像其他语言中的编译器错误一样.
您不应该在代码中引用任何未声明的变量.
小智 216
结合上述答案,似乎最完整的答案是:
if( typeof variable === 'undefined' || variable === null ){
// Do stuff
}
Run Code Online (Sandbox Code Playgroud)
这适用于任何未声明或声明的变量,并显式设置为null或undefined.对于具有实际非空值的任何声明变量,布尔表达式应该求值为false.
小智 184
if (variable == null) {
// Do stuff, will only match null or undefined, this won't match false
}
Run Code Online (Sandbox Code Playgroud)
Tha*_*vam 89
if (typeof EmpName != 'undefined' && EmpName) {
Run Code Online (Sandbox Code Playgroud)
如果值不是,则评估为真:
空值
未定义
为NaN
空字符串("")
0
假
Kam*_*ski 35
可能做到这一点的最短方法是:
if(EmpName == null) { /* DO SOMETHING */ };
Run Code Online (Sandbox Code Playgroud)
这是证明:
if(EmpName == null) { /* DO SOMETHING */ };
Run Code Online (Sandbox Code Playgroud)
这里有更多关于==
(来源在这里)的详细信息
奖励:原因===
比==
(查看agc 答案)更清楚
Che*_*try 24
jQuery attr()
函数返回空字符串或实际值(从不null
或或undefined
).它返回的唯一时间undefined
是你的选择器没有返回任何元素.
所以你可能想要测试一个空字符串.或者,由于空字符串null和undefined都是false-y,所以你可以这样做:
if (!EmpName) { //do something }
Run Code Online (Sandbox Code Playgroud)
phi*_*294 16
我来为此写自己的功能.javascript很奇怪
几乎任何东西都可用.(请注意,这也检查变量是否包含任何可用的值.但由于通常也需要此信息,我认为值得发布).请考虑留言.
function empty(v) {
let type = typeof v;
if (type === 'undefined') {
return true;
}
if (type === 'boolean') {
return !v;
}
if (v === null) {
return true;
}
if (v === undefined) {
return true;
}
if (v instanceof Array) {
if (v.length < 1) {
return true;
}
} else if (type === 'string') {
if (v.length < 1) {
return true;
}
if (v === '0') {
return true;
}
} else if (type === 'object') {
if (Object.keys(v).length < 1) {
return true;
}
} else if (type === 'number') {
if (v === 0) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
打字稿兼容.
编辑.这个功能应该做的正是同样的事情,像PHP的empty()
功能(见图RETURN VALUES
)
认为undefined
,null
,false
,0
,0.0
,"0"
{}
,[]
为空.
"0.0"
,NaN
," "
,true
被视为非空.
Dev*_*ius 13
在JavaScript 中,据我所知,我们可以检查undefined、null或空变量,如下所示。
if (variable === undefined){
}
if (variable === null){
}
if (variable === ''){
}
Run Code Online (Sandbox Code Playgroud)
检查所有条件:
if(variable === undefined || variable === null || variable === ''){
}
Run Code Online (Sandbox Code Playgroud)
Den*_*isS 11
如果要检查的变量是全局变量,请执行
if (window.yourVarName) {
// Your code here
}
Run Code Online (Sandbox Code Playgroud)
即使yourVarName
变量不存在,这种检查方式也不会抛出错误.
if (window.history) {
history.back();
}
Run Code Online (Sandbox Code Playgroud)
window
是一个将所有全局变量保存为其属性的对象,在JavaScript中尝试访问不存在的对象属性是合法的.如果history
不存在则window.history
返回undefined
.undefined
是假的,因此if(undefined){}
块中的代码不会运行.
我只是有这个问题,即检查对象是否为空。
我只是用这个:
if (object) {
// Your code
}
Run Code Online (Sandbox Code Playgroud)
例如:
if (document.getElementById("enterJob")) {
document.getElementById("enterJob").className += ' current';
}
Run Code Online (Sandbox Code Playgroud)
您可以简单地使用以下内容(我知道有更短的方法可以做到这一点,但这可能会使视觉观察更容易,至少对于查看代码的其他人而言)。
if (x === null || x === undefined) {
// Add your response code here, etc.
}
Run Code Online (Sandbox Code Playgroud)
来源:https : //www.growthsnippets.com/how-can-i-determine-if-a-variable-is-undefined-or-null/
小智 8
最短和最容易的:
if(!EmpName ){
// DO SOMETHING
}
Run Code Online (Sandbox Code Playgroud)
如果EmpName为:
由于您使用的是jQuery,因此可以使用单个函数确定变量是否未定义或其值是否为null.
var s; // undefined
jQuery.isEmptyObject(s); // will return true;
s = null; // defined as null
jQuery.isEmptyObject(s); // will return true;
// usage
if(jQuery.isEmptyObject(s)){
alert('Either variable: s is undefined or its value is null');
}else{
alert('variable: s has value ' + s);
}
s = 'something'; // defined with some value
jQuery.isEmptyObject(s); // will return false;
Run Code Online (Sandbox Code Playgroud)
通过最新的 javascript 更改,您可以使用新的逻辑运算符??=
来检查左操作数是否为null
or undefined
,如果是则分配右操作数的值。
所以,
if(EmpName == null){ // if Variable EmpName null or undefined
EmpName = 'some value';
};
Run Code Online (Sandbox Code Playgroud)
相当于:
EmpName ??= 'some value';
Run Code Online (Sandbox Code Playgroud)
jQuery 检查元素不为空:
var dvElement = $('#dvElement');
if (dvElement.length > 0) {
// Do something
}
else{
// Else do something else
}
Run Code Online (Sandbox Code Playgroud)
小智 5
最简单的检查方法是:
if(!variable) {
// If the variable is null or undefined then execution of code will enter here.
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2399122 次 |
最近记录: |