js中那些不太引人注意,又比较常识的坑
Posted true-true
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中那些不太引人注意,又比较常识的坑相关的知识,希望对你有一定的参考价值。
跟javascript打交道这么多年,对于js这个弱类型的语言,可以说是又爱又恨,虽说现在很多关于前端的强大插件,比如vue,react,ng,jquery,bootstrap等。但在使用的时候,我们仍然要使用很多原生的js写法,尤其是对数据的逻处理上。
怎么 说呢,原生的js在使用的过程中,有着太多的坑了。用过的小朋友们体会一定很深。下面就整理一些很简单,很常见,有很容易被忽略的坑。以后再遇到的过程中还会一点点的补充。时刻提醒自己,在做的过程中,注意这些小细节。
1.数组对象传值
这个坑,估计光看名字,很多大神已经明白什么意思了。
新定义的变量名等于一个已经赋值的数组和对象的时候,他改变的只是变量的指针,并不是给新声明的变量名直接复制。
这是js的本性,天生的,然儿这个本性在项目开发中的小伙伴们,原本就很忙碌的心,很难一下就想到这一点。往往在改动数组或对象的值后,需要他们的展示效果的时候才发现:“哎!这他妈的怎么改成这样了(注:值没带成/两个值都改了)”;挠挠还在热运动中的脑袋,突然想到数组对象值传递是改变指针的。又要回去处理重新复制。
在变量为数组或对象时进行传值时,如果不确定,两个数据一定 会保持一致时,可采用另一种赋值方式,就以数组为例:
var Arr1=[1,2,3,4]; var Arr2=[]; for(var i=0,len=Arr1.length;i<len;i++){ Arr2.push(Arr1[i]); } Arr2[4]=5; //Arr2=[1,2,3,4,5] Arr1=[1,2,3,4,6] var Arr3=Arr1; Arr3[4]=6; //Arr2=[1,2,3,4,6] Arr1=[1,2,3,4,6]
以上是关于js中那些不太引人注意,又比较常识的坑的主要内容,如果未能解决你的问题,请参考以下文章