更新
我正在尝试测试是否未定义Javascript变量。
如何制作缺少变量或未定义的对象
在谢谢您是否愿意提供帮助之前
这是我的代码
var mydata = {
p001: "Product 1",
p002: "Product 2",
p003: "Product 3"
}
function test(e) {
if (mydata === undefined || mydata === null) {
document.getElementById("demo").innerHTML = "<em>No data</em>";
} else {
document.getElementById("demo").innerHTML = mydata[e];
}
}
var mydata = {
p001: "Product 1",
p002: "Product 2",
p003: "Product 3"
}
function test(e) {
if (mydata === undefined || mydata === null) {
document.getElementById("demo").innerHTML = "<em>No data</em>";
} else {
document.getElementById("demo").innerHTML = mydata[e];
}
}
#demo {
padding: 10px;
margin: 0;
border: 1px solid #2f9fd2;
border-radius: 4px;
background: #daf3ff;
}
<p>
<button onclick='test("p001");'>Product 1</button>
<button onclick='test("p002");'>Product 2</button>
<button onclick='test("p003");'>Product 3</button>
<button onclick='test("p10000");'>Test undefined</button>
</p>
<div id="demo"></div>
对不起,我的英语不好
谢谢
答案 0 :(得分:1)
我认为这就是您想要的。
只需检查e
中的键mydata
没有值。
顺便说一句,这里没有数组。使用适当的术语很重要。您正在使用对象,并且要检查其属性是否已定义。
var mydata = {
p001:"Product 1",
p002:"Product 2",
p003:"Product 3"
}
function test(e) {
if (!mydata[e]) {
document.getElementById("demo").innerHTML = "<em>No data</em>";
} else {
document.getElementById("demo").innerHTML = mydata[e];
}
}
#demo {
padding: 10px;
margin: 0;
border: 1px solid #2f9fd2;
border-radius: 4px;
background: #daf3ff;
}
<p>
<button onclick='test("p001");'>Product 1</button>
<button onclick='test("p002");'>Product 2</button>
<button onclick='test("p003");'>Product 3</button>
<button onclick='test("p10000");'>Test undefined</button>
</p>
<div id="demo"></div>
答案 1 :(得分:0)
您可以延长对undefined
值的检查。
if (mydata === undefined || mydata === null || mydata[e] === undefined) {
^^^^^^^^^^^^^^^^^^^^^^^^^^
var mydata = {
p001:"Product 1",
p002:"Product 2",
p003:"Product 3"
}
function test(e){
if (mydata === undefined || mydata === null || mydata[e] === undefined) {
document.getElementById("demo").innerHTML = "<em>No data</em>";
}
else {
document.getElementById("demo").innerHTML = mydata[e];
}
}
#demo {
padding: 10px;
margin: 0;
border: 1px solid #2f9fd2;
border-radius: 4px;
background: #daf3ff;
}
<p>
<button onclick='test("p001");'>Product 1</button>
<button onclick='test("p002");'>Product 2</button>
<button onclick='test("p003");'>Product 3</button>
<button onclick='test("p10000");'>Test undefined</button>
</p>
<div id="demo"></div>
答案 2 :(得分:0)
我相信不需要对同一件事进行两次检查:
if (mydata === undefined || mydata === null) {
document.getElementById("demo").innerHTML = "<em>No data</em>";
}
使用==
运算符代替此操作,基本上会导致null
== undefined
,因此这最终将为您保存===
来检查精确匹配项,但{{1} }会为您提供==
和null
的真实性,因为它会为您执行类型强制:
undefined