日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

代碼水平暴增!掌握這五個JavaScript神技,讓你成為團隊最靚的仔

來源: 責編: 時間:2024-07-23 07:25:09 655觀看
導讀每種現(xiàn)代編程語言通常有兩個主要部分:詞法語法和標準庫。編程語言語法通過保留關(guān)鍵字和特殊 ASCII 字符構(gòu)建了獨特的編程語法,供程序員編寫代碼。編程語言語法實現(xiàn)了一些語言特性,幫助開發(fā)者高效編寫自解釋的代碼以滿足

Qip28資訊網(wǎng)——每日最新資訊28at.com

每種現(xiàn)代編程語言通常有兩個主要部分:詞法語法和標準庫。編程語言語法通過保留關(guān)鍵字和特殊 ASCII 字符構(gòu)建了獨特的編程語法,供程序員編寫代碼。編程語言語法實現(xiàn)了一些語言特性,幫助開發(fā)者高效編寫自解釋的代碼以滿足各種開發(fā)需求。同時,標準庫提供了訪問預先開發(fā)的通用編程功能(如字符串處理、數(shù)據(jù)結(jié)構(gòu)、日期/時間處理等)的接口。Qip28資訊網(wǎng)——每日最新資訊28at.com

JavaScript 具有一個預先導入的功能齊全的標準庫,為開發(fā)者提供了各種預開發(fā)對象。例如,你可以使用標準的 ArrayBuffer 對象在 JavaScript 中處理原始二進制數(shù)據(jù)。JavaScript 語法提供了基本的標準編程語法和現(xiàn)代、高效的 JavaScript 專用語言特性,幫助開發(fā)者更快、更干凈地編寫代碼。Qip28資訊網(wǎng)——每日最新資訊28at.com

在這篇文章中,我將討論一些只有少數(shù)開發(fā)者知道的隱藏的 JavaScript 詞法語法特性。實踐并使用這些高級 JavaScript 語言特性,通過最大限度地利用 JavaScript 成為 JavaScript 專家!Qip28資訊網(wǎng)——每日最新資訊28at.com

標記模板字面量函數(shù)

現(xiàn)如今,開發(fā)者使用 ES6 模板字面量進行字符串插值,而不是舊式的字符串連接。模板字面量允許你通過在字符串段中嵌入表達式來構(gòu)建字符串,語法簡潔易讀。JavaScript 模板字面量還支持使用標記模板函數(shù)來解析帶有自定義邏輯的模板字符串。Qip28資訊網(wǎng)——每日最新資訊28at.com

標記模板函數(shù)允許開發(fā)者訪問解析后的模板字符串的各個部分,因此你可以根據(jù)自定義解析需求輕松處理它。例如,以下 cap 標記模板函數(shù)將每個表達式結(jié)果大寫:Qip28資訊網(wǎng)——每日最新資訊28at.com

function cap(strings, ...exps) {   return strings.reduce((acc, str, i) =>     (acc + str + (exps[i]?.toString()?.toUpperCase() ?? '')), '');}let str = cap`Hello ${'JavaScript'}... Hello ${'everyone'}...`; console.log(str);   // Hello JAVASCRIPT... Hello EVERYONE...

如上面的代碼片段所示,你可以使用傳遞給標記函數(shù)的參數(shù)處理評估后的模板字符串。你甚至可以從標記函數(shù)返回對象。因此,使用標記函數(shù)進行字符串到對象數(shù)據(jù)轉(zhuǎn)換是標記模板字面量的一個很好的用例。以下 json 標記函數(shù)實現(xiàn)了一種更好的語法方法來解析代碼中的 JSON 字符串:Qip28資訊網(wǎng)——每日最新資訊28at.com

function json(strings, ...exps) {   return JSON.parse(strings.reduce((acc, str, i) =>     (acc + str + (exps[i] ?? '')), ''));}let obj = json`{    "msg": "Hello JavaScript",    "code": ${1000}}`; console.log(obj);   // {msg: 'Hello JavaScript', code: 1000}

類似地,你可以開發(fā)標簽來轉(zhuǎn)換 YAML 和 HTML 格式:Qip28資訊網(wǎng)——每日最新資訊28at.com

let yamlObj = yaml`...`;let htmlObj = html`...`;

流行的 Google 開源庫 zx 讓你可以使用標記模板字面量特性在 Node.js 中編寫類似 Bash 的腳本。Qip28資訊網(wǎng)——每日最新資訊28at.com

