js字符串1.1.1变成111

JavaScript014

js字符串1.1.1变成111,第1张

1,Number函数:强制转换成数值

数值:转换后还是原来的值。

字符串:如果可以被解析为数值,则转换为相应的数值,否则得到NaN。空字符串转为0

布尔值:true转成1,false转成0。

undefined:转成NaN。

null:转成0。

hbuilder之前版本是2.9.3,后面升级为3.0.5之后开始出现大量报错,比如

Not found -1,8 at view.umd.min.js:1

In order to be iterable, non-array objects must have a Symbol.iterator method.

之类的

我估计是升级hbuilder之后加强了类型检查。

比如In order to be iterable, non-array objects must have a Symbol.iterator method.

这条,在for循环的时候不先判断数组是否为空就不行,for循环中假如有person['name']这样的也会报错,假如在data中事先定义了person:{name:''},写成person.name就不会报错

Not found -1,8 at view.umd.min.js:1这种奇怪的报错就是因为版本升级后造成的,

我把版本降级之后重新运行就没有问题

因为项目之中使用了sl-filter和kpsImageCutter两个组件,这两个组件在2020年1月就没有再更新了,本身就存在对象下的属性没有声明,直接通过person['name']这种方式赋值的情况。

大家没事儿别升级hbuilder,uniui也不会更新啥的

业务假如复杂的话还是尽量不要使用hbuilder

再也不想用uniapp和hbuilder了,好多坑莫名其妙的

假如还不行的话,加强空值检测,不要直接用空数组foreach之类的

如果是使用了  JQ  EXTJS 的话本身就有 对象克隆的 函数库可以使用  如 extjs 使用

ext.ux.util.clone()

没有用这些的话 可以自己写一个 克隆函数  网上有资源  比如

function deepClone(obj){    var result={},oClass=isClass(obj)

    // if(oClass==="Object"){

    //     result={}

    // }else if(oClass==="Array"){

    //     result=[]

    // }else{

    //     return obj

    // }

    for(key in obj){

        var copy=obj[key]

        if(isClass(copy)=="Object"){

            result[key]=arguments.callee(copy)

        }else if(isClass(copy)=="Array"){

            result[key]=arguments.callee(copy)

        }else{

            result[key]=obj[key]

        }

    }

    return result

}

function isClass(o){

    if(o===null) return "Null"

    if(o===undefined) return "Undefined"

    return Object.prototype.toString.call(o).slice(8,-1)

}

或者参考 extjs 的方法

 function(o) {  

   if(!o || 'object' !== typeof o) {        return o    }   

    if('function' === typeof o.clone) {        return o.clone()    }   

     var c = '[object array]' === object.prototype.tostring.call(o) ? [] : {}

     var p, v    

     for(p in o) {       

      if(o.hasownproperty(p)) {            v = o[p]           

      if(v && 'object' === typeof v) {               

       c[p] = ext.ux.util.clone(v)          

         }     else {          

               c[p] = v          

           }        

           }   

            }  

        return c}