當(dāng)前位置:
首頁 >
js中函数的参数传递是值传递还是引用传递?怎么判断参数的类型? 财富值8
發(fā)布時間:2023/11/30
23
博士
生活随笔
收集整理的這篇文章主要介紹了
js中函数的参数传递是值传递还是引用传递?怎么判断参数的类型? 财富值8
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原生不檢查參數(shù)類型,這是由于js是弱數(shù)據(jù)類型的語言。一般情況下,js作為瀏覽器端的支持的時候,輸入?yún)?shù)類型是寫代碼的人預(yù)先就想好的了,所以一般不會出現(xiàn)這種問題。但是如果涉及用戶輸入或者交互產(chǎn)生數(shù)據(jù)的時候,就有可能會出現(xiàn)題主的情況。做法就是通過自定義方法判斷數(shù)據(jù)類型之后在進行處理。下面是幾個類型判斷的方法,拋磚引玉:
js無法指定函數(shù)參數(shù)的類型,你如果想限制參數(shù)為array的話,就必須在函數(shù)內(nèi)部判斷 Array.isArray(arr)。
這里的參數(shù)arr后面冒號部分就是flow.js加的類型約束,這樣我們可以強制調(diào)用的時候使用數(shù)組。然后運行flow做運行檢查,就會提示類型不匹配
這個是動態(tài)類型語言無約束帶來的問題,JS本身無法解決這個問題,你可以使用微軟出的TypeScript語言,它帶有類型系統(tǒng),編譯結(jié)果是JS。
這樣我們可以在開發(fā)時檢查類型,在生產(chǎn)環(huán)境下去除。
所以題主這樣就好了:
js無法指定函數(shù)參數(shù)的類型,你如果想限制參數(shù)為array的話,就必須在函數(shù)內(nèi)部判斷 Array.isArray(arr)。
這里的參數(shù)arr后面冒號部分就是flow.js加的類型約束,這樣我們可以強制調(diào)用的時候使用數(shù)組。然后運行flow做運行檢查,就會提示類型不匹配
這個是動態(tài)類型語言無約束帶來的問題,JS本身無法解決這個問題,你可以使用微軟出的TypeScript語言,它帶有類型系統(tǒng),編譯結(jié)果是JS。
這樣我們可以在開發(fā)時檢查類型,在生產(chǎn)環(huán)境下去除。
所以題主這樣就好了:
總結(jié)
以上是生活随笔為你收集整理的js中函数的参数传递是值传递还是引用传递?怎么判断参数的类型? 财富值8的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英雄联盟怎么快速获得黎明黑夜通行证
- 下一篇: 成都大熊猫基地关闭时间