1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        學(xué)會(huì)這20+個(gè)JavaScript單行代碼,可以讓你的代碼更加騷氣

        共 7264字,需瀏覽 15分鐘

         ·

        2021-06-22 08:42

        點(diǎn)擊上方 前端瓶子君,關(guān)注公眾號(hào)

        回復(fù)算法,加入前端編程面試算法每日一題群

        JavaScript不斷發(fā)展壯大,
        因?yàn)樗亲钊菀咨鲜值恼Z(yǔ)言之一,因此為市場(chǎng)上的新成為技術(shù)怪才打開(kāi)了大門(mén)。(問(wèn)號(hào)臉?)

        的確,JavaScript可以做很多出色的事情!還有很多東西要學(xué)習(xí)。

        而且,無(wú)論你是JavaScript的新手還是更多的專(zhuān)業(yè)開(kāi)發(fā)人員,學(xué)習(xí)新知識(shí)總是一件好事。

        本文整理了一些非常有用的單行代碼(20+),這些單行代碼可以幫助你提高工作效率并可以幫助調(diào)試代碼。

        什么是單行代碼?

        單行代碼是一種代碼實(shí)踐,其中我們僅用一行代碼執(zhí)行某些功能。

        01-隨機(jī)獲取布爾值

        此函數(shù)將使用Math.random()方法返回布爾值(真或假)。
        Math.random創(chuàng)建一個(gè)介于0和1之間的隨機(jī)數(shù),然后我們檢查它是否大于或小于0.5。
        這意味著有50/50的機(jī)會(huì)會(huì)得到對(duì)或錯(cuò)。

        const getRandomBoolean = () => Math.random() >= 0.5;

        console.log(getRandomBoolean());
        // a 50/50 chance of returning true or false

        02-檢查日期是否為周末

        通過(guò)此功能,你將能夠檢查提供的日期是工作日還是周末。

        const isWeekend = (date) => [06].indexOf(date.getDay()) !== -1;

        console.log(isWeekend(new Date(2021414)));
        // false (Friday)
        console.log(isWeekend(new Date(2021415)));
        // true (Saturday)

        03-檢查數(shù)字是偶數(shù)還是奇數(shù)

        簡(jiǎn)單的實(shí)用程序功能,用于檢查數(shù)字是偶數(shù)還是奇數(shù)。

        const isEven = (num) => num % 2 === 0;

        console.log(isEven(5));
        // false
        console.log(isEven(4));
        // true

        04-獲取數(shù)組中的唯一值(數(shù)組去重)

        從數(shù)組中刪除所有重復(fù)值的非常簡(jiǎn)單的方法。此函數(shù)將數(shù)組轉(zhuǎn)換為Set,然后返回?cái)?shù)組。

        const uniqueArr = (arr) => [...new Set(arr)];

        console.log(uniqueArr([12312345]));
        // [1, 2, 3, 4, 5]

        05-檢查變量是否為數(shù)組

        一種檢查變量是否為數(shù)組的干凈簡(jiǎn)便的方法。

        當(dāng)然,也可以有其他方法??

        const isArray = (arr) => Array.isArray(arr);

        console.log(isArray([123]));
        // true
        console.log(isArray({ name'Ovi' }));
        // false
        console.log(isArray('Hello World'));
        // false

        06-在兩個(gè)數(shù)字之間生成一個(gè)隨機(jī)數(shù)

        這將以兩個(gè)數(shù)字為參數(shù),并將在這兩個(gè)數(shù)字之間生成一個(gè)隨機(jī)數(shù)!

        const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);

        console.log(random(150));
        // could be anything from 1 - 50

        07-生成隨機(jī)字符串(唯一ID?)

        也許你需要臨時(shí)的唯一ID,這是一個(gè)技巧,你可以使用它在旅途中生成隨機(jī)字符串。

        const randomString = () => Math.random().toString(36).slice(2);

        console.log(randomString());
        // could be anything!!!

        08-滾動(dòng)到頁(yè)面頂部

        所述window.scrollTo()方法把一個(gè)XY坐標(biāo)滾動(dòng)到。
        如果將它們?cè)O(shè)置為零和零,我們將滾動(dòng)到頁(yè)面頂部。

        image.png
        const scrollToTop = () => window.scrollTo(00);

        scrollToTop();

        09-切換布爾

        切換布爾值是非?;镜木幊虇?wèn)題之一,可以通過(guò)許多不同的方法來(lái)解決。
        代替使用if語(yǔ)句來(lái)確定將布爾值設(shè)置為哪個(gè)值,你可以使用函數(shù)使用!翻轉(zhuǎn)當(dāng)前值。運(yùn)算符。

        // bool is stored somewhere in the upperscope
        const toggleBool = () => (bool = !bool);
        //or
        const toggleBool = b => !b;

        10-交換兩個(gè)變量

        下面的代碼是不使用第三個(gè)變量而僅使用一行代碼即可交換兩個(gè)變量的更簡(jiǎn)單方法之一。

        [foo, bar] = [bar, foo];

        11-計(jì)算兩個(gè)日期之間的天數(shù)

        要計(jì)算兩個(gè)日期之間的天數(shù),
        我們首先找到兩個(gè)日期之間的絕對(duì)值,然后將其除以86400000(等于一天中的毫秒數(shù)),最后將結(jié)果四舍五入并返回。

        const daysDiff = (date, date2) => Math.ceil(Math.abs(date - date2) / 86400000);

        console.log(daysDiff(new Date('2021-05-10'), new Date('2021-11-25')));
        // 199

        12-將文字復(fù)制到剪貼板

        PS:你可能需要添加檢查以查看是否存在navigator.clipboard.writeText

        const copyTextToClipboard = async (text) => {
          await navigator.clipboard.writeText(text);
        };

        13-合并多個(gè)數(shù)組的不同方法

        有兩種合并數(shù)組的方法。其中之一是使用concat方法。另一個(gè)使用擴(kuò)展運(yùn)算符()。

        PS:我們也可以使用“設(shè)置”對(duì)象從最終數(shù)組中復(fù)制任何內(nèi)容。

        // Merge but don't remove the duplications
        const merge = (a, b) => a.concat(b);
        // Or
        const merge = (a, b) => [...a, ...b];

        // Merge and remove the duplications
        const merge = [...new Set(a.concat(b))];
        // Or
        const merge = [...new Set([...a, ...b])];

        14-獲取javascript語(yǔ)言的實(shí)際類(lèi)型

        人們有時(shí)會(huì)使用庫(kù)來(lái)查找JavaScript中某些內(nèi)容的實(shí)際類(lèi)型,這一小技巧可以節(jié)省你的時(shí)間(和代碼大?。?br>

        const trueTypeOf = (obj) => {
          return Object.prototype.toString.call(obj).slice(8-1).toLowerCase();
        };

        console.log(trueTypeOf(''));
        // string
        console.log(trueTypeOf(0));
        // number
        console.log(trueTypeOf());
        // undefined
        console.log(trueTypeOf(null));
        // null
        console.log(trueTypeOf({}));
        // object
        console.log(trueTypeOf([]));
        // array
        console.log(trueTypeOf(0));
        // number
        console.log(trueTypeOf(() => {}));
        // function

        15-在結(jié)尾處截?cái)嘧址?/span>

        需要從頭開(kāi)始截?cái)嘧址?,這不是問(wèn)題!

        const truncateString = (string, length) => {
          return string.length < length ? string : `${string.slice(0, length - 3)}...`;
        };

        console.log(
          truncateString('Hi, I should be truncated because I am too loooong!'36),
        );
        // Hi, I should be truncated because...

        16-從中間截?cái)嘧址?/span>

        從中間截?cái)嘧址趺礃樱?/p>

        該函數(shù)將一個(gè)字符串作為第一個(gè)參數(shù),然后將我們需要的字符串大小作為第二個(gè)參數(shù),然后從第3個(gè)和第4個(gè)參數(shù)開(kāi)始和結(jié)束需要多少個(gè)字符

        const truncateStringMiddle = (string, length, start, end) => {
          return `${string.slice(0, start)}...${string.slice(string.length - end)}`;
        };

        console.log(
          truncateStringMiddle(
            'A long story goes here but then eventually ends!'// string
            25// 需要的字符串大小
            13// 從原始字符串第幾位開(kāi)始截取
            17// 從原始字符串第幾位停止截取
          ),
        );
        // A long story ... eventually ends!

        17-大寫(xiě)字符串

        好吧,不幸的是,JavaScript沒(méi)有內(nèi)置函數(shù)來(lái)大寫(xiě)字符串,但是這種解決方法可以實(shí)現(xiàn)。

        const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);

        console.log(capitalize('hello world'));

        // Hello world

        18-檢查當(dāng)前選項(xiàng)卡是否在視圖/焦點(diǎn)內(nèi)

        此簡(jiǎn)單的幫助程序方法根據(jù)選項(xiàng)卡是否處于視圖/焦點(diǎn)狀態(tài)而返回truefalse

        const isTabInView = () => !document.hidden;  // Not hidden

        isTabInView();

        // true/false

        19-檢查用戶是否在Apple設(shè)備上

        如果用戶使用的是Apple設(shè)備,則返回true

        const isAppleDevice = () => /Mac|iPod|iPhone|iPad/.test(navigator.platform);

        console.log(isAppleDevice);
        // true/false

        20-三元運(yùn)算符

        當(dāng)你只想在一行中編寫(xiě)if..else語(yǔ)句時(shí),這是一個(gè)很好的代碼保護(hù)程序。

        // Longhand
        const age = 18;
        let greetings;

        if (age < 18) {
          greetings = 'You are not old enough';
        else {
          greetings = 'You are young!';
        }

        // Shorthand
        const greetings = age < 18 ? 'You are not old enough' : 'You are young!';

        21-短路評(píng)估速記

        在將變量值分配給另一個(gè)變量時(shí),可能要確保源變量不為null,未定義或?yàn)榭铡?br>可以編寫(xiě)帶有多個(gè)條件的long if語(yǔ)句,也可以使用短路評(píng)估。

        // Longhand
        if (name !== null || name !== undefined || name !== '') {
          let fullName = name;
        }

        // Shorthand
        const fullName = name || 'buddy';

        希望對(duì)你有所幫助!

        關(guān)于本文
        來(lái)源:JenK
        https://segmentfault.com/a/1190000039994479


        最后

        歡迎關(guān)注【前端瓶子君】??ヽ(°▽°)ノ?
        回復(fù)「算法」,加入前端編程源碼算法群,每日一道面試題(工作日),第二天瓶子君都會(huì)很認(rèn)真的解答喲!
        回復(fù)「交流」,吹吹水、聊聊技術(shù)、吐吐槽!
        回復(fù)「閱讀」,每日刷刷高質(zhì)量好文!
        如果這篇文章對(duì)你有幫助,在看」是最大的支持
         》》面試官也在看的算法資料《《
        “在看和轉(zhuǎn)發(fā)”就是最大的支持
        瀏覽 34
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            无码日韩电影 | 欧美性爱熟女 | 天天看天天撸 | 青草视频网站 | 外国黄色小视频 | 成人激情视频 | 亚洲色图欧美另类 | 午夜视频黄| 精品日韩人妻一区二区三中文字幕 | 成人精品视频网站 |