原生非十進制數(shù)字字面量

人類通常使用十進制數(shù)系統(tǒng),因此每種編程語言都將數(shù)字字面量視為十進制數(shù)。但在某些開發(fā)場景中,我們必須在源代碼中使用其他數(shù)制。例如,我們應該使用八進制數(shù)來通過 Node.js API 更改文件系統(tǒng)訪問權(quán)限。任何現(xiàn)代編程語言,包括 JavaScript,使用一組通用前綴來表示非十進制數(shù)字字面量。Qip28資訊網(wǎng)——每日最新資訊28at.com

看看如何使用標準前綴在 JavaScript 中使用二進制、八進制和十六進制數(shù)字字面量:Qip28資訊網(wǎng)——每日最新資訊28at.com

let n1 = 0b101;let n2 = 0o21;let n3 = 0xff;console.log(n1);  // 5console.log(n2);  // 17console.log(n3);  // 255

如你所見,每個非十進制數(shù)字立即轉(zhuǎn)換為十進制數(shù)字,這意味著 JavaScript 在解析源文件時實現(xiàn)了這種非十進制數(shù)字支持,并在運行時使用通用的 Number 對象。Qip28資訊網(wǎng)——每日最新資訊28at.com

然而,內(nèi)置的 toString() 方法和 parseInt() 函數(shù)幫助開發(fā)者通過將非十進制數(shù)字存儲為字符串來處理它們:Qip28資訊網(wǎng)——每日最新資訊28at.com

let n1 = '0xff';let n2 = parseInt(n1, 16);console.log(n2);   // 255 (decimal)let n3 = n2.toString(2);console.log(n3);   // 11111111 (binary)

使用字符串格式顯示二進制數(shù)字并不是大問題,但在字符串中存儲大量二進制數(shù)據(jù)不是性能友好的方法,因此你可以改用類型化數(shù)組。Qip28資訊網(wǎng)——每日最新資訊28at.com

使用對象方法防止 JavaScript 對象修改

默認情況下,JavaScript 不會對對象進行嚴格檢查——它允許你隨意操作任何對象。你甚至可以操作內(nèi)置對象:Qip28資訊網(wǎng)——每日最新資訊28at.com

JSON.parse = (str) => console.log(str);

例如,你可以通過在瀏覽器控制臺中覆蓋內(nèi)置對象方法來破壞生產(chǎn)網(wǎng)站(僅限當前瀏覽器標簽頁),如上面的代碼片段所示。Qip28資訊網(wǎng)——每日最新資訊28at.com

JavaScript 允許你使用 Object.seal() 和 Object.freeze() 方法防止對象修改。例如,seal() 方法通過允許現(xiàn)有屬性值修改來防止新屬性添加:Qip28資訊網(wǎng)——每日最新資訊28at.com

const obj = {  a: 100,  f: () => console.log('Hello...')};Object.seal(obj);obj.a = 1000;   // worksobj.b = 100;    // doesn't workdelete obj.a;   // doesn't work

Object.freeze() 防止添加新屬性并阻止現(xiàn)有屬性修改,如下代碼片段所示:Qip28資訊網(wǎng)——每日最新資訊28at.com

Object.freeze(obj);obj.a = 1000;   // doesn't workobj.b = 100;    // doesn't workdelete obj.a;   // doesn't work

默認情況下,密封和凍結(jié)對象不會因無效操作而拋出錯誤,因此你必須啟用 JavaScript 嚴格模式才能實現(xiàn)這一點。Qip28資訊網(wǎng)——每日最新資訊28at.com

嵌套解構(gòu)和重命名

現(xiàn)如今,由于 React 等庫教程的影響,開發(fā)者經(jīng)常使用 ES6 解構(gòu)特性與對象和數(shù)組。解構(gòu)特性提供了一種更好的語法糖,用于通過從數(shù)組和對象中提取字段來創(chuàng)建新變量/常量。基本對象解構(gòu)通常從第一級屬性提取屬性,如下所示:Qip28資訊網(wǎng)——每日最新資訊28at.com

const obj = {  a: 10,  b: 20,  c: 30};let {a, b, c} = obj;console.log(a, b, c);   // 10 20 30

如果你需要重命名變量名,可以使用解構(gòu)重命名語法,如下所示:Qip28資訊網(wǎng)——每日最新資訊28at.com

let {a: A, b: B, c: C} = obj;console.log(A, B, C);   // 10 20 30

