国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaScript進(jìn)階(二十六):ES各版本特性詳解

這篇具有很好參考價(jià)值的文章主要介紹了JavaScript進(jìn)階(二十六):ES各版本特性詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、ECMAScript簡(jiǎn)介

ECMAScript是一種由Ecma國(guó)際(前身為歐洲計(jì)算機(jī)制造商協(xié)會(huì),European Computer Manufacturers Association)通過ECMA-262標(biāo)準(zhǔn)化的腳本程序設(shè)計(jì)語(yǔ)言。這種語(yǔ)言在萬(wàn)維網(wǎng)上應(yīng)用廣泛,它往往被稱為JavaScriptJScript,所以它可以理解為是JavaScript的一個(gè)標(biāo)準(zhǔn),但實(shí)際上后兩者是ECMA-262標(biāo)準(zhǔn)的實(shí)現(xiàn)和擴(kuò)展。

二、ES6 (ES2015)

  1. Class

  2. 模塊化語(yǔ)法(importexport

  3. 箭頭函數(shù) () => {…},是函數(shù)的縮寫。

  4. 函數(shù)參數(shù)默認(rèn)值

function fn(x,y='World') {
   console.log(x, y);
}
  1. 模板字面量
    之前實(shí)現(xiàn)中,長(zhǎng)字符串的組合是通過 + 號(hào)來連接的。
    它的可讀性很差,使用模板字符串,它更容易閱讀。

  2. 解構(gòu)賦值
    允許 JavaScript 輕松地從數(shù)組和對(duì)象中獲取內(nèi)容。

  3. 擴(kuò)展運(yùn)算符
    它是用三點(diǎn)(...)表示,Array是可以擴(kuò)展的,如果是Object,會(huì)按照key-value進(jìn)行擴(kuò)展。

  4. 對(duì)象屬性簡(jiǎn)寫
    如果構(gòu)成對(duì)象的字段名稱與前面段落中的變量相同,則可以省略該值,看起來更流線型。

  5. Promise
    Promise 是一種異步(非同步)寫法的解決方案,比原來的回調(diào)寫法更加優(yōu)雅。ES8(ES2017)發(fā)布了更完美的async,await,直接讓異步寫得像同步一樣。缺點(diǎn)是當(dāng)思路落到復(fù)雜的業(yè)務(wù)邏輯上時(shí),有時(shí)會(huì)錯(cuò)過await,在運(yùn)行時(shí)發(fā)生錯(cuò)誤。

  6. let, const 替換 var

  • let:通用變量,可以被覆蓋。
  • const:一旦聲明,其內(nèi)容不可修改。因?yàn)閿?shù)組和對(duì)象都是指針,所以它們的內(nèi)容可以增加或減少, 但不改變其指針。

早期,JavaScriptvar作用域是全局的。也就是說,var變量是在使用后聲明的,執(zhí)行的時(shí)候會(huì)自動(dòng)提到頂層,后面會(huì)賦值。
更容易受到污染。

三、ES7 (ES2016)

  1. Array.prototype.includes()
    用于判斷數(shù)組是否包含指定值,如果是,則返回true;否則,返回假。和之前indexOf的用法一樣,可以認(rèn)為是返回一個(gè)布爾值,語(yǔ)義上更加清晰。
  2. 冪運(yùn)算符 console.log(2**10); // 1024

