想象一下这个代码:
var obj = {};
obj.x = {};
obj.x.y = {};
if (obj.x.y.z) {
//the test work, I know obj.x.z.z do not exist
}
if (obj.a.b) {
//fail because "cannot read property 'b' of undefined
}
问题是:我怎样才能检查“休假”(如果“b”存在,它必须在“a”内)的存在,而不必事先对每个人的父母进行测试?
有一个关于操作员的建议,看起来像
调用可选链接
然后,您将在示例中使用它,如
obj.a?.b
不过现在,您必须编写更多内容来安全访问嵌套属性
var obj = {};
obj.x = {};
obj.x.y = {};
if (obj.x.y.z) {
//the test work, I know obj.x.z.z do not exist
}
if (obj && obj.a && obj.a.b) {
// will not throw
} else {
console.log('didn\'t throw!')
}
您可以使用elvis运算符。
if (obj.a?.b) { // no error thrown
console.log('error'); // 'error' isn't be logged
}
用于检查密钥是否存在。
var obj = {};
obj.x = {};
obj.x.y = {};
if (obj.x.y.z) {
//the test work, I know obj.x.z.z do not exist
}
function isExist(arg){
try{
return arg();
}catch(e){
return false;
}
}
console.log(isExist(()=>obj.x.y))
console.log(isExist(()=>obj.x.y.z))
console.log(isExist(()=>obj.a.b))
问题内容: 我正在尝试编写一个脚本,该脚本需要根据CSS选择器找到的特定浏览器对象是否存在来适应其工作流程行为。 我不想使用document.getElementByID方法,因为从技术上讲,这不是CSS选择器,并且我们整个企业都在CSS选择器上进行了标准化,因此在DOM以外的其他任何选择都不会使CSS选择器超出我们的代码审查过程无论如何。 ThingSelector在哪里: OpenThing在
问题内容: 我经常要检查一个对象是否有成员。一个示例是在函数中创建单例。为此,可以这样使用: 但您也可以这样做: 一种方法比另一种更好吗? 编辑: 添加了…但是,请注意,问题 不 在于如何制作单例,而在于如何检查对象中成员的存在。 编辑: 对于该示例,一种典型用法是: 然后是类型相同的对象,每次相同。并且,通常,该方法被调用多次。 问题答案: 这是两种不同的方法:№1是LBYL(飞跃前先看一下),
我遇到了这个PHP代码使用SMTP检查电子邮件地址而不发送电子邮件。 有没有人尝试过类似的方法,或者对你有用吗?你能判断客户/用户输入的电子邮件是否正确和是否存在吗?
问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。
问题内容: 我正在尝试检查$ _POST是否存在,如果存在,则在另一个字符串中打印它,如果不存在,则根本不打印。 像这样的东西: 任何帮助将是巨大的! 问题答案:
是否可以编写一个模板,根据是否在类上定义了某个成员函数来改变行为? 下面是我想写的一个简单的例子: 因此,如果定义了,那么它将使用它;否则就不会。我不知道怎么做的神奇部分是“function_exists”部分。