I'm*_*hin 3 javascript json angularjs
对于以下代码:
var item = cartModel.getlist()[index];
if((item.isDepo()) {
// Some code
} else if(!permission.hasPermissionToVoidSKU()) {
// Some code
} else if(item.sku.indexOf(mposConstants.RESTOCK_FEE_SKU) > -1){
// Some code
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
类型错误:null 不是对象(评估“item.sku.indexOf”)
如果 item 对象为 null,则错误有所不同(见下文)。在什么情况下会抛出这个错误?
更新:
如果item.sku为空,则错误为:
[致命] [] [-] ["TypeError: 无法读取 null 的属性 'indexOf'
如果item为空,则错误为:
[致命] [] [-] ["TypeError: 无法读取 null 的属性 'isDepo'
Mic*_*sen 11
出现不同错误消息的原因很简单,因为它们是由不同的浏览器产生的。错误是相同的(sku在对象上item是null)。
鉴于以下代码
<script>
var item = {sku: null};
item.sku.indexOf("");
</script>
Run Code Online (Sandbox Code Playgroud)
以下是针对不同浏览器的一些错误消息:
TypeError: item.sku is nullTypeError: item.sku is null, can't access property "indexOf" of itTypeError: Cannot read property 'indexOf' of null
at example.html:3TypeError: null is not an object (evaluating 'item.sku.indexOf')要获取您得到的错误消息,item必须定义为一个对象,并且sku必须设置为null。如果sku是undefined,您会收到这样的错误消息 (Safari): TypeError: undefined is not an object (evaluating 'item.sku.indexOf')。如果item是null,你会得到这样的事情:TypeError: null is not an object (evaluating 'item.sku')。