四、ES8 (ES2017)

  1. async, await
    異步函數(shù)是使用 async 關(guān)鍵字聲明的函數(shù),并且允許在其中使用 await 關(guān)鍵字。asyncawait 關(guān)鍵字使異步的、基于 Promise 的行為能夠以更簡(jiǎn)潔的方式編寫,避免了顯式配置 Promise 鏈的需要。

  2. Object.values()
    返回對(duì)象自身屬性的所有值,不包括繼承的值。

  3. Object.entries()
    返回可枚舉鍵,即傳入對(duì)象本身的值。

  4. 字符串 padStart() & padEnd()
    你可以在字符串的開頭或結(jié)尾添加其他內(nèi)容,并將其填充到指定的長(zhǎng)度。
    過去,這些功能通常是通過通用的輔助工具包(如 lodash)引入的,并將它們放在一起。

  5. 尾隨逗號(hào)
    允許在函數(shù)參數(shù)列表末尾使用逗號(hào)。

  6. Object.getOwnPropertyDescriptors()
    獲取你自己的描述符,一般的開發(fā)業(yè)務(wù)需求通常不會(huì)用到。

  7. 共享數(shù)組緩沖區(qū)
    SharedArrayBuffer 是一個(gè)固定長(zhǎng)度的原始二進(jìn)制數(shù)據(jù)緩沖區(qū),類似于 ArrayBuffer
    可用于在共享內(nèi)存上創(chuàng)建數(shù)據(jù)。與 ArrayBuffer 不同,SharedArrayBuffer 不能分離。

  8. Atomics object
    Atomics 對(duì)象,它提供了一組靜態(tài)方法來對(duì) SharedArrayBuffer 執(zhí)行原子操作。原子的所有屬性和函數(shù)都是靜態(tài)的。

如果一個(gè)多線程同時(shí)在同一個(gè)位置讀寫數(shù)據(jù),原子操作保證了正在操作的數(shù)據(jù)如預(yù)期的那樣:即在上一個(gè)子操作結(jié)束后執(zhí)行下一個(gè),操作不中斷??梢哉f是針對(duì)Node.Js中多線程Server的開發(fā)而加強(qiáng)的功能,在前端開發(fā)中使用的機(jī)會(huì)相當(dāng)?shù)?。chrome 已經(jīng)提供了支持。

五、ES9 (ES2018)

  1. 循環(huán)等待
    在異步函數(shù)中,有時(shí)需要在同步 for 循環(huán)中使用異步(非同步)函數(shù)。
async function process(array) {
  for (const i of array) {
    await doSomething(i);
  }
}

async function process(array) {
  array.forEach(async i => {
    await doSomething(i);
  });
}

上面的代碼不會(huì)像預(yù)期的那樣輸出期望的結(jié)果。

for循環(huán)本身還是同步的,會(huì)在循環(huán)中的異步函數(shù)完成之前執(zhí)行整個(gè)for循環(huán),然后將里面的異步函數(shù)逐一執(zhí)行。

ES9 增加了異步迭代器,允許 awaitfor 循環(huán)一起使用,逐步執(zhí)行異步操作。

async function process(array) {
  for await (const i of array) {
    doSomething(i);
  }
}
  1. promise.finally()
    無論是成功(.then())還是失?。?code>.catch()),Promise 后面都會(huì)執(zhí)行的部分。

  2. Rest, Spread
    在 ES2015 中,Rest 不定長(zhǎng)度參數(shù)…,可以轉(zhuǎn)換成數(shù)組傳入。

  3. 正則表達(dá)式組
    RegExp 可以返回匹配的數(shù)據(jù)包

const regExpDate = /([0-9]{4})-([0-9]{2})-([0-9]{2})/;
const match      = regExpDate.exec('2020-06-25');
const year       = match[1]; // 2020
const month      = match[2]; // 06
const day        = match[3]; // 25
  1. 正則表達(dá)式 dotAll
    . 表示匹配除輸入以外的任何符號(hào),添加這些標(biāo)志后,允許匹配輸入。
/hello.world/.test('hello\nworld');  // false
/hello.world/s.test('hello\nworld'); // true

六、ES10 (ES2019)

  1. 更友好的 JSON.stringify
    如果輸入是 Unicode 但超出范圍,則 JSON.stringify 最初會(huì)返回格式錯(cuò)誤的 Unicode 字符串。

