成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript 之銀彈の技法

HollisChuang / 1076人閱讀

摘要:之銀彈技法下文這些淫巧在之前自認(rèn)為是居家必備,裝逼撩妹的必備之物,博主一直敝帚自珍,不愿拿出來分享,現(xiàn)如今,極盡能事,我知道再不拿出來就在沒有價值了來由博主入行前端寫時候,因為需要兼容低版本,時常需要在繁雜冗長的操作夾雜的代碼中,盡可能巧妙

JavaScript 之銀彈の技法

下文這些淫巧在之前自認(rèn)為是居家必備,裝逼撩妹的必備之物,博主一直敝帚自珍,不愿拿出來分享,現(xiàn)如今,ES6+極盡能事,我知道再不拿出來就在沒有價值了?

來由

博主入行前端寫JavaScript時候,因為需要兼容IE低版本,時常需要在繁雜冗長的DOM操作夾雜的代碼中,盡可能巧妙地節(jié)省代碼了,保持代碼清潔和逼格,久而久之,在維護前輩舊代碼和新功能開發(fā)時積累了一套代碼書寫的奇技淫巧,你也可以把它看作是抖機靈,不過它的確是豐盈了我的codeの時光,讓我們不至?xí)鴮憳I(yè)務(wù)那么枯燥。

目錄

1. 取整

2. 多行字符串

3. 快速輸出重復(fù)字符串

4. 用switch case代替if else

5. 截取數(shù)組

6. 獲取數(shù)組中的最大值和最小值

7. 日期轉(zhuǎn)數(shù)字

8. 用 && || ?: , 節(jié)省代碼行數(shù)

9. 隱式轉(zhuǎn)換

10. 利用對象數(shù)組取值、方法

11. 匿名函數(shù)的N種寫法

1. 取整 (任性指數(shù): ??????????)
var a = ~~1.2; //1

還可以用位右移符>>

var a = 3.4>>0; //3 

簡單解釋,~是按位取反的運算符,可以將浮點數(shù)通過舍去小數(shù)點后面的所有位來轉(zhuǎn)換為整數(shù)。

注意:如果需要做嚴(yán)格的四舍五入運算就要慎用此方法,那就還是得用Math函數(shù)

2. 多行字符串 (銀彈指數(shù): ????????)
var temp1 = "
" + "

" + "<%=data%>" + "

";

這樣一段多行的js字符串我們一般通過行尾+字符串來實現(xiàn)連接,這樣的寫法既不好看,不容易維護,代碼量又多,當(dāng)然我們知道ES6的字符串模版可以輕松實現(xiàn)優(yōu)雅寫法:

const temp2 = `

<%=data%>

`;

想知道在遠古時代,我們智慧的勞動人民刀耕火種這樣寫:

var temp3 = "

<%=data%>

";
3. 快速輸出重復(fù)字符串(腦洞指數(shù): ??????????)

我們笨辦法是

for (var i = 0, temp = ""; i < 200; i++, temp += "leo");
console.log(temp)

在ES6+寫法中我們使用 "leo".repeat(200)"

在以前我們可以這樣抖機靈:

var temp = Array(201).join("leo");

經(jīng)過提醒,此處用該把200換成了201。

4. 用switch case代替if else(腦洞指數(shù): ????????)

這種代替可能會讓第一次看到的你覺得腦洞大開:這樣玩也行?對的,case后面跟上Boolean判斷而不是具體值。

switch (true) {
    case (a > 10):
        do_something();
        break;
    case (a < 100):
        others();
        break;
    default:
        break;
}
5. 截取數(shù)組 (奇葩指數(shù): ??????)
var arr = [1,2,3,4,5,6];
arr = arr.slice(0,3);

我們可以利用length在這種情況

var arr = [1,2,3,4,5,6];
arr.length=3;
6. 獲取數(shù)組中的最大值和最小值 (實用指數(shù): ????????)
var numbers = [ 5, 458, 120, -215, 228, 400, 122205, -85411 ];
var maxInNumbers = Math.max.apply(Math, numbers);
var minInNumbers = Math.min.apply(Math, numbers);
7. 日期轉(zhuǎn)數(shù)字 (銀彈指數(shù): ??????)
var time1 = new Date().getTime();

我們可以這樣

var time2 = + new Date();
8. 用 && || ?: , 節(jié)省代碼行數(shù) (用多了會被打指數(shù): ??????????)

在我們代碼簡短的判斷邏輯,我們經(jīng)常會使用運算符去實現(xiàn),用if else反而顯得不簡潔,特別注意用,可以把多個短句合成一句。

data = {
        currpage: (obj.role == 4 || obj.role == 7) ? ++_this.curpage_store : ++_this.curpage_agent,
        ajaxType: "GET"
}


!localData[type][number] && (localData[type][number] = data, localStorage.setItem(this.jobid, JSON.stringify(localData)));

!$allCity.hasClass("active") ?
            ($(this).addClass("active"), $allCity.addClass("active"), lastPos = xk_www.$bd.scrollTop()) :
            ($(this).removeClass("active"), $allCity.removeClass("active"), lastPos != null && xk_www.$bd.animate({
                scrollTop: lastPos
            }));
