竟然修改形參有這麼可怕的後果!!

2022-06-05 03:39:07 字數 627 閱讀 1918

今天在知乎上

ihu.com/question/24692840/answer/345252713看到為預設形參的處理辦法:

function

fun(name)

如果呼叫這個函式時沒有傳入實參,則name就是undefined,這樣name就會被賦 'join' 這個值,這樣不久皆大歡喜了嗎?

事實是沒你想的那麼簡單:這樣做帶來的***是會修改arguments物件(別忘了形參(parameter)和arguments物件是蜜汁同步的),當你修改形參時像eslint等**檢查工具都會檢測出來來看修改形參會帶來什麼後果:

function

foo(a,b,c)

return;}

console.log(foo('linwei',20,'student')); //

你看,本來要輸出

結果輸出了截然不同的結果。

那怎麼算乙個比較好的解決方案呢?來看babel是怎麼處理的:

function

fn()

它乾脆將值賦給乙個新宣告的區域性變數,這樣不就可以擺脫這種蜜汁同步嗎?個人感覺這算比較好的解決方案了。

選擇器竟然有這麼多!!!w w

慚愧 做了這麼長時間的前端 其實也就半年多吧哈哈 平時用到的選擇器都是id 類 標籤,最多用到屬性和子選擇器,到今天才知道平時用到的這些都是css選擇器,竟然還有jq選擇器,css選擇器和jq選擇器之間竟然還有這麼多區別,彷彿發現了寶藏,啊哈哈 廢話不多說,經過一番查閱資料,自己總結如下,如有錯誤,...

手機裡竟然有這麼多感測器!終於都搞懂了

隨著技術的進步,手機已經不再是乙個簡單的通訊工具,而是具有綜合功能的可攜式電子裝置。手機的虛擬功能,比如互動 遊戲 都是通過處理器強大的計算能力來實現的,但與現實結合的功能,則是通過感測器來實現。本文就為大家整理了手機中常見的感測器,幫助大家了解其原理和用途。一 光線感測器 原理 光敏三極體,接受外...

通過指標形參修改實參的值2

注意 圖示使用的位址只是假設的,並不是真正的記憶體位址,只是說明原理 上次說到的是修改基本型別的變數,這次來說修改指標變數的值 原因還是和以往一樣,函式只是改變了a的指向,並沒有影響到p 既然p是乙個變數,那麼要改變它就要通過傳遞它的位址找到它,然後修改記憶體資料,修改程式為 可以看到,成功改變了p...