1. 19個少見卻很有用的JavaScript技巧

        共 6258字,需瀏覽 13分鐘

         ·

        2022-03-08 23:15

        點擊上方 前端Q,關注公眾號

        回復加群,加入前端Q技術交流群


        來源 |  https://www.fly63.com

        今天這篇文章,我跟大家分享19個少見卻很有用的 JavaScript技巧,希望對你也幫助。

        1、“返回”按鈕

        使用 history.back() 可以創(chuàng)建一個瀏覽器“返回”按鈕。
            
        <button onclick="history.back()">    返回</button>

        2、數(shù)字分隔符

        為了提高數(shù)字的可讀性,您可以使用下劃線作為分隔符:

            
        const largeNumber = 1_000_000_000;console.log(largeNumber); // 1000000000

        3、事件監(jiān)聽器只運行一次

        如果你想添加一個事件監(jiān)聽器并且只運行一次,你可以使用 once 選項:

            
        element.addEventListener('click', () => console.log('I run only once'), {    once: true});

        4、console.log 變量包裝

        您在 console.log() 的時候,將參數(shù)用大括號括起來,這樣可以同時看到變量名和變量值。


        5、從數(shù)組中獲取最小值/最大值

        您可以使用 Math.min() 或 Math.max() 結(jié)合擴展運算符來查找數(shù)組中的最小值或最大值。

            
        const numbers = [6, 8, 1, 3, 9];console.log(Math.max(...numbers)); // 9console.log(Math.min(...numbers)); // 1

        6、 檢查 Caps Lock 是否打開

        您可以使用 KeyboardEvent.getModifierState() 來檢測是否 Caps Lock 打開。

            
        const passwordInput = document.getElementById('password');passwordInput.addEventListener('keyup', function (event) {if (event.getModifierState('CapsLock')) {// CapsLock 已經(jīng)打開了    }});      

        7、 復制到剪貼板

        您可以使用 Clipboard api 創(chuàng)建“復制到剪貼板”功能:

            
        function copyToClipboard(text) {    navigator.clipboard.writeText(text);}

        8、獲取鼠標位置

        您可以使用 MouseEvent 對象下 clientX 和 clientY 的屬性值,獲取鼠標的當前位置坐標信息。

            
        document.addEventListener('mousemove', (e) => {console.log(`Mouse X: ${e.clientX}, Mouse Y: ${e.clientY}`);});   

        9、縮短數(shù)組

        您可以設置 length 屬性來縮短數(shù)組。

            
        const numbers = [1, 2, 3, 4, 5]numbers.length = 3;console.log(numbers); // [1, 2, 3]

        10、簡寫條件判斷語句

        如果僅在判斷條件為 true 時才執(zhí)行函數(shù),則可以使用 && 簡寫。

            
        // 普通寫法if (condition) {    doSomething();}// 簡寫condition && doSomething();      

        11、console.table() 打印特定格式的表格

        語法:

            
        // [] 里面指的是可選參數(shù)console.table(data [, columns]);

        參數(shù):

        • data 表示要顯示的數(shù)據(jù)。必須是數(shù)組或?qū)ο蟆?/span>
        • columns 表示一個包含列的名稱的數(shù)組。

        實例:

            
        // 一個對象數(shù)組,只打印 firstNamefunction Person(firstName, lastName) {this.firstName = firstName;this.lastName = lastName;}const john = new Person("John", "Smith");const jane = new Person("Jane", "Doe");const emily = new Person("Emily", "Jones");console.table([john, jane, emily], ["firstName"]);

        12、 數(shù)組去重

            
        const numbers = [2, 3, 4, 4, 2];console.log([...new Set(numbers)]); // [2, 3, 4]

        13、將字符串轉(zhuǎn)換為數(shù)字

            
        const str = '404';console.log(+str) // 404;       

        14、將數(shù)字轉(zhuǎn)換為字符串

        連接空字符串。

            
        const myNumber = 403;console.log(myNumber + ''); // '403'

        15、從數(shù)組中過濾所有虛值

            
        const myArray = [1, undefined, NaN, 2, null, '@denicmarko', true, 3, false];console.log(myArray.filter(Boolean)); // [1, 2, "@denicmarko", true, 3]

        16、妙用 includes

            
        const myTech = 'JavaScript';const techs = ['html', 'css', 'JavaScript'];// 普通寫法if (myTech === 'HTML' || myTech === 'CSS' || myTech === 'JavaScript') {// do something}// includes 寫法if (techs.includes(myTech)) {// do something }     

        17、妙用 reduce 對數(shù)組求和

            
        const myArray = [10, 20, 30, 40];const reducer = (total, currentValue) => total + currentValue;console.log(myArray.reduce(reducer)); // 100

        18、console.log() 樣式

        您知不知道可以使用 CSS 語句在 DevTools 中設置 console.log 輸出的樣式:


        19、元素的 dataset

        使用 dataset 屬性訪問元素的自定義數(shù)據(jù)屬性

            
        <div id="user" data-name="John Doe" data-age="29" data-something="Some Data">    John Doe</div><script>const user = document.getElementById('user');console.log(user.dataset); // { name: "John Doe", age: "29", something: "Some Data" }console.log(user.dataset.name); // "John Doe"console.log(user.dataset.age); // "29"console.log(user.dataset.something); // "Some Data"</script>

        本文完~


        往期推薦


        第一次拿全年年終獎的前端女程序員的2021
        對話Svelte未來,Rust 編譯器?構(gòu)建大型應用?
        收藏!史上最全 Vue 前端代碼風格指南

        最后


        • 歡迎加我微信,拉你進技術群,長期交流學習...

        • 歡迎關注「前端Q」,認真學前端,做個專業(yè)的技術人...

        點個在看支持我吧
        瀏覽 34
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 天天干夜夜怕 | 九色|PORNY|国产|成人|蝌蚪 | 九色蝌蚪porny | 长泽新有吗视频在线看 | 小舞揉搓难受3d动漫 |