• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    javascript中Date對象的getDay方法使用指南_javascript技巧

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:30:37
    文檔

    javascript中Date對象的getDay方法使用指南_javascript技巧

    javascript中Date對象的getDay方法使用指南_javascript技巧:Date對象有個getDay方法,它根據(jù)本地時間,返回一個具體日期中一周的第幾天。返回值從0~6,分別對應(yīng)周日~周六 getDay 0 1 2 3 4 5 6 星期幾 周日 周一 周二 周三 周四 周五 周六 用到日期相關(guān)的需求時需要將getDay返回的值轉(zhuǎn)成星期幾,即這一天是星期
    推薦度:
    導(dǎo)讀javascript中Date對象的getDay方法使用指南_javascript技巧:Date對象有個getDay方法,它根據(jù)本地時間,返回一個具體日期中一周的第幾天。返回值從0~6,分別對應(yīng)周日~周六 getDay 0 1 2 3 4 5 6 星期幾 周日 周一 周二 周三 周四 周五 周六 用到日期相關(guān)的需求時需要將getDay返回的值轉(zhuǎn)成星期幾,即這一天是星期
    Date對象有個getDay方法,它根據(jù)本地時間,返回一個具體日期中一周的第幾天。返回值從0~6,分別對應(yīng)周日~周六

    getDay 0 1 2 3 4 5 6
    星期幾 周日 周一 周二 周三 周四 周五 周六

    用到日期相關(guān)的需求時需要將getDay返回的值轉(zhuǎn)成星期幾,即“這一天”是星期幾?比如日歷組件中選擇日歷后返回 “2014-12-22 周一”。

    這是一段依然在線上運行的代碼

    代碼如下:
    /*
    * 根據(jù)Date對象返回星期幾
    * @param {Date} date
    * @return {String} "星期三"
    */
    function getChineseWeekByDate(date) {
    var numWeekDay = date.getDay();
    if (numWeekDay == 0) {
    return '周日';
    } else if (numWeekDay == 1) {
    return '周一';
    } else if (numWeekDay == 2) {
    return '周二';
    } else if (numWeekDay == 3) {
    return '周三';
    } else if (numWeekDay == 4) {
    return '周四';
    } else if (numWeekDay == 5) {
    return '周五';
    } else if (numWeekDay == 6) {
    return '周六';
    } else {
    return '';
    }
    }

    這段代碼通過多個if else分支判斷,返回星期幾,有同學(xué)提到可以利用switch優(yōu)化下

    代碼如下:
    /*
    * 根據(jù)Date對象返回星期幾
    * @param {Date} date
    * @return {String} "星期三"
    */
    function getChineseWeekByDate(date) {
    var numWeekDay = date.getDay();
    switch (numWeekDay) {
    case 0: return '周日';
    case 1: return '周一';
    case 2: return '周二';
    case 3: return '周三';
    case 4: return '周四';
    case 5: return '周五';
    case 6: return '周六';
    default: return '';
    }
    }

    相比if/else,代碼簡且短清晰了不少。有人做過統(tǒng)計代碼越簡短,大腦思考的時間越短。因此你會看到各種《短碼之美》,《代碼簡潔之道》等各種倡導(dǎo)和贊美“短碼”的人和書。

    《代碼大全》提到利用表驅(qū)動法來簡化編程

    表驅(qū)動法 — 表驅(qū)動法是一種編程模式(scheme),從表里查找信息而不使用邏輯語句(if和switch)。事實上,凡是能通過邏輯語句來選擇的,都可以通過查表來選擇。對簡單的情況而言,使用邏輯語句更為容易和直白。但隨著邏輯鏈越來越復(fù)雜,查表法也就越發(fā)顯得有吸引力。

    上面提到利用表替代邏輯語句,JS里有不少前端工程師自從了解了函數(shù)式語言的一些特性,就拼命的用表達式消滅語句。比如

    1. && 替代 單if

    代碼如下:
    if (a == 1) {
    $.ajax(xx)
    }
    // -->
    (a == 1) && $.ajax(xx)

    2. ?: 替代 if/else

    代碼如下:
    if (a == 1) {
    $.ajax(xx)
    } else {
    $(yy).remove()
    }
    // -->
    (a == 1) ? $.ajax(xx) : $(yy).remove()

    3. 多個if/else和switch 也可以用多個“?:”替換

    代碼如下:
    if (a == 1) {
    alert(1)
    } else if (a == 2) {
    alert(2)
    } else if (a == 3) {
    alert(3)
    } else {
    alert(4)
    }
    // -->
    (a == 1)
    ? alert(1) : (a == 2)
    ? alert(2) : (a == 3)
    ? alert(3) : alert(4)

    另外,還可以用函數(shù)遞歸去消滅for/while語句。開始對這些寫法比較上癮,后來發(fā)現(xiàn)自己看不懂了(可能還是看的少,大腦總是自然的又將這些轉(zhuǎn)換成語句),最后還是習(xí)慣用語句。

    《代碼大全》里說的表,我們用一個JS對象來替換試下

    代碼如下:
    /*
    * 根據(jù)Date對象返回星期幾
    * @param {Date} date
    * @return {String} "星期三"
    */
    function getChineseWeekByDate(date) {
    var numWeekDay = date.getDay();
    var weekObj = {
    '0': '周日',
    '1': '周一',
    '2': '周二',
    '3': '周三',
    '4': '周四',
    '5': '周五',
    '6': '周六',
    };
    return weekObj[numWeekDay] || '';
    }

    相比switch,又減了不少代碼,但還有0~6字樣的key存在。getDay方法返回的從0開始恰好和JS數(shù)組索引一樣也是從0開始。因此用數(shù)組可以再簡化下

    代碼如下:
    /*
    * 根據(jù)Date對象返回星期幾
    * @param {Date} date
    * @return {String} "星期三"
    */
    function getChineseWeekByDate(date) {
    var numWeekDay = date.getDay();
    var weekArr = ['周日', '周一','周二','周三','周四','周五','周六'];
    return weekArr[numWeekDay] || '';
    }

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    javascript中Date對象的getDay方法使用指南_javascript技巧

    javascript中Date對象的getDay方法使用指南_javascript技巧:Date對象有個getDay方法,它根據(jù)本地時間,返回一個具體日期中一周的第幾天。返回值從0~6,分別對應(yīng)周日~周六 getDay 0 1 2 3 4 5 6 星期幾 周日 周一 周二 周三 周四 周五 周六 用到日期相關(guān)的需求時需要將getDay返回的值轉(zhuǎn)成星期幾,即這一天是星期
    推薦度:
    標(biāo)簽: 方法 js javascript
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 无码乱码观看精品久久| 亚洲精品无码AV中文字幕电影网站| 日韩精品欧美亚洲| 精品一卡2卡三卡4卡免费视频| 最新国产在线精品观看| 精品国产一区二区三区在线观看| 四虎精品成人免费永久| 2048亚洲精品国产| 精品国产一区二区三区无码| 亚洲精品乱码久久久久66| 四虎国产精品成人免费久久| 国产欧美精品一区二区三区四区| 亚洲精品欧美综合在线| 国产精品亚洲精品| 97久久精品无码一区二区| 精品性影院一区二区三区内射| 亚洲精品蜜桃久久久久久| 亚洲精品tv久久久久久久久 | 99精品免费视品| 九九精品99久久久香蕉| 久久久久久久久无码精品亚洲日韩| 中文字幕精品久久| 亚洲日韩精品一区二区三区 | 亚洲AV成人精品日韩一区18p| 久久久久国产成人精品亚洲午夜| 国产精品一区二区三区99| 99精品在线免费| 国产精品福利在线观看免费不卡 | 五月花精品视频在线观看| 国产日韩精品在线| 久久96国产精品久久久| 国产亚洲精品国产| 亚洲永久永久永久永久永久精品| 亚洲色图国产精品| 国产午夜精品久久久久九九电影| 国产在线精品国自产拍影院| 久久精品二区| 亚洲精品99久久久久中文字幕| 亚洲av午夜福利精品一区| 国产在线精品免费aaa片| 国产精品久久永久免费|