<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        史上最全JavaScript常用的簡寫技巧(推薦)

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:32:31
        文檔

        史上最全JavaScript常用的簡寫技巧(推薦)

        史上最全JavaScript常用的簡寫技巧(推薦):JavaScript 是屬于網(wǎng)絡的腳本語言!被數(shù)百萬計的網(wǎng)頁用來改進設計、驗證表單、檢測瀏覽器、創(chuàng)建cookies,以及更多的應用。同時很容易使用,所以越來越多的開發(fā)者選擇js代碼來實現(xiàn)自己想要的效果,但開發(fā)過程中,為了更高的效率和良好的代碼規(guī)范要求,我們不得
        推薦度:
        導讀史上最全JavaScript常用的簡寫技巧(推薦):JavaScript 是屬于網(wǎng)絡的腳本語言!被數(shù)百萬計的網(wǎng)頁用來改進設計、驗證表單、檢測瀏覽器、創(chuàng)建cookies,以及更多的應用。同時很容易使用,所以越來越多的開發(fā)者選擇js代碼來實現(xiàn)自己想要的效果,但開發(fā)過程中,為了更高的效率和良好的代碼規(guī)范要求,我們不得

        JavaScript 是屬于網(wǎng)絡的腳本語言!被數(shù)百萬計的網(wǎng)頁用來改進設計、驗證表單、檢測瀏覽器、創(chuàng)建cookies,以及更多的應用。同時很容易使用,所以越來越多的開發(fā)者選擇js代碼來實現(xiàn)自己想要的效果,但開發(fā)過程中,為了更高的效率和良好的代碼規(guī)范要求,我們不得不知曉js一些常用的簡寫技巧,如下我?guī)痛蠹艺砹讼拢黄疬M來看看吧~

        1. 三元運算符

        當你想用一行代碼來寫if...else語句的時候,使用三元操作符是非常好的選擇,例如:

        const x = 20;
        let answer;
        if (x > 10) {
         answer = 'is greater';
        } else {
         answer = 'is lesser';
        }

        可以簡寫為:

        const answer = x > 10 ? 'is greater' : 'is lesser';

        也可以嵌套if語句:

        const big = x > 10 ? " greater 10" : x

        2. 簡寫短路求值

        當給一個變量分配另一個值的時候,你可能想確定初值不是null,undefined或空值。這時,你可以寫一個多重條件的if語句:

        if (variable1 !== null || variable1 !== undefined || variable1 !== '') {
         let variable2 = variable1;
        }

        或者可以使用短路求值的方法:

        const variable2 = variable1  || 'new';

        3. 簡寫變量聲明

        在定義函數(shù)的時候,你可能需要先聲明多個變量,例如:

        let x;
        let y;
        let z = 3;

        這時,你可以使用簡寫的方式節(jié)省很多時間和空間,即同時聲明多個變量:

        let x, y, z=3;

        4. 簡寫 if 執(zhí)行條件

        這可能微不足道,但值得一提。在你做if條件檢查的時候,其賦值操作可以省略,例如:

        if (likeJavaScript === true)

        可以簡寫為:

        if (likeJavaScript)

        只有當likeJavaScript是真值的時候,以上兩個語句才可以替換。如果判斷假值,例如:

        let a;
        if ( a !== true ) {
         // do something...
        }

        可以簡寫為:

        let a;
        if ( !a ) {
         // do something...
        }

        5. 簡寫 JavaScript 循環(huán)方法

        當你想使用純 javascript 而不依賴外庫(例如jQuery)的時候,這是非常有用的。

        for (let i = 0; i < allImgs.length; i++)

        可以簡寫為:

        for (let index in allImgs)

        也可以使用Array.forEach:

        function logArrayElements(element, index, array) {
         console.log("a[" + index + "] = " + element);
        }
        [2, 5, 9].forEach(logArrayElements);
        // logs:
        // a[0] = 2
        // a[1] = 5
        // a[2] = 9

        6. 短路求值

        如果想通過判斷參數(shù)是否為null或者undefined來分配默認值的話,我們不需要寫六行代碼,而是可以使用一個短路邏輯運算符,只用一行代碼來完成相同的操作。例如:

        let dbHost;
        if (process.env.DB_HOST) {
         dbHost = process.env.DB_HOST;
        } else {
         dbHost = 'localhost';
        }

        可以簡寫為:

        const dbHost = process.env.DB_HOST || 'localhost';

        7. 十進制指數(shù)

        當數(shù)字的尾部為很多的零時(如10000000),咱們可以使用指數(shù)(1e7)來代替這個數(shù)字,例如:

        for (let i = 0; i < 10000; i++) {}

        可以簡寫為:

        for (let i = 0; i < 1e7; i++) {}

        // 下面都是返回 true
        1e0 === 1;
        1e1 === 10;
        1e2 === 100;
        1e3 === 1000;
        1e4 === 10000;
        1e5 === 100000;

        8. 簡寫對象屬性

        在 JavaScript 中定義對象很簡單,而且ES6提供了一個更簡單的分配對象屬性的方法。如果屬性名與key值相同,例如:

        const obj = { x:x, y:y };

        則可以簡寫為:

        const obj = { x, y };

        9. 簡寫箭頭函數(shù)

        傳統(tǒng)函數(shù)很容易讓人理解和編寫,但是當它嵌套在另一個函數(shù)中的時候,它就會變得冗長和混亂。例如:

        function sayHello(name) {
         console.log('Hello', name);
        }
        setTimeout(function() {
         console.log('Loaded')
        }, 2000);
        list.forEach(function(item) {
         console.log(item);
        });

        這時,可以簡寫為:

        sayHello = name => console.log('Hello', name);

        setTimeout(() => console.log('Loaded'), 2000);

        list.forEach(item => console.log(item));

        10. 簡寫隱式返回值

        我們經常使用return語句來返回函數(shù)最終結果,僅有一行聲明語句的箭頭函數(shù)能隱式返回其值(這時函數(shù)必須省略{}以便省略return關鍵字)。如果想要返回多行語句,則需要使用()包圍函數(shù)體。例如:

        function calcCircumference(diameter) {
         return Math.PI * diameter
        }
        var func = function func() {
         return { foo: 1 };
        };

        可以簡寫為:

        calcCircumference = diameter => (
         Math.PI * diameter;
        )
        var func = () => ({ foo: 1 });

        11. 默認參數(shù)值

        我們經常可以使用if語句來為函數(shù)中的參數(shù)定義默認值。但是在ES6中,咱們可以在函數(shù)本身聲明參數(shù)的默認值。例如:

        function volume(l, w, h) {
         if (w === undefined)
         w = 3;
         if (h === undefined)
         h = 4;
         return l * w * h;
        }

        可以簡寫為:

        volume = (l, w = 3, h = 4 ) => (l * w * h);

        volume(2)   // output: 24

        12. 字符串模板

        你是不是厭倦了使用+將多個變量轉換為字符串?有沒有更簡單的方法呢?如果你能夠使用ES6,那么很幸運,你僅需使用反引號并將變量置于${}之中即可。例如:

        const welcome = 'You have logged in as ' + first + ' ' + last + '.'
        
        const db = 'http://' + host + ':' + port + '/' + database;
        

        可以簡寫為:

        const welcome = `You have logged in as ${first} ${last}`;
        
        const db = `http://${host}:${port}/${database}`;
        

        13. 簡寫賦值方法

        如果你正在使用任何流行的 Web 框架,那么你很有可能使用數(shù)組或以對象本文的形式將數(shù)據(jù)在組件和 API 之間進行通信。一旦數(shù)據(jù)對象到達一個組件,你就需要解壓它。例如:

        const observable = require('mobx/observable');
        const action = require('mobx/action');
        const runInAction = require('mobx/runInAction');
        
        const store = this.props.store;
        const form = this.props.form;
        const loading = this.props.loading;
        const errors = this.props.errors;
        const entity = this.props.entity;
        

        可以簡寫為:

        import { observable, action, runInAction } from 'mobx';
        
        const { store, form, loading, errors, entity } = this.props;
        

        也可以分配變量名:

        // 最后一個變量名為 contact

        const { store, form, loading, errors, entity:contact } = this.props;

        14. 簡寫多行字符串

        如果你曾發(fā)現(xiàn)自己需要在代碼中編寫多行字符串,那么這估計就是你編寫它們的方法,即在輸出的多行字符串間用+來拼接:

        const lorem = 'Lorem ipsum dolor sit amet, consectetur\n\t'
         + 'adipisicing elit, sed do eiusmod tempor incididunt\n\t'
         + 'ut labore et dolore magna aliqua. Ut enim ad minim\n\t'
         + 'veniam, quis nostrud exercitation ullamco laboris\n\t'
         + 'nisi ut aliquip ex ea commodo consequat. Duis aute\n\t'
         + 'irure dolor in reprehenderit in voluptate velit esse.\n\t'

        但是如果使用反引號,你就可以達到簡寫的目的:

        const lorem = `Lorem ipsum dolor sit amet, consectetur
         adipisicing elit, sed do eiusmod tempor incididunt
         ut labore et dolore magna aliqua. Ut enim ad minim
         veniam, quis nostrud exercitation ullamco laboris
         nisi ut aliquip ex ea commodo consequat. Duis aute
         irure dolor in reprehenderit in voluptate velit esse.`

        15. 擴展運算符

        在ES6中,包括擴展運算符,它可以使你的操作更簡單,例如:

        // joining arrays
        const odd = [1, 3, 5];
        const nums = [2 ,4 , 6].concat(odd);
        
        // cloning arrays
        const arr = [1, 2, 3, 4];
        const arr2 = arr.slice()
        

        可以簡寫為:

        // joining arrays
        const odd = [1, 3, 5];
        const nums = [2 ,4 , 6, ...odd];
        console.log(nums); // [2, 4, 6, 1, 3, 5]
        
        // cloning arrays
        const arr = [1, 2, 3, 4];
        const arr2 = [...arr];
        

        不像concat()函數(shù),你可以使用擴展運算符在一個數(shù)組中任意處插入另一個數(shù)組,例如:

        const odd = [1, 3, 5 ];
        const nums = [2, ...odd, 4, 6];

        也可以使用擴展運算符:

        const { a, b, ...z } = { a: 1, b: 2, c: 3, d: 4 };
        console.log(a) // 1
        console.log(b) // 2
        console.log(z) // { c: 3, d: 4 }

        16. 強制參數(shù)

        默認情況下,如果不傳遞值,JavaScript 會將函數(shù)參數(shù)設置為undefined,而其他一些語言則會報出警告或錯誤。想要執(zhí)行參數(shù)分配,則可以讓if語句拋出undefined的錯誤,或者使用“強制參數(shù)”的方法。例如:

        function foo(bar) {
         if(bar === undefined) {
         throw new Error('Missing parameter!');
         }
         return bar;
        }

        可以簡寫為:

        mandatory = () => {
         throw new Error('Missing parameter!');
        }
        
        foo = (bar = mandatory()) => {
         return bar;
        }
        

        17. Array.find 簡寫

        如果你曾負責編寫 JavaScript 中的find函數(shù),那么你很有可能使用了for循環(huán)。在此,介紹ES6中一個名為find()的數(shù)組函數(shù)。

        const pets = [
         { type: 'Dog', name: 'Max'},
         { type: 'Cat', name: 'Karl'},
         { type: 'Dog', name: 'Tommy'},
        ]
        function findDog(name) {
         for(let i = 0; i<pets.length; ++i) {
         if(pets[i].type === 'Dog' && pets[i].name === name) {
         return pets[i];
         }
         }
        }

        可以簡寫為:

        pet = pets.find(pet => pet.type ==='Dog' && pet.name === 'Tommy');
        console.log(pet); // { type: 'Dog', name: 'Tommy' }

        18. 簡寫 Object[key]

        你知道Foo.bar也可以寫成Foo['bar']嗎?起初,似乎沒有什么理由讓你這樣寫。然而,這個符號給了你編寫可重用代碼的基礎。考慮如下簡化的驗證函數(shù)示例:

        function validate(values) {
         if(!values.first)
         return false;
         if(!values.last)
         return false;
         return true;
        }
        console.log(validate({first:'Bruce',last:'Wayne'})); // true

        這個函數(shù)可以完美的完成它的任務。但是,考慮一個場景,你有很多表單,你需要進行驗證,但有不同的字段和規(guī)則。那么,構建一個可以在運行時配置的通用驗證函數(shù)不是很好嗎?

        // 對象驗證規(guī)則
        const schema = {
         first: {
         required:true
         },
         last: {
         required:true
         }
        }
        
        // 通用驗證函數(shù)
        const validate = (schema, values) => {
         for(field in schema) {
         if(schema[field].required) {
         if(!values[field]) {
         return false;
         }
         }
         }
         return true;
        }
        console.log(validate(schema, {first:'Bruce'})); // false
        console.log(validate(schema, {first:'Bruce',last:'Wayne'})); // true
        
        

        現(xiàn)在我們就有了一個可以在所有的form中重用的驗證函數(shù),而無需為每個form編寫其自定義的驗證函數(shù)啦!

        19. 簡寫雙重按位非運算符

        按位運算符絕對是你初學 JavaScript 時了解的但一直沒有用武之地的運算符。因為如果不處理二進制,誰會沒事操作0和1呢?但是,雙重按位非運算符非常實用,例如你可以使用它來替代floor()函數(shù),而且與其他相同的操作相比,按位運算符的操作速度更快。

        Math.floor(4.9) === 4  //true

        可以簡寫為:

        ~~4.9 === 4  //true

        20. Suggest One of U?

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

        文檔

        史上最全JavaScript常用的簡寫技巧(推薦)

        史上最全JavaScript常用的簡寫技巧(推薦):JavaScript 是屬于網(wǎng)絡的腳本語言!被數(shù)百萬計的網(wǎng)頁用來改進設計、驗證表單、檢測瀏覽器、創(chuàng)建cookies,以及更多的應用。同時很容易使用,所以越來越多的開發(fā)者選擇js代碼來實現(xiàn)自己想要的效果,但開發(fā)過程中,為了更高的效率和良好的代碼規(guī)范要求,我們不得
        推薦度:
        標簽: 推薦 小技巧 技巧
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品四虎免费观看国产高清午夜| 456亚洲人成在线播放网站| 亚洲av无码av在线播放| 120秒男女动态视频免费| 亚洲国产精品无码av| www在线观看播放免费视频日本| 免费被黄网站在观看| 亚洲二区在线视频| 亚欧人成精品免费观看| 久久亚洲精品无码AV红樱桃| a级毛片100部免费观看| 中文亚洲AV片在线观看不卡| jizz在线免费观看| 亚洲精品无码你懂的网站| 福利片免费一区二区三区| 国产免费av片在线播放| 国产成人精品日本亚洲语音| 国产婷婷高清在线观看免费| 日本亚洲欧美色视频在线播放| 午夜小视频免费观看| jizzjizz亚洲日本少妇| 免费永久在线观看黄网站| 精品女同一区二区三区免费播放 | 亚洲精品在线视频| 曰批全过程免费视频观看免费软件| 国产无遮挡又黄又爽免费视频 | 久久九九亚洲精品| a级片免费在线播放| 亚洲成av人影院| 日本免费人成视频在线观看| 91在线亚洲精品专区| 亚洲精品在线免费观看| 亚洲不卡中文字幕| 国产精品免费电影| 九九久久精品国产免费看小说 | 亚洲色大成网站www永久网站| 美女被cao免费看在线看网站| 亚洲色中文字幕在线播放| 免费一级e一片在线播放| GOGOGO高清免费看韩国| 亚洲美女自拍视频|