1. 程式人生 > >js中那些不太引人註意,又比較常識的坑

js中那些不太引人註意,又比較常識的坑

rap 大神 javascrip 變量名 什麽 並不是 簡單 style 小夥伴

跟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中那些不太引人註意,又比較常識的坑