現(xiàn)在是第 3 階段的提案,使其成為有效的 Unicode 并以 UTF-8 呈現(xiàn)。

  1. Array.prototype.flat() & Array.prototype.flatMap()
    展平陣列

  2. String.prototype.trimStart() & String.prototype.trimEnd()
    trimStart() 方法從字符串的開頭刪除空格,trimLeft() 是此方法的別名。

  3. Object.fromEntries()
    Object.fromEntries() 方法將鍵值對(duì)列表轉(zhuǎn)換為對(duì)象。

  4. String.prototype.matchAll
    matchAll() 方法返回將字符串與正則表達(dá)式匹配的所有結(jié)果的迭代器,包括捕獲組。

  5. fixed catch 綁定
    在使用catch之前,不管有用與否,一定要傳入一個(gè)eparameter來表示接收到的錯(cuò)誤。
    如果現(xiàn)在不用,可以省略。

  6. BigInt(新數(shù)字類型)(重要)
    BigInt 值,有時(shí)也稱為 BigInt,是一個(gè) bigint 原語(yǔ),通過將 n 附加到整數(shù)文字的末尾,或通過調(diào)用 BigInt() 函數(shù)(沒有 new 運(yùn)算符)并給它一個(gè)整數(shù)值或字符串來創(chuàng)建值。

  • ES5:String, Number, Boolean, Null, Undefined
  • ES6 新增:Symbol,到ES6就一共有6 種類型
  • ES10 新增:BigInt,就達(dá)到 7 種類型

七、ES11 (ES2020)

  1. Promise.allSettled()
    Promise.allSettled() 方法返回一個(gè)在所有給定的 Promise 都已實(shí)現(xiàn)或拒絕后實(shí)現(xiàn)的 Promise,并帶有一組對(duì)象,每個(gè)對(duì)象都描述了每個(gè) Promise 的結(jié)果。

它通常用于當(dāng)有多個(gè)不依賴于彼此成功完成的異步任務(wù),或者總是想知道每個(gè) Promise 的結(jié)果時(shí)。

相比之下,Promise.all() 返回的 Promise 可能更合適,如果任務(wù)相互依賴/如果想立即拒絕其中任何一個(gè)拒絕。

  1. 可選鏈操作符?.

在開發(fā)中,很容易遇到先判斷數(shù)據(jù)是否存在,判斷是否寫入。

const isUserExist = user && user.info;
if (isUserExist) { 
    username = user.info.name; 
}

如果返回的數(shù)據(jù)為null或者用戶對(duì)象下沒有相應(yīng)屬性,則會(huì)拋出Uncaught TypeError: Cannot read property...

導(dǎo)致程序無法繼續(xù)執(zhí)行

使用 ?.,語(yǔ)法更簡(jiǎn)單

const username = user?.info?.name;

如果存在,獲取name的值,如果不存在,賦值undefined

|| 一起使用,只需一行!

const username = user?.name || 'guest';
  1. Nullish 合并運(yùn)算符 ??
    JavaScript中,遇到0、null、undefined時(shí)會(huì)自動(dòng)轉(zhuǎn)為false
    但有時(shí)0其實(shí)是一個(gè)正常的值,只能容錯(cuò)undefinednull,但是使用??,可以保持簡(jiǎn)潔。

  2. Dynamic-import
    從字面上看,應(yīng)該很容易理解,就是在需要的時(shí)候加載相關(guān)的邏輯。

  3. GlobalThis
    全局 globalThis 屬性包含全局 this 值,類似于全局對(duì)象。

八、ES12 (ES2021)

  1. Promise.any()
    Promise.any() 接受一個(gè)可迭代的 Promise 對(duì)象。它返回一個(gè)單一的 Promise,只要 iterable 中的任何一個(gè) Promise 完成,就會(huì)返回一個(gè) Promise,并帶有已完成的 Promise 的值。

