任何方法来检查js var是否有方法?

时间:2015-02-12 15:00:37

标签: javascript

调用

时出现此错误
  if (! !!javaRest.cookie.get('token'))
    return javaRest.cookie.get('token').length >4;
  else
    return false;

并收到此错误:

 Uncaught TypeError: Cannot read property 'length' of undefined

现在我想知道无论如何我都知道我的js对象变量是否有长度变量。

2 个答案:

答案 0 :(得分:4)

问题不在于.length未定义,而是javaRest.cookie.get('token'),因此错误为Cannot read property 'length' of undefined

我会尝试这个,而不是:

var token = javaRest.cookie.get('token');
return (token && token.length > 4);

以上完全取代了基于if的代码。请注意,这也遵循不要重复自己原则,临时变量避免了第二组属性查找和函数调用。

答案 1 :(得分:0)

看起来您的逻辑不正确:

if (! !!javaRest.cookie.get('token'))  // cast to inverse boolean
// should be
if (!!javaRest.cookie.get('token'))    // cast to boolean

你想否定结果吗?

!!! undefined // true
!! undefined  // false

您正试图获取.length undefined(正如您的错误所示)。