9. 隱式轉(zhuǎn)換 (實用指數(shù): ??????????)
data.isDeep == ‘0’;    // 有時候返回的deep可能為0可能為“0”
data.isDeep > 0 ;
...

合理優(yōu)雅的運用JavaScript的弱類型特點的靈活性,可以在很多時候巧妙地做到節(jié)省代碼量,如果我們很好掌握隱式轉(zhuǎn)換,比如在很多時候我們用==反而比===更得心應(yīng)手,用>的布爾比較反而比嚴(yán)格的類型檢查和值比較更快捷。

10. 利用對象數(shù)組取值、方法 (實用指數(shù): ????????)
const config={
    1:"周一",
    2:"周二",
    3:"周三",
    4:"周四",
    5:"周五",
    6:"周六",
    7:"周日",
};
config[1];

const doSomething={
    a(){
        ...
    }
    b(){
        ...
    }
    c(){
        ...
    }
    d(){
        ...
    }
}
doSomething("a");
11. 匿名函數(shù)的N種寫法 (漲姿勢指數(shù): ????????)

js的匿名函數(shù)是未申明函數(shù)名的自執(zhí)行函數(shù),格式是這樣的

(function(){})();

但是在實際項目中,我們經(jīng)常這么些,在前面加上;或者+

;function(){}();
+function(){}();

雖然JS的語法是可以省略分號的,為了避免代碼上線后合并壓縮成一個文件可能造成的語法錯誤,所以加上“;”可以避免未知錯誤。

而“+”在這里是運算符,運算符具有極高的優(yōu)先級,所以右邊的函數(shù)聲明加上括號的部分(實際上就是函數(shù)執(zhí)行的寫法)就直接執(zhí)行了。其實不止前面可以是“+”號,“-”、“!”、“~”、“++”等運算符均可。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85102.html

相關(guān)文章

  • 前端開發(fā)周報:JavaScript編程術(shù)語和web圖片優(yōu)化

    摘要:函數(shù)式編程術(shù)語大全函數(shù)式編程有許多優(yōu)點,它也越來越流行了。然而,每個編程范式都有自己獨特的術(shù)語,函數(shù)式編程也不例外。作用域有兩種類似全局作用域和局部作用域。目前最重要的應(yīng)用場景之一,就是在的握手階段,客戶端服務(wù)端利用算法交換對稱密鑰。 1、JavaScript 函數(shù)式編程術(shù)語大全 函數(shù)式編程(FP)有許多優(yōu)點,它也越來越流行了。然而,每個編程范式都有自己獨特的術(shù)語,函數(shù)式編程也不例外。...

    kbyyd24 評論0 收藏0
  • 前端開發(fā)周報:JavaScript編程術(shù)語和web圖片優(yōu)化

    摘要:函數(shù)式編程術(shù)語大全函數(shù)式編程有許多優(yōu)點,它也越來越流行了。然而,每個編程范式都有自己獨特的術(shù)語,函數(shù)式編程也不例外。作用域有兩種類似全局作用域和局部作用域。目前最重要的應(yīng)用場景之一,就是在的握手階段,客戶端服務(wù)端利用算法交換對稱密鑰。 1、JavaScript 函數(shù)式編程術(shù)語大全 函數(shù)式編程(FP)有許多優(yōu)點,它也越來越流行了。然而,每個編程范式都有自己獨特的術(shù)語,函數(shù)式編程也不例外。...

    kelvinlee 評論0 收藏0
  • 【呆萌研究】JavaScript閉包

    摘要:為什么會產(chǎn)生閉包究其根本,是因為代表的函數(shù)包含的作用域。而在作用域鏈中,外部函數(shù)的活動對象始終處于第二位,外部函數(shù)的外部函數(shù)的活動對象處于第三位直到作為作用域鏈終點的全局執(zhí)行環(huán)境。 前言 此文的內(nèi)容主要是來自看書的總結(jié)+小小的實踐哦~會不斷更新總結(jié)。 什么是閉包 書上是這樣定義閉包的: 有權(quán)訪問另一個函數(shù)作用域中變量的函數(shù)。 舉一個例子: function test(){ va...

    CHENGKANG 評論0 收藏0
  • 【呆萌研究】JavaScript常見的繼承方式

    摘要:構(gòu)造函數(shù)構(gòu)造操作符調(diào)用的函數(shù)就是構(gòu)造函數(shù)。其和其構(gòu)造函數(shù)的指向相同。而構(gòu)造函數(shù)屬性指向的對象帶有屬性,指向函數(shù)自身。,回歸構(gòu)造函數(shù)繼承,仔細看看誕生的嘻嘻和哈哈兩位同學(xué)可以看到兩個實例都擁有了和兩個屬性,因為方法的運行類似于執(zhí)行了和。 最近在看《JavaScript設(shè)計模式》,然后開篇復(fù)習(xí)了JavaScript中的幾種繼承方式,自己似乎也沒有怎么仔細探究過,目前自己沒怎么碰到過應(yīng)用的場...

    馬永翠 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<