在修改元素內容之前打印元素爲何打印到的數據是修改後的?

代碼

<div>1</div>
    <script>
         var a = document.querySelector('div')
         console.log(a)    
         console.log(a.innerHTML)   
         a.innerHTML = 222
    </script>
a :  <div>222</div>     1
b :  <div>222</div>     222
c :  <div>1</div>     222
d :  <div>1</div>     1

思考

爲什麼打印 console.log(a) 得到的是 <div> 222 </div> 而 打印 console.log(a.innerHTML) 是 1












=================================== 分割線 =================================







原因:

1) 受到瀏覽器渲染機制影響 :
在這裏插入圖片描述

2) 引用類型數據傳址,基本數據類型傳值

把代碼中的 console.log()看做一個函數,那 console.log(a),就相當於是將a這個對象傳給了這個函數,而在你重新給a.innerhtml 賦值之後也會改變原有的對象,所以 你直接console a 的時候 是修改了的數值 222

console.log(a.innerhtml)的時候,傳進來的是一個基本數據 字符串,這時候 他只單純的傳值 對原有的數據並不會有影響 所以你從這塊的console拿到的就還是 1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章