0

我正在使用以下 Javascript:

 if (typeof content !== 'undefined' && content.length > 0) {
    $state.transitionTo('admin.content', { content: content })
 }

我认为这可以安全使用,但它给了我一个错误说:

TypeError: Cannot read property 'length' of null

我正在使用以下函数来确定某事物是否为数字:

    isNumber: function (num) {
        // Return false if num is null or an empty string
        if (num === null || (typeof num === "string" && num.length === 0)) {
            return false;
        }
        var rtn = !isNaN(num)
        return rtn;

    },

我如何编写一个类似的函数来非常安全地确定某个东西是否是长度大于 0 的字符串?

4

3 回答 3

2
if (typeof num === "string" && num.length > 0)
{
  alert("You've got yourself a string with more than 0 characters");
} 
于 2013-11-10T09:51:02.130 回答
0

我想补充现有的答案。如果通过 new 构造函数创建字符串对象,则以下代码将返回 false

var stringObj = new String("my string");

typeof stringObj === "string" // this will be false, because the type is object

更好的方法是通过 stringObj 的构造函数属性进行测试

stringObj.constructor === String

如果通过以下两种方式创建了 stringObj,则此条件为真

var stringObj = "my string";
Or    
var stringObj = new String("my string");
于 2013-11-10T10:57:55.270 回答
0

if (typeof(num) === "string" && num.length > 0) {...}

于 2013-11-10T09:50:39.483 回答