我是一名经验丰富的C++/Java程序员,第一次使用Javascript.我正在使用Chrome作为浏览器.
我用字段和方法创建了几个Javascript类.当我读取一个不存在的对象字段时(由于我的错字),Javascript运行时不会抛出错误或异常.显然这样的读取字段是"未定义的".例如:
var foo = new Foo();
foo.bar = 1;
var baz = foo.Bar; // baz is now undefined
Run Code Online (Sandbox Code Playgroud)
我知道我可以检查" 在JavaScript中检测未定义的对象属性 "中提到的"未定义"的相等性,但这似乎很乏味,因为我经常在我的代码中读取对象字段.
当我读取未定义的属性时,有没有办法强制抛出错误或异常?
当我读取未定义的变量(而不是未定义的对象属性)时,为什么会抛出异常?
使用在Android和Windows中执行的Ionic应用程序.
有一些服务,例如Ionic $ionicLoading,我们覆盖功能以便在Windows中正常工作:
angular.factory('$ionicLoading', function(){
return {
show: function (){...} // custom implementation
hide: function (){...} // custom implementation
}
});
Run Code Online (Sandbox Code Playgroud)
但是我们必须覆盖其他服务,只是为了不破坏应用程序.在这种情况下,提供不会做任何事情的服务将非常有用.例如:
angular.factory('$ionicExampleService', function(){
return {
*foo*: angular.noop // for operations
*bar*: promise // returns promise
}
});
Run Code Online (Sandbox Code Playgroud)
注意:我知道更好的方法是使用在Ionic实现或制作之间选择的服务,但这只是为了学习.
理想情况会更进一步,能够返回更加防弹的东西会很棒.像通用的灵活服务:
angular.factory('$ionicPopup', function(){
return /*magic*/;
});
$ionicPopup.show({...}) // show was not defined
.then(foo); // won't break and will execute foo()
Run Code Online (Sandbox Code Playgroud)
有可能的?
Python的字典get方法允许我指定在键不存在时应返回的内容.对于我目前的情况,我想要一个字典返回.我如何在Javascript中执行此操作?