如果可迭代的實(shí)現(xiàn)中沒有任何承諾(如果所有給定的承諾都被拒絕),則返回的承諾會(huì)被 AggregateError 拒絕,AggregateErrorError 的一個(gè)新子類,它將單個(gè)錯(cuò)誤組合在一起。

  1. 邏輯賦值運(yùn)算符
    在開發(fā)過程中,可以使用 ES2020 中提出的邏輯運(yùn)算符 ||、&& 和 `??(Nullish coalescing operator)來解決一些問題。

而 ES2021 會(huì)提出 ||= , &&= , ??= ,概念類似于 +=

let b = 2
b += 1 
// equal to b = b + 1
let a = null
a ||= 'some random text'  // a become to'some random text'
// equal a = a || 'some random text'
let c = 'some random texts'
c &&= null  // c become to null
// equal to c = c && null
let d = null
d ??= false  // d become to false
// equal to d = d ?? false
  1. WeakRef
    WeakRef 對(duì)象包含對(duì)對(duì)象的弱引用,該對(duì)象稱為其目標(biāo)或引用對(duì)象。對(duì)對(duì)象的弱引用是不會(huì)阻止對(duì)象被垃圾收集器回收的引用。相反,普通(或強(qiáng))引用將對(duì)象保存在內(nèi)存中,當(dāng)一個(gè)對(duì)象不再有任何強(qiáng)引用時(shí),JavaScript 引擎的垃圾收集器可能會(huì)銷毀該對(duì)象并回收其內(nèi)存。如果發(fā)生這種情況,將無法再?gòu)娜跻弥蝎@取對(duì)象。

九、ES13 (ES2022)

ES13 帶來了 6 個(gè)新特性:

  • 模塊頂層作用域支持 await 表達(dá)式。
  • 新增私有類元素(#)、靜態(tài)塊;in 操作符支持私有類元素。
  • 正則新增 d 標(biāo)志和其對(duì)應(yīng)的 hasIndices 屬性,提供了獲取捕獲組開始索引和結(jié)束索引的方法。
  • Error 實(shí)例增加 cause 屬性,可攜帶更多錯(cuò)誤信息。
  • Strings、Arrays、TypedArrays 新增 at 方法,支持關(guān)聯(lián)訪問。
  • Object.hasOwn 代替 Object.prototype.hasOwnProperty,判斷對(duì)象是否含有屬性。

9.1 Strings、Arrays、TypedArrays 的 at 方法

利用下標(biāo)訪問數(shù)組元素時(shí),下標(biāo)會(huì)被轉(zhuǎn)換為字符串,負(fù)數(shù)下標(biāo)也對(duì)應(yīng)著一個(gè)獨(dú)立的數(shù)組元素,所以 Js 的數(shù)組是不支持關(guān)聯(lián)訪問的。ES13 新增了 at 方法,可以利用負(fù)數(shù)索引進(jìn)行關(guān)聯(lián)訪問,例如以下示例,可以利用 at 方法和負(fù)數(shù)索引 -2 來訪問倒數(shù)第二個(gè)元素。

const array = [5, 12, 8, 130, 44];

array.at(-2); // 130

9.2 私有類元素

在類的定義中,以 “#” 開頭的標(biāo)識(shí)符為私有標(biāo)識(shí)符,由私有標(biāo)識(shí)符定義的類元素被稱為私有類元素,私有類元素只能在類中才能被訪問到。類的屬性、靜態(tài)屬性、方法、靜態(tài)方法、訪問器、靜態(tài)訪問器都可以被定義為私有類元素。示例代碼如下:

class ClassA {
    // 私有屬性
    #privateProperty;

    // 靜態(tài)私有屬性
    static #privateStaticProperty;

    // 靜態(tài)私有 Getter
    static get #privateStaticGet() {
        return 'private-static-get';
    }

    // 靜態(tài)私有 Setter
    static set #privateStaticSet(val) {
    }

    // 靜態(tài)私有方法
    static #privateStaticMethod() {
        return 'private-static-method'
    }

    constructor(propertyValue) {
        // 初始化私有屬性
        this.#privateProperty = propertyValue;
    }

    // 私有 Get
    get #privateGet() {
        return 'private-get'
    }

    // 私有 Set
    set #privateSet() {
    }

    // 私有方法
    #privateMethod() {
        return 'private-method'
    }
}

在類的內(nèi)部可以正常訪問私有類元素,在類的外部訪問私有類元素會(huì)拋出句法錯(cuò)誤。

class ClassA {
    // 私有屬性
    #privateProperty;

    constructor(property, privateProperty) {
        this.property = property;
        this.#privateProperty = privateProperty;
    }

    // 在方法中訪問私有屬性
    getPrivateProperty() {
        return this.#privateProperty;
    }
}

const instance = new ClassA('property', 'private-property');

instance.property; // 'property'
instance.#privateProperty; // Uncaught SyntaxError: Private field '#privateProperty' must be declared in an enclosing class
instance.getPrivateProperty(); // 'private-property'

以上就是私有類元素的用法,它有效隔離了類內(nèi)外的數(shù)據(jù)和邏輯,進(jìn)一步增強(qiáng)了封裝的效果,使程序更加健壯。

9.3 靜態(tài)塊

靜態(tài)塊提供了更加靈活的靜態(tài)類元素初始化渠道,可以在靜態(tài)塊中使用一系列的語(yǔ)句來完成靜態(tài)類元素的初始化??梢岳?this 在靜態(tài)塊中訪問類的其他靜態(tài)屬性(包括私有屬性)。

class ClassA {
    // 靜態(tài)屬性
    static staticProperty;

    // 靜態(tài)塊初始化靜態(tài)屬性,捕捉錯(cuò)誤
    static {
        try {
            this.staticProperty = getStaticProperty();
        } catch {
            console.log('Error');
        }
    }
}

當(dāng)一個(gè)類具有多個(gè)靜態(tài)塊時(shí),它們會(huì)按照定義的順序進(jìn)行執(zhí)行。

class ClassA {
    // 靜態(tài)屬性 A
    static staticPropertyA;

    // 靜態(tài)塊 A
    static {
        this.staticPropertyA = 'static-block-a';
        console.log('static-block-a');
    }

    // 靜態(tài)屬性 B
    static staticPropertyB;

    // 靜態(tài)塊 B
    static {
        this.staticPropertyB - 'static-block-b';
        console.log('static-block-b');
    }
}

// 輸出
// static-block-a
// static-block-b

當(dāng)一個(gè)類具有父類時(shí),會(huì)先執(zhí)行父類的靜態(tài)塊,再執(zhí)行子類的靜態(tài)塊??梢岳?super 在子類的靜態(tài)塊中訪問父類的屬性。

// 父類
class ParentClass {
    // 父類屬性
    static parentProperty;

    // 父類靜態(tài)塊
    static {
        this.parentProperty = 'parent-property';
        console.log('parent-static-block');
    }
}

// 子類
class ChildClass extends ParentClass {
    // 子類靜態(tài)塊
    static {
        console.log(super.parentProperty);
        console.log('child-static-block');
    }
}

// 輸出
// parent-static-block
// parent-property
// child-static-block

9.4 私有 in 操作符

in 操作符可以判斷實(shí)例中是否存在屬性,當(dāng)新增了私有化類元素后,也可以和下面例子一樣,在類定義內(nèi)使用 in 操作符判斷私有化類元素存在與否。

class ClassA {
    // 私有屬性
    #privateProperty;

    // 利用 in 操作符判斷私有屬性是否存在
    static hasPrivateProperty(instance) {
        return #privateProperty in instance
    }

    constructor(privateProperty) {
        this.#privateProperty = privateProperty;
    }
}

const instance = new ClassA('private-property');
ClassA.hasPrivateProperty(instance);

// 輸出
// true

9.5 正則 /d 標(biāo)志

正則表達(dá)式通常用來處理字符串,正則表達(dá)式有很多標(biāo)志,它決定了正則狀態(tài)機(jī)的行為和輸出結(jié)果。ES13 新增的 d 標(biāo)志對(duì)應(yīng)正則實(shí)例的 hasIndices 屬性,當(dāng)設(shè)置 d 標(biāo)志時(shí),hasIndicestrue 。使用 d 標(biāo)志后,正則表達(dá)式的匹配結(jié)果將包含每個(gè)捕獲組捕獲子字符串的開始和結(jié)束游標(biāo)。

// 字符串
const str = "today is saturday";

// 正則表達(dá)式
const reg = /saturday/d;

// 匹配結(jié)果輸出游標(biāo)
const [start, end] = reg.exec(str).indices[0];

console.log([start, end]); // [9, 17]

9.6 Error 對(duì)象的 cause 屬性

在以往 Error 對(duì)象只能傳遞消息信息,現(xiàn)在 ES13 為 Error 增添了 cause 屬性,它可以是任意數(shù)據(jù)類型,方便獲取更多地錯(cuò)誤信息。

try {
    // 拋出帶 cause 屬性的 Error實(shí)例
    throw new Error('faied message', { cause: 'cause' });
} catch (error) {
    // 捕獲 error 并輸出 cause
    console.log(error.cause)
}

// 輸出
// cause

9.7 Object.hasOwn

ES13 新增了 Object.hasOwn 方法判斷這個(gè)實(shí)例上是否有屬性,以代替之前的 Object.prototype.hasOwnProperty 方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-724229.html

const object = {
    count: 1
};

Object.hasOwn(object, 'count'); // true
Object.hasOwn(object, 'toString'); // false
Object.hasOwn(object, 'property'); // false

十、拓展閱讀

  • 《JavaScript進(jìn)階(十四):詳解 ES6 中的 export 和 import》
  • 《JavaScript進(jìn)階(十三):JavaScript 空值合并運(yùn)算符、可選鏈操作符、空值賦值運(yùn)算符講解》
  • 《JavaScript進(jìn)階(十二):JS 模塊化編程規(guī)范-CommonJS、AMD、CMD、ES6》
  • 《JavaScript進(jìn)階(十八):ES6 Symbol 用法》
  • 《JavaScript進(jìn)階(二十):精解 ES6 Promise 用法》
  • 《JavaScript進(jìn)階(二十四):ES8 中 async 與 await 使用方法詳解》
  • 《JavaScript進(jìn)階(二十五):Promise 詳解》

到了這里,關(guān)于JavaScript進(jìn)階(二十六):ES各版本特性詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JavaScript版本ES5/ES6及后續(xù)版本

    JavaScript版本ES5/ES6及后續(xù)版本

    Brendan Eich在短短10天內(nèi)創(chuàng)建了JavaScript的第一個(gè)版本。它被稱為摩卡,但已經(jīng)具備了現(xiàn)代JavaScript的許多基本特性! 為了吸引Java開發(fā)人員,Mocha先是更改為L(zhǎng)iveScript,然后又更改為JavaScript然而,JavaScript與Java幾乎沒有任何關(guān)系; 微軟推出了IE,從網(wǎng)景復(fù)制JavaScript,并稱之為JScript; 由

    2024年02月13日
    瀏覽(33)
  • 軟件工程師,學(xué)習(xí)下JavaScript ES6新特性吧

    軟件工程師,學(xué)習(xí)下JavaScript ES6新特性吧

    概述 ????????作為一名軟件工程師,不管你是不是前端開發(fā)的崗位,工作中或多或少都會(huì)用到一點(diǎn)JavaScript。JavaScript是大家所了解的語(yǔ)言名稱,但是這個(gè)語(yǔ)言名稱是Oracle公司注冊(cè)的商標(biāo)。JavaScript的正式名稱是ECMAScript。1996年11月,JavaScript的創(chuàng)造者網(wǎng)景公司將JS提交給國(guó)際化

    2024年02月13日
    瀏覽(21)
  • 【JavaScript解析】ES6定義變量與箭頭函數(shù)詳解

    【JavaScript解析】ES6定義變量與箭頭函數(shù)詳解

    箭頭函數(shù)可以說是ES6的一大亮點(diǎn),使用箭頭函數(shù),可以簡(jiǎn)化編碼過程,使代碼更加的簡(jiǎn)潔 本文由千鋒前端老師獨(dú)家創(chuàng)作,主要給大家介紹了關(guān)于ES6中箭頭函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),覺得有幫助的話可以【關(guān)注】持續(xù)追更~ 我們現(xiàn)在知道定義(聲明)一個(gè)變

    2024年02月05日
    瀏覽(28)
  • javascript基礎(chǔ)二十六:JavaScript中如何實(shí)現(xiàn)函數(shù)緩存?有哪些應(yīng)用場(chǎng)景?

    javascript基礎(chǔ)二十六:JavaScript中如何實(shí)現(xiàn)函數(shù)緩存?有哪些應(yīng)用場(chǎng)景?

    一、是什么 函數(shù)緩存,就是將函數(shù)運(yùn)算過的結(jié)果進(jìn)行緩存 本質(zhì)上就是用空間(緩存存儲(chǔ))換時(shí)間(計(jì)算過程) 常用于緩存數(shù)據(jù)計(jì)算結(jié)果和緩存對(duì)象 緩存只是一個(gè)臨時(shí)的數(shù)據(jù)存儲(chǔ),它保存數(shù)據(jù),以便將來對(duì)該數(shù)據(jù)的請(qǐng)求能夠更快地得到處理 二、如何實(shí)現(xiàn) 實(shí)現(xiàn)函數(shù)緩存主要依

    2024年02月07日
    瀏覽(21)
  • 學(xué)C的第二十六天【指針的進(jìn)階(二)】

    學(xué)C的第二十六天【指針的進(jìn)階(二)】

    ========================================================================= 相關(guān)代碼gitee自取 :C語(yǔ)言學(xué)習(xí)日記: 加油努力 (gitee.com) ?========================================================================= 接上期 : 學(xué)C的第二十五天【指針的進(jìn)階(一)】_高高的胖子的博客-CSDN博客 ?================================

    2024年02月13日
    瀏覽(38)
  • ES新特性系列(一)—— ES的簡(jiǎn)介與ES6

    ES新特性系列(一)—— ES的簡(jiǎn)介與ES6

    ? ? ? 前幾天在BOSS上了解現(xiàn)在的前端工作的情況和各個(gè)公司要求的技術(shù)棧情況,看到一條非常有意思的要求:“能夠理解并使用ES6、ES7、ES8、ES9、ES10新特性,都2024年了你總不能只知道ES6吧?” ? ? ? 各位彥祖現(xiàn)在現(xiàn)在就回憶一下,自己是否能把上述的ES系列的常用新特性都

    2024年04月29日
    瀏覽(20)
  • ES6、ES7、ES8、ES9、ES10、ES11、ES12都增加了哪些新特性?

    ES6、ES7、ES8、ES9、ES10、ES11、ES12都增加了哪些新特性?

    前端開發(fā)的都知道,JavaScript經(jīng)歷了不同標(biāo)本的迭代,從1到12的不斷完善中會(huì)添加不同的新特性來解決前一個(gè)階段的瑕疵,讓我們開發(fā)更加便捷與寫法更加簡(jiǎn)潔! 我記得我第一次接觸js的時(shí)候是從大學(xué)的《21天精通JavaScript》,名字很好聽,但是現(xiàn)在還在學(xué),還沒有精通!哈哈哈

    2024年02月16日
    瀏覽(14)
  • Jmeter(二十六)、詳解jmeter函數(shù)和變量

    詳解JMeter函數(shù)和變量(1) JMeter函數(shù)可以被認(rèn)為是某種特殊的變量,它們可以被采樣器或者其他測(cè)試元件所引用。函數(shù)調(diào)用的語(yǔ)法如下: ${__functionName(var1,var2,var3)}? 其中,__functionName匹配被調(diào)用的函數(shù)名稱。用圓括號(hào)包含函數(shù)的形參,例如${__time(YMD)},不同函數(shù)要求的參數(shù)也不

    2024年02月11日
    瀏覽(23)
  • ES6 新特性

    ES6 新特性

    ??歡迎來到@邊境矢夢(mèng)°的csdn博文?? ???本文主要梳理前端技術(shù)的JavaScript的知識(shí)點(diǎn)ES6 新特性文件上傳下載?? ??我是邊境矢夢(mèng)°,一個(gè)正在為秋招和算法競(jìng)賽做準(zhǔn)備的學(xué)生?? ??喜歡的朋友可以關(guān)注一下 ?????? ,下次更新不迷路?? ?Ps: 月亮越亮說明知識(shí)點(diǎn)越重要 (重要

    2024年02月10日
    瀏覽(18)
  • 【ES6 新特性】

    ES6 為字符串?dāng)U展了幾個(gè)新的 API: includes() :返回布爾值,表示是否找到了參數(shù)字符串。 startsWith() :返回布爾值,表示參數(shù)字符串是否在原字符串的頭部。 endsWith() :返回布爾值,表示參數(shù)字符串是否在原字符串的尾部。 模板字符串相當(dāng)于加強(qiáng)版的字符串,用反引號(hào) `,除了

    2024年02月11日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包