Javascript初始化和错误处理

时间:2015-03-21 17:06:51

标签: javascript angularjs error-handling initialization standards

我正在编写一个来自PHP背景的Angular应用程序。初始化和错误处理的标准方法是什么。例如,带我的JWT Token工厂。

app.factory('Token', ['jwt_decode', function(jwt_decode) {

    var token = null, expiry = null, role = null;

    return {

        get: function() {
            return token;
        },

        set: function(value) {

            token = value;

            var data = jwt_decode(token);

            expiry = data.exp;
            role = data.role;

        },

        clear: function()
        {
            // performed on session expiry or logout.
            token = null;
            expiry = null;
            role = null;
        },

        has: function()
        {
            return token !== null;
        },

        getRole: function()
        {
            return role;
        },

        getExpiry: function()
        {
            return expiry;
        }
    };

}]);

我已将我的私有变量初始化为null但我已经阅读了一些博客,而是建议我将它们保留为未定义。如果我将它们保留为未定义,我的clean方法是否将这些设置为undefined或null?如果我将它们设置为undefined我相信我的函数应该是令牌!== undefined?

最后,如果说通过了无效的令牌,例如123如何处理这个问题,像在PHP中一样抛出是常见的吗?我还在JavaScript中看到很多错误处理知道处理它的最佳方法吗?

1 个答案:

答案 0 :(得分:0)

空或未定义是一种风格问题。选择其中之一并保持一致。 js中的关键是测试虚假或值得的值。那就是你的has方法可以返回!!令牌,所以如果令牌为空或未定义或者#39;'否则将是虚假和真实的。 将代码包装在自调用匿名函数中并将undefined作为参数进行包装是一种很好的做法,因为它不是js中的保留字,任何人都可以为undefined赋值。

(function(angular, $, undefined){

}(angular,jQuery));

异常处理你有try / catch来处理意外行为,或者你可以抛出错误(抛出'意外的令牌')。再次,您可以使用try / catch

捕获您抛出的错误