最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript電話號(hào)碼格式化的多種實(shí)現(xiàn)方式

 更新時(shí)間:2024年11月22日 08:36:14   作者:PW  
本文希望通過一道簡(jiǎn)單的題目,讓剛接觸JavaScript的新手們了解一個(gè)合格的前端程序員需要具備哪些素質(zhì),文章給大家介紹了JavaScript電話號(hào)碼格式化的多種實(shí)現(xiàn)方式,感興趣的小伙伴跟著小編一起來看看吧

推特經(jīng)典面試題:

編寫一個(gè)函數(shù),[1,2,3,4,5,6,7,8,9,0] return "(123) 456-7890"電話號(hào)碼。

方法一:字符串拼接

這是最直接的方法,通過手動(dòng)拼接每個(gè)部分來形成電話號(hào)碼。相信不少小白都是通過方式解答這道題的,但是真正的高手是絕不會(huì)滿足于用最粗暴的方法解答一道題的,讓我們看看咱們還能玩出什么花樣吧~

function getPhoneNum(arr) {
   return "(" + arr[0] + arr[1] + arr[2] + ") " + arr[3] + arr[4] + arr[5] + "-" + arr[6] + arr[7] + arr[8] + arr[9];
}

console.log(getPhoneNum([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]));

字符串拼接更好的寫法:

function createPhoneNumber(numbers) {
    const part1 = numbers.slice(0, 3).join('');
    const part2 = numbers.slice(3, 6).join('');
    const part3 = numbers.slice(6, 10).join('');
    return `(${part1}) ${part2}-${part3}`;
}

console.log(createPhoneNumber([1,2,3,4,5,6,7,8,9,0])); // 輸出: (123) 456-7890

這種方法利用了ES6的模板字符串特性,同時(shí)使用數(shù)組的slice方法來提取需要的部分。不難看出,es6的表達(dá)是更加語義化的,它不像普通的字符串拼接那樣機(jī)械而粗暴。對(duì)比兩種寫法不難看出返回的結(jié)果多了單引號(hào)并把+替換成了$,下面來講講ES6的模板字符串。

模版字符串

ES6模板字符串(也稱為模板字面量)提供了一種新的方式來創(chuàng)建字符串,它們使用反引號(hào)( )而不是單引號(hào)(' ')或雙引號(hào)(" ")。模板字符串帶來了許多便利和增強(qiáng)功能,特別是當(dāng)你需要在字符串中嵌入表達(dá)式或變量時(shí)。以下是使用 $ 符號(hào)(用于插值)的幾個(gè)主要好處:

1. 多行字符串

  • 模板字符串可以跨越多行,而不需要使用轉(zhuǎn)義字符 `` 或連接符 +。
const message = `這是一個(gè)
跨越
多行的
字符串`;
console.log(message);
// 輸出:
// 這是一個(gè)
// 跨越
// 多行的
// 字符串

2. 變量插值

  • 使用 ${} 語法可以在字符串中直接插入變量或表達(dá)式,而不需要使用字符串拼接。
const name = "Alice";
const age = 30;
const message = `我的名字是 ${name},我今年 ${age} 歲。`;
console.log(message); // 輸出: 我的名字是 Alice,我今年 30 歲。

3. 表達(dá)式插值

  • 不僅可以插入變量,還可以插入任何有效的 JavaScript 表達(dá)式。
const a = 5;
const b = 10;
const result = `a + b 的結(jié)果是 ${a + b}`;
console.log(result); // 輸出: a + b 的結(jié)果是 15

4. 可讀性和簡(jiǎn)潔性

  • 模板字符串使代碼更易讀和簡(jiǎn)潔,特別是在處理復(fù)雜的字符串拼接時(shí)。
// 傳統(tǒng)方式
const greeting = "Hello, " + name + "! You are " + age + " years old.";

// 模板字符串
const greeting = `Hello, ${name}! You are ${age} years old.`;

5. 標(biāo)簽?zāi)0?/h4>
  • 模板字符串支持標(biāo)簽?zāi)0?,這是一種高級(jí)功能,允許你在模板字符串前面加上一個(gè)函數(shù)名,該函數(shù)會(huì)處理模板字符串。
function highlight(strings, ...values) {
  let result = '';
  strings.forEach((str, i) => {
    result += str + (values[i] || '');
  });
  return `<span style="color: red;">${result}</span>`;
}

const name = "Bob";
const age = 25;
const message = highlight`My name is ${name}, and I am ${age} years old.`;
console.log(message);
// 輸出: <span style="color: red;">My name is Bob, and I am 25 years old.</span>

方法二:for循環(huán)遍歷數(shù)組和replace方法

function getPhoneNum(arr){
  let format = "(xxx) xxx-xxxx"
  for (let i = 0; i < arr.length; i++) {
    format = format.replace("x", arr[i])
  }
  return format
}
console.log(getPhoneNum([1,2,3,4,5,6,7,8,9,0]));

該方法用字符串變量 format確定了格式 "(xxx) xxx-xxxx"。再用for循環(huán)遍歷讓其中每個(gè) x 將會(huì)被 arr 數(shù)組中的相應(yīng)數(shù)字替換。對(duì)比字符串拼接這種方法的可讀性要明顯強(qiáng)的多,可以極端地試想一下,如果輸入的數(shù)組有幾百甚至幾千個(gè)數(shù)字,使用字符串拼接寫出來的代碼會(huì)非常寬!并且寫起來也非常累。

方法三:使用join和正則表達(dá)式

這種方法首先將所有數(shù)字連接成一個(gè)字符串,然后使用正則表達(dá)式插入所需的分隔符。

