我正在使用三元表达式来检查变量是否存在以相应地显示值,但是由于我需要检查变量是否存在以及其中是否包含某些值,因此当变量未定义时检查条件失败。我该如何解决?

这是代码:

$('#select').selectize({
    items: typeof icoop != "undefined" && icoop != null ||  icoop.selectedUsers.length < 1 ? icoop.selectedUsers : []
});


我得到:


  未捕获的ReferenceError:未定义icoop

最佳答案

icoopundefined,因此访问任何属性或函数都将失败。

在检查icoop之前先检查icoop.selectedUsers

$('#select').selectize({
     items: (typeof icoop !== 'undefined' && icoop && icoop.selectedUsers && icoop.selectedUsers.length > 0) ? icoop.selectedUsers : []
});


您也可以清理一下代码:

// Check for icoop existence. Assign a default value if it is undefined or null.
var icoop = (typeof icoop !== 'undefined' && icoop) || {};

$('#select').selectize({
     items: (Array.isArray(icoop.selectedUsers) && icoop.selectedUsers) || []
});

关于javascript - Javascript,如果未定义不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42025958/

10-11 12:50