我們看看一個高級對象解構(gòu)示例。我們可以從嵌套屬性中提取數(shù)據(jù)并使用重命名語法,如下代碼片段所示Qip28資訊網(wǎng)——每日最新資訊28at.com

const customer = {  info: {    name: 'John',    score: 80,    address: {postalCode: 2000}  }};let {  info: {     name: customerName,    address: {postalCode: postCode }   }} = customer;console.log(customerName, postCode);   // John 2000

在這里,我們通過結(jié)合解構(gòu)和重命名特性提取嵌套屬性,創(chuàng)建了兩個變量。你甚至可以使用剩余參數(shù)語法獲取解構(gòu)過程中未解包的對象屬性:Qip28資訊網(wǎng)——每日最新資訊28at.com

let {  info: {     name: customerName,    address: { postalCode: postCode },    ...rest    }} = customer;

上面的 ...rest 對象包含 { score: 80 } 對象,因為 score 屬性未被解包到單獨的變量中。Qip28資訊網(wǎng)——每日最新資訊28at.com

使用計算屬性創(chuàng)建鍵值對象

在某些開發(fā)場景中,我們需要動態(tài)訪問對象屬性。我們可以輕松地使用括號語法動態(tài)設(shè)置/獲取屬性,但使用多個重復的設(shè)置/獲取語句無疑會影響代碼可讀性。Qip28資訊網(wǎng)——每日最新資訊28at.com

看看以下代碼片段,使用括號語法設(shè)置動態(tài)屬性名:Qip28資訊網(wǎng)——每日最新資訊28at.com

function createElement(tag, score) {    let doc = {        id: 100,        tag,    };    doc[tag + 'Score'] = score * 100;    doc[tag + 'Type'] = 'internal';    return doc;}console.log(createElement('box', 50));// {id: 100, boxScore: 5000, boxType: 'internal'}

我們可以使用計算屬性語法簡化上述函數(shù),如下所示:Qip28資訊網(wǎng)——每日最新資訊28at.com

const createElement = (tag, score) => ({    id: 100,    tag,    [tag + 'Score']: score * 100,    [tag + 'Type']: 'internal'});

現(xiàn)代 JavaScript 語法是如此富有成效--它甚至支持對象重構(gòu)語法中的計算屬性,因此您可以使用動態(tài)生成的屬性名來解包屬性。例如,下面的代碼片段使用對象重構(gòu)和計算屬性語法,找到了使用上述 createElement() 函數(shù)生成的特定對象的分數(shù)字段:Qip28資訊網(wǎng)——每日最新資訊28at.com

let obj = {     id: 100,     tag: 'box',    boxScore: 5000,     boxType: 'internal' };let {[obj.tag + 'Score']: score} = obj;console.log(score); // 5000

總結(jié)

這篇文章探討了一些鮮為人知的 JavaScript 語言特性,這些特性可以幫助你通過編寫簡潔的代碼塊來提高編碼效率。除了這些特性之外,指數(shù)運算符、類似逗號運算符的語法增強功能也可以幫助你以專家的方式編寫 JavaScript 代碼,并保持最新的知識!Qip28資訊網(wǎng)——每日最新資訊28at.com

ECMAScript 通過討論社區(qū)提案積極改進標準的 JavaScript 規(guī)范。ECMAScript TC39 小組維護了一個 GitHub 倉庫,列出了最新的 JavaScript 增強提案。其中一些提案試圖擴展 JavaScript 語法以提高開發(fā)者的生產(chǎn)力。例如,一些提案嘗試標準化 function.sent 元屬性、為 throw 關(guān)鍵字支持表達式以及類似函數(shù)管道的語言修改,適用于所有流行的網(wǎng)頁瀏覽器。Qip28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-102921-0.html代碼水平暴增!掌握這五個JavaScript神技,讓你成為團隊最靚的仔

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: "React"開發(fā)者并不存在

下一篇: Set 迎來史詩級加強,新增七個實用方法!

