Javascript 初始化和错误处理
Javascript initialisation and error handling
我正在编写一个 Angular 应用程序,来自 PHP 背景。初始化和错误处理的标准方法是什么。以我的 JWT 令牌工厂为例。
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 方法是否应该将它们设置回未定义或 null?如果我将它们设置为未定义,我相信我的 has 函数应该是 token !== undefined?
最后,如果说传递了一个无效的令牌,例如123 这应该怎么处理,像我在PHP中那样扔是不是很常见?我在 JavaScript 中看到太多错误处理,不知道处理它的最佳方法?
null 或 undefined 是样式问题。选择其中一个并保持一致。 js 中的键测试是否存在虚假值或真实值。那就是你的 has 方法可以 return !!token,所以如果令牌为 null 或 undefined 或 '' 将为 false,否则为 true。
将代码包装在自调用匿名函数中并将 undefined 作为参数是一个很好的做法,因为它不是 js 中的保留字,任何人都可以为 undefined 赋值。
(function(angular, $, undefined){
}(angular,jQuery));
异常处理您可以 try/catch 来处理意外行为,或者您可以抛出错误(抛出 'Unexpected token')。同样,您可以捕获使用 try/catch
抛出的错误
我正在编写一个 Angular 应用程序,来自 PHP 背景。初始化和错误处理的标准方法是什么。以我的 JWT 令牌工厂为例。
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 方法是否应该将它们设置回未定义或 null?如果我将它们设置为未定义,我相信我的 has 函数应该是 token !== undefined?
最后,如果说传递了一个无效的令牌,例如123 这应该怎么处理,像我在PHP中那样扔是不是很常见?我在 JavaScript 中看到太多错误处理,不知道处理它的最佳方法?
null 或 undefined 是样式问题。选择其中一个并保持一致。 js 中的键测试是否存在虚假值或真实值。那就是你的 has 方法可以 return !!token,所以如果令牌为 null 或 undefined 或 '' 将为 false,否则为 true。 将代码包装在自调用匿名函数中并将 undefined 作为参数是一个很好的做法,因为它不是 js 中的保留字,任何人都可以为 undefined 赋值。
(function(angular, $, undefined){
}(angular,jQuery));
异常处理您可以 try/catch 来处理意外行为,或者您可以抛出错误(抛出 'Unexpected token')。同样,您可以捕获使用 try/catch
抛出的错误