使用JavaScript交換兩個(gè)變量的值的常用方法
1. 前言
在面試中被問(wèn)到 “如何交換兩個(gè)變量的值” 這類(lèi)問(wèn)題,通常并不是單純的考察你能否寫(xiě)出交換代碼
而是想考察以下幾個(gè)方面:
- 算法思維與靈活性:能否從不同角度思考問(wèn)題,使用多種方法實(shí)現(xiàn)交換
- 對(duì)語(yǔ)言特性的理解:比如 ES6 的解構(gòu)賦值
- 編碼風(fēng)格和可讀性:能否寫(xiě)出簡(jiǎn)潔、易讀,符合現(xiàn)代語(yǔ)言規(guī)范的代碼
使用解構(gòu)賦值是推薦用法,因?yàn)樗?jiǎn)潔、解析,并且適用于任何數(shù)據(jù)類(lèi)型,不像運(yùn)算法交換具有局限性
2. 交換變量
臨時(shí)變量法
let a = 1 let b = 2 let temp = a a = b b = temp
解構(gòu)賦值法
// ; 不能省略,否則解構(gòu)時(shí)左側(cè)會(huì)被當(dāng)作字面量,進(jìn)而導(dǎo)致報(bào)錯(cuò) let a = 1; let b = 2; [a, b] = [b, a];
3. 其他方法
你可能還看到過(guò)其他方法交換變量,但是存在缺陷的,比如:異或運(yùn)算法、算術(shù)運(yùn)算法
交換兩個(gè)整數(shù),是沒(méi)有問(wèn)題的,但如果交換的是字符串,交換結(jié)果就是錯(cuò)誤的了,因?yàn)檫\(yùn)算法交換過(guò)程中會(huì)有類(lèi)型轉(zhuǎn)換
let a = 10; let b = 'hello';
算術(shù)運(yùn)算法
let a = 1; let b = 2; a = a + b; b = a - b; a = a - b;
異或運(yùn)算法
let a = 1 let b = 2 a = a ^ b; b = a ^ b; a = a ^ b;
到此這篇關(guān)于使用JavaScript交換兩個(gè)變量的值的常用方法的文章就介紹到這了,更多相關(guān)JavaScript交換兩個(gè)變量值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript實(shí)現(xiàn)簡(jiǎn)單的ajax封裝示例
這篇文章主要介紹了javascript實(shí)現(xiàn)簡(jiǎn)單的ajax封裝功能,結(jié)合實(shí)例形式分析了ajax基本功能與操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-12-12
js下為表格內(nèi)部動(dòng)態(tài)添加行的代碼
最近的一個(gè)項(xiàng)目中在保存表單數(shù)據(jù)時(shí),要用到一個(gè)動(dòng)態(tài)添加行的功能。平時(shí)動(dòng)態(tài)添加行只是在表格的最下面添加,現(xiàn)在在表格中間動(dòng)態(tài)添加行,而且表格內(nèi)部是包含并且單元格的,其實(shí)很簡(jiǎn)單,下面貼出代碼。2010-06-06
JS實(shí)現(xiàn)簡(jiǎn)單的點(diǎn)贊與踩功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)簡(jiǎn)單的點(diǎn)贊與踩功能,涉及javascript針對(duì)頁(yè)面元素動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-12-12
詳解如何通過(guò)JavaScript實(shí)現(xiàn)函數(shù)重載
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)JavaScript實(shí)現(xiàn)函數(shù)重載,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,感興趣的可以了解一下2023-01-01
JavaScript基礎(chǔ)之文件上傳與下載的實(shí)現(xiàn)詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)文件上傳與下載功能的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下2023-01-01
JavaScript實(shí)現(xiàn)簡(jiǎn)單計(jì)時(shí)器
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單計(jì)時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
js實(shí)現(xiàn)盒子移動(dòng)動(dòng)畫(huà)效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)盒子移動(dòng)動(dòng)畫(huà)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08

