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

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

于 2013-11-10T09:50:39.483 に答える
0

既存の回答に追加したいと思います。新しいコンストラクタ関数を使用して文字列オブジェクトが作成された場合、次のコードは false を返します。

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

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

より良い方法は、stringObj のコンストラクター プロパティを介してテストすることです。

stringObj.constructor === String

stringObj が次の 2 つの方法で作成された場合、この条件は true になります。

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