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中那些不太引人注意,又比较常识的坑的主要内容,如果未能解决你的问题,请参考以下文章

那些年我跳过的坑

那些安装CDH集群过程中踩过的坑......(比较全)

Java中那些踩过的坑

那些年我用awk时踩过的坑——awk使用注意事项

提效小技巧——记录那些不常用的代码片段

struts2的坑以及tomcat的一些常识