function createPhoneNumber(numbers) {
    const phoneNumber = numbers.join('');
    return phoneNumber.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
}

console.log(createPhoneNumber([1,2,3,4,5,6,7,8,9,0])); 

這種方法的優(yōu)勢(shì)在于代碼的簡(jiǎn)潔性和較好的性能,盡管對(duì)于初學(xué)者它的表達(dá)不太直觀,但是是否能寫出簡(jiǎn)潔性能強(qiáng)的代碼是區(qū)分大佬和普通人的一個(gè)重要指標(biāo)。

結(jié)語

以上三種方法都可以達(dá)到相同的效果,選擇哪種方法主要取決于個(gè)人偏好或具體場(chǎng)景的需求。例如,如果你希望代碼更加簡(jiǎn)潔,可能會(huì)傾向于使用方法三;而如果你更看重代碼的可讀性,可能就會(huì)選擇方法一或方法二。

以上就是JavaScript電話號(hào)碼格式化的多種實(shí)現(xiàn)方式的詳細(xì)內(nèi)容,更多關(guān)于JavaScript電話號(hào)碼格式化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 利用JavaScript實(shí)現(xiàn)的10種排序算法總結(jié)

    利用JavaScript實(shí)現(xiàn)的10種排序算法總結(jié)

    這篇文章主要介紹了利用JavaScript實(shí)現(xiàn)的十種排序算法,主要介紹了冒泡,選擇,插入,希爾,歸并,快速,堆排,計(jì)數(shù),桶排和基數(shù),有感興趣的小伙伴可以參考閱讀本文
    2023-05-05
  • JS實(shí)現(xiàn)隨機(jī)點(diǎn)名器

    JS實(shí)現(xiàn)隨機(jī)點(diǎn)名器

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)隨機(jī)點(diǎn)名器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • javascript實(shí)現(xiàn)點(diǎn)擊后變換按鈕顯示文字的方法

    javascript實(shí)現(xiàn)點(diǎn)擊后變換按鈕顯示文字的方法

    這篇文章主要介紹了javascript實(shí)現(xiàn)點(diǎn)擊后變換按鈕顯示文字的方法,可實(shí)現(xiàn)顯示一些按鈕如果點(diǎn)擊了,按鈕文本變?yōu)椤包c(diǎn)了”,其他按鈕文本變?yōu)椤皼]點(diǎn)”的效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • JS+CSS實(shí)現(xiàn)實(shí)用的單擊輸入框彈出選擇框的方法

    JS+CSS實(shí)現(xiàn)實(shí)用的單擊輸入框彈出選擇框的方法

    這篇文章主要介紹了JS+CSS實(shí)現(xiàn)實(shí)用的單擊輸入框彈出選擇框的方法,實(shí)例分析了javascript操作select及button的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 微信小程序?qū)崿F(xiàn)經(jīng)典window掃雷游戲

    微信小程序?qū)崿F(xiàn)經(jīng)典window掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)經(jīng)典window掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • JavaScript?ES6?Class類全方位進(jìn)階指南

    JavaScript?ES6?Class類全方位進(jìn)階指南

    在ES6中class(類)作為對(duì)象的模板被引入,可以通過class關(guān)鍵字定義類,這篇文章主要介紹了JavaScript ES6 Class類全方位進(jìn)階指南的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-04-04
  • Javascript中的Callback方法淺析

    Javascript中的Callback方法淺析

    這篇文章主要介紹了Javascript中的Callback方法淺析,本文講解了什么是callback、Javscript Callback、Callback是什么、Callback實(shí)例等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • zeroclipboard 單個(gè)復(fù)制按鈕和多個(gè)復(fù)制按鈕的實(shí)現(xiàn)方法

    zeroclipboard 單個(gè)復(fù)制按鈕和多個(gè)復(fù)制按鈕的實(shí)現(xiàn)方法

    最近網(wǎng)站改版想讓復(fù)制代碼功能在多個(gè)瀏覽器上都可以實(shí)現(xiàn),最近看網(wǎng)上不少說我們的代碼復(fù)制功能不好用的,我們最近將會(huì)增加代碼高亮等功能,希望大家多多支持我們
    2014-06-06
  • JS 用6N±1法求素?cái)?shù) 實(shí)例教程

    JS 用6N±1法求素?cái)?shù) 實(shí)例教程

    顯然,當(dāng)N≥1時(shí),6N,6N+2,6N+3,6N+4都不是素?cái)?shù),只有形如6N+1和6N+5的自然數(shù)有可能是素?cái)?shù)。所以,除了2和3之外,所有的素?cái)?shù)都可以表示成6N±1的形式(N為自然數(shù))。
    2009-10-10
  • Bootstrap每天必學(xué)之柵格系統(tǒng)(布局)

    Bootstrap每天必學(xué)之柵格系統(tǒng)(布局)

    Bootstrap每天必學(xué)之柵格系統(tǒng),小編對(duì)Bootstrap柵格系統(tǒng)(布局)也很陌生,特分享整理這篇文章,感興趣的小伙伴們可以參考一下
    2015-11-11

最新評(píng)論

延长县| 开鲁县| 张家口市| 蒙山县| 五台县| 大港区| 塘沽区| 花莲县| 平泉县| 离岛区| 达日县| 米林县| 布拖县| 泗水县| 新郑市| 朔州市| 屏东市| 灵川县| 常州市| 工布江达县| 广东省| 丰城市| 徐州市| 江口县| 东宁县| 丹棱县| 虎林市| 皋兰县| 新郑市| 左贡县| 锦州市| 荥经县| 微博| 东源县| 马公市| 池州市| 宁陕县| 罗源县| 方城县| 宜良县| 温宿县|