js报错uncaught typeerror: cannot read property 'length' of null

js报错uncaught typeerror: cannot read property ‘length’ of null

先上问题代码:

fmt_customerLaber : function (column,row){
                    var cuslaber ="";
                    if( row.cusLabelList  != null && row.cusLabelList.length > 1){
                        var len = row.cusLabelList.length -1;
                        for (var i=len;i>=0;i--){
                            cuslaber += row.cusLabelList[i].labelName+",";
                        }
                        console.log(cuslaber);
                        return cuslaber.substring(0, cuslaber.lastIndexOf(','));;
                    } else{
                        return '无';
                    }
                }

js报错uncaught typeerror: cannot read property 'length' of null_第1张图片
主要想进行判空防止下面取空报错,结果在判空是时候报错了,报错信息也很明显:大概就是length方法不适用于null的数组。
虽然我的结果是有返回值的,看下图打印消息:
js报错uncaught typeerror: cannot read property 'length' of null_第2张图片
顿时就有点困惑,有数据怎么还是报null呢,看了一些文章说是数据转换的问题,但是我看了其他地方使用的地方然后问了下前端童鞋发现这是一个前端基本语法:if里面不用加=、!null这种。
然后修改了一下代码:

fmt_customerLaber : function (column,row){
                    var cuslaber ="";
                    if( row.cusLabelList && row.cusLabelList.length > 1){
                        var len = row.cusLabelList.length -1;
                        for (var i=len;i>=0;i--){
                            cuslaber += row.cusLabelList[i].labelName+",";
                        }
                        console.log(cuslaber);
                        return cuslaber.substring(0, cuslaber.lastIndexOf(','));;
                    } else{
                        return '无';
                    }
                }

然后就好了,所以前端语法还需要多度学习。

你可能感兴趣的:(前端,js,javascript)