標簽:
  • 熱門焦點
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達到了中國第一,同時還表示小米電視的巨屏風暴即將開始。“公布一個好消息2023年#小米電視上半年出貨量中國
  • Redmi Pad評測:紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍牙耳機到筆記本電腦,紅米不知不覺之間也已經(jīng)形成了自己頗有競爭力的產(chǎn)品體系,在中端和次旗艦市場上甚至要比小米新機的表現(xiàn)來得更好,正所謂“大丈夫生居
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機制進行協(xié)調(diào)和交互,例如,線程等待和通知機制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現(xiàn)手段有以下幾種方式:Object 類下
  • 把LangChain跑起來的三個方法

    使用LangChain開發(fā)LLM應用時,需要機器進行GLM部署,好多同學第一步就被勸退了,那么如何繞過這個步驟先學習LLM模型的應用,對Langchain進行快速上手?本片講解3個把LangChain跑起來
  • 一文看懂為蘋果Vision Pro開發(fā)應用程序

    譯者 | 布加迪審校 | 重樓蘋果的Vision Pro是一款混合現(xiàn)實(MR)頭戴設(shè)備。Vision Pro結(jié)合了虛擬現(xiàn)實(VR)和增強現(xiàn)實(AR)的沉浸感。其高分辨率顯示屏、先進的傳感器和強大的處理能力
  • 微信語音大揭秘:為什么禁止轉(zhuǎn)發(fā)?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉(zhuǎn)發(fā)?這是一個我們經(jīng)常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 最“俊美”淘寶賣家,靠直播和短視頻圈粉,上架秒光,年銷3000萬

    來源 | 電商在線文|易琬玉編輯|斯問受訪店鋪:Ringdoll戒之人形圖源:微博@御座的黃山、“Ringdoll戒之人形”淘寶店鋪有關(guān)外貌的評價,黃山已經(jīng)聽累了。生于1985年的他,哪
  • 拼多多APP上線本地生活入口,群雄逐鹿萬億市場

    Tech星球(微信ID:tech618)文 | 陳橋輝 Tech星球獨家獲悉,拼多多在其APP內(nèi)上線了“本地生活”入口,位置較深,位于首頁的“充值中心”內(nèi),目前主要售賣美食相關(guān)的
  • 猿輔導與新東方的兩種“歸途”

    作者|卓心月 出品|零態(tài)LT(ID:LingTai_LT)如何成為一家偉大企業(yè)?答案一定是對“勢”的把握,這其中最關(guān)鍵的當屬對企業(yè)戰(zhàn)略的制定,且能夠站在未來看現(xiàn)在,即使這其中的
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲精品之草原avav久久| 在线成人h网| 欧美亚洲成人免费| 国产精品成人免费精品自在线观看| 欧美日韩一区二区欧美激情 | 国内外成人免费视频| 亚洲电影成人| 一区二区三区精品| 欧美在线视频一区| 欧美高清在线播放| 欧美性大战久久久久| 国产亚洲一级高清| 日韩视频免费观看高清在线视频 | 欧美国产一区二区三区激情无套| 欧美日韩高清免费| 国产精品一区免费观看| 亚洲高清免费视频| 亚洲欧美日韩第一区| 久热国产精品| 国产精品美女xx| 亚洲黄色成人网| 午夜亚洲精品| 欧美日韩免费高清一区色橹橹| 国产亚洲精品激情久久| 99re热这里只有精品免费视频| 欧美一级在线视频| 欧美精品一区二区三区很污很色的| 国产乱人伦精品一区二区 | 99精品黄色片免费大全| 久久九九热re6这里有精品 | 黄色免费成人| 亚洲午夜黄色| 欧美精品成人一区二区在线观看| 国产一区二区三区在线观看免费视频| 日韩午夜在线视频| 久久视频一区| 国产欧美日韩伦理| 在线一区二区视频| 欧美aa在线视频| 国产亚洲成av人在线观看导航 | 欧美在线视频一区| 欧美三级在线播放| 亚洲国产一区在线| 久久精品91| 国产精品人人做人人爽 | 亚洲欧美日韩天堂| 欧美另类极品videosbest最新版本| 国语自产精品视频在线看抢先版结局 | 99伊人成综合| 男人的天堂亚洲在线| 国产亚洲综合精品| 亚洲欧美视频一区| 欧美视频1区| 亚洲乱码国产乱码精品精天堂 | 国产一区二区精品丝袜| 亚洲视频在线一区| 欧美女激情福利| 亚洲国产精品ⅴa在线观看| 久久精品日产第一区二区三区| 国产精品久久久久7777婷婷| 日韩视频永久免费| 欧美国产精品久久| 亚洲激情国产| 欧美sm重口味系列视频在线观看| 狠狠色狠狠色综合系列| 久久精品免视看| 国产视频亚洲精品| 欧美一区二区三区视频免费播放 | 精品动漫3d一区二区三区| 欧美有码视频| 国产视频亚洲| 久久精品九九| 国产一区二区三区在线观看免费| 亚洲欧美日韩在线高清直播| 国产精品国产馆在线真实露脸 | 亚洲一区在线播放| 国产精品久久久久久福利一牛影视 | 欧美成年人视频| 亚洲电影网站| 欧美高清不卡| 亚洲精品资源| 欧美日韩中文在线| 亚洲深夜福利| 国产精品欧美激情| 欧美一级专区免费大片| 国产亚洲欧洲一区高清在线观看| 久久黄金**| 在线观看精品| 欧美成人资源网| 亚洲日本成人网| 欧美日韩成人一区| 正在播放亚洲| 国产精品青草久久| 欧美在线首页| 在线成人免费视频| 欧美国产综合| 亚洲一二三级电影| 国产欧美在线观看一区| 久久精品国产77777蜜臀 | 亚洲欧美文学| 国产永久精品大片wwwapp| 久久久青草婷婷精品综合日韩| 尤物精品在线| 欧美日韩国产色视频| 亚洲视频欧美视频| 国产日韩欧美一区二区三区四区 | 国产一区二三区| 久久综合久久综合这里只有精品 | 国产欧美一区二区三区国产幕精品 | 欧美日韩一区在线| 午夜精品一区二区三区四区 | 国产精品家教| 久久久av网站| 亚洲三级电影在线观看| 国产精品美女久久福利网站| 久久精品水蜜桃av综合天堂| 亚洲国产成人精品女人久久久| 欧美日韩精品免费观看| 国产亚洲一区二区三区在线观看| 欧美日韩日本国产亚洲在线| 亚洲激情国产| 欧美日韩日本网| 裸体歌舞表演一区二区| 亚洲欧洲一区二区在线播放| 欧美a级片网| 国产精品都在这里| 久久精品国产亚洲aⅴ| 亚洲国内精品| 国产精品啊啊啊| 久久久久女教师免费一区| 亚洲精品欧美在线| 国产精品一级久久久| 美女主播精品视频一二三四| 中文日韩在线视频| 国内精品久久久久久影视8| 欧美日韩成人免费| 欧美专区18| 日韩视频在线免费观看| 国产热re99久久6国产精品| 欧美激情视频给我| 欧美在线免费观看| 一卡二卡3卡四卡高清精品视频| 国产一区视频观看| 欧美天天在线| 免费在线看一区| 欧美在线1区| 99天天综合性| 在线精品观看| 国产日韩欧美综合| 国产精品成人观看视频免费| 韩日精品中文字幕| 欧美—级a级欧美特级ar全黄| 亚洲一区二区视频在线观看| 亚洲国产黄色片| 国产日韩av高清| 精品成人久久| 亚洲精品美女| 国产在线视频欧美一区二区三区| 亚洲丶国产丶欧美一区二区三区| 午夜精品免费在线| 国产视频欧美视频| 99国内精品久久| 欧美伊人久久大香线蕉综合69| 农夫在线精品视频免费观看| 欧美日韩第一区| 樱桃国产成人精品视频| 夜夜嗨网站十八久久| 久久久久一本一区二区青青蜜月| 国产精品久久综合| 亚洲视频在线播放| 欧美偷拍一区二区| 欧美一区二区国产| 91久久国产综合久久91精品网站| 国产女主播一区二区| 欧美亚男人的天堂| 欧美日韩免费一区二区三区视频| 蜜桃精品一区二区三区| 91久久精品国产91久久性色| 国产日韩欧美亚洲| 欧美理论大片| 亚洲视频一区二区免费在线观看| 欧美日韩一卡二卡| 亚洲网在线观看| 亚洲精品久久久久久一区二区| 欧美激情一区三区| 亚洲欧美日韩天堂| 国产精品高潮粉嫩av| 麻豆精品在线观看| 欧美一区1区三区3区公司| 日韩一区二区免费高清| 国产精品成人在线| 欧美专区亚洲专区| 亚洲六月丁香色婷婷综合久久| 国产精品久久9| 在线成人激情| 欧美国产视频一区二区| 亚洲国产高清一区二区三区| 久久五月激情| 亚洲麻豆一区| 国产日韩一区欧美| 午夜视频在线观看一区二区| 国产午夜亚洲精品羞羞网站 | 久久久噜噜噜久久中文字幕色伊伊| 国产在线一区二区三区四区 |