主頁 >  其他 > 7個必備JavaScript優化技巧,CodeGeeX 5秒搞定了!

7個必備JavaScript優化技巧,CodeGeeX 5秒搞定了!

2023-06-17 08:03:35 其他

JavaScript,目前成了使用最廣泛的編程語言,這篇文章給出的是一些 JavaScript 的優化技巧,這些技巧幫助開發者撰寫出更好的代碼,當寫完這些代碼段之后,我突然意識到,所有的這些代碼段,由于它們的常用性,非常適合用AI輔助編程工具CodeGeeX來自動生成,

下載使用——CodeGeeX插件,在VSCode和JetBrains IDEs可以直接免費下載使用,CodeGeeX插件可以自動實作代碼生成,可以逐行為代碼添加注釋,也可以進行不同編程語言之間的代碼翻譯,特別值得點贊的功能“Ask CodeGeeX”,把類似chatGPT一樣的智能問答功能,與開發者編程環境IDE深度融合,開發者可以在IDE中,通過問答對話的方式解決技術問題,

在IDE中使用Ask CodeGeeX功能,使得開發程序中遇到的問題,都可以在IDE中沉浸式解決,不用跳出開發環境尋找解決代碼問題的答案,提升了代碼開發效率,同時,在這個新版本中,通過對話框區域常用命令“explain/解釋代碼”、“comment/生成注釋”、“fixbug/檢查bug”的快捷方式,可以直接操作代碼,實作代碼解釋,逐行添加代碼注釋,嘗試修復代碼片段潛在bug等功能,

“explain/解釋代碼”按鈕,獲得整段代碼解釋

當你撰寫代碼時,希望了解某一段生成的代碼作何解釋?那么你就可以在CodeGeeX插件的代碼生成區域中,選中該段代碼,左側邊欄的對話區會出現浮層,同時展示選中代碼,在對話區通過快捷按鈕:“解釋代碼”,在對話界面中就可以回復出整段的代碼解釋,

“comment/生成注釋”按鈕為代碼逐行添加注釋

同樣,當你希望為一段生成的代碼逐行添加注釋,你就可以在CodeGeeX代碼生成區域,選中該段代碼,側邊欄的對話區會出現浮層,同時展示選中代碼,在對話區通過快捷按鈕:“生成注釋”,在對話界面就可以直接為這段代碼逐行添加注釋,

“fixbug/檢查bug”修復代碼潛在bug

當你撰寫代碼遇到一個錯誤時,在CodeGeeX插件的代碼生成區域中選中該段代碼,左側邊欄的對話區會出現浮層,同時展示選中代碼,在對話區通過快捷按鈕:“檢查bug”,代碼編輯區就可以直接幫你找到這段代碼中的問題并進行錯誤修復,并且對修復代碼的區域做高亮標記,方便進行代碼對照,

Fallback Values:回退值

// Lengthy
let name;
if (user?.name) {
  name = user.name;
} else {
  name = "Anonymous";
}

// Shortly
const name = user?.name ?? "Anonymous";

這個代碼段可以用CodeGeeX插件工具,在你代碼背景關系中自動生成,

Shortly For Switching
Long switch通常使用一個物件來最大化,其中Key為開關,Value為回傳值,

const dayNumber = new Date().getDay();

// Lengthy
let day;
switch (dayNumber) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
    day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
}

// Shortly
const days = [
    "Sunday",
    "Monday",
    "Tuesday",
    "Wednesday",
    "Thursday",
    "Friday",
    "Saturday",
];

// Or
const days = `Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday`.split(
    ","
);

const day = days[dateNumber];

這個代碼段可以用CodeGeeX插件工具,在你代碼背景關系中自動生成,

Calls To Functions

函式呼叫

// Lengthy
function f1() {
  // ...
}
function f2() {
  // ...
}

// Shorter
condition ? f1() : f2();

這個代碼段可以用CodeGeeX插件工具,在你代碼背景關系中自動生成,

多個字串檢查

通常需要檢查字串是否等于多個值之一,不難但很繁瑣,這里完全可以交給CodeGeeX來生成這段代碼,

// Lenghty
const isVowel = (letter) => {
  return (
    letter === "a" ||
    letter === "e" ||
    letter === "i" ||
    letter === "o" ||
    letter === "u"
  );
};

// Shortly
const isVowel = letter => /[aeiou]/i.test(letter);

For-of 和 For-in 回圈有利于重復陣列或物件,無需手動跟蹤物件鍵的索引,

For-of

const arr = [1, 2, 3, 4, 5];

// Lengthy
for (let i = 0; i < arr.length; i++) {
  const element = arr[i];
  // ...
}

// Shortly
for (const element of arr) {
  // ...
}

For-in

const obj = {
  a: 1,
  b: 2,
  c: 3,
};

// Lengthy
const keys = Object.keys(obj);
for (let i = 0; i < keys.length; i++) {
  const key = keys[i];
  const value = https://www.cnblogs.com/chattech/archive/2023/06/16/obj[key];
  // ...
}

// Shortly
for (const key in obj) {
  const value = obj[key];
  // ...
}

這個代碼段可以用CodeGeeX插件工具,在你代碼背景關系中自動生成,

False Checks

如果要檢查變數是空、未定義、0、假、還是空字串,可以使用邏輯非執行操作,使得驗證變數是否包含有效資料變得簡單,

// Lengthy
const isFalsey = (value) => {
  if (
    value =https://www.cnblogs.com/chattech/archive/2023/06/16/== null ||
    value === undefined ||
    value === 0 ||
    value === false ||
    value === NaN ||
    value ===""
  ) {
    return true;
  }
  return false;
};

// Shortly
const isFalsey = (value) => !value;

這個代碼段可以用CodeGeeX插件工具,在你代碼背景關系中自動生成,

Secondary Operator

JavaScript開發一定遇到過ternary operator,這是撰寫簡潔版if-else陳述句的絕佳方法,你可以用它來撰寫簡潔的代碼,甚至可以連起來檢查多個條件,

// Lengthy
let info;

if (value < minValue) {
  info = "Value is too small";
} else if (value > maxValue) {
  info = "Value is too large";
} else {
  info = "Value is in range";
}

// Shortly
const info =
  value < minValue
    ? "Value is too small"
    : value > maxValue ? "Value is too large" : "Value is in range";

本文由博客一文多發平臺 OpenWrite 發布!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555384.html

標籤:其他

上一篇:安全可信 | 首批!天翼云邊緣安全加速平臺AccessOne通過信通院“軟體自研創新能力”專項評估

下一篇:返回列表

標籤雲
其他(161150) Python(38236) JavaScript(25498) Java(18244) C(15237) 區塊鏈(8271) C#(7972) AI(7469) 爪哇(7425) MySQL(7254) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4599) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2436) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) 功能(1967) HtmlCss(1967) Web開發(1951) C++(1941) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 7個必備JavaScript優化技巧,CodeGeeX 5秒搞定了!

    JavaScript,目前成了使用最廣泛的編程語言。這篇文章給出的是一些 JavaScript 的優化技巧,這些技巧幫助開發者撰寫出更好的代碼。當寫完這些代碼段之后,我突然意識到,所有的這些代碼段,由于它們的常用性,非常適合用AI輔助編程工具CodeGeeX來自動生成。 下載使用——[CodeGee ......

    uj5u.com 2023-06-17 08:03:35 more
  • 安全可信 | 首批!天翼云邊緣安全加速平臺AccessOne通過信通院“軟

    近日,中國資訊通信研究院(以下簡稱“中國信通院”)公布“軟體自研創新能力”專項評估(簡稱“可信研創”)結果,天翼云邊緣安全加速平臺AccessOne順利通過評估,成為首批通過該項評估的云服務商。 “軟體自研創新能力”專項評估旨在通過原始碼級別的開源同源匹配技術,分析軟體產品的代碼組成成分,幫助用戶了解 ......

    uj5u.com 2023-06-17 07:58:21 more
  • 計算機視覺重岸訓議VAlSE2023召開,合合資訊分享智能檔案處理技

    近期,2023年度視覺與學習青年學者研討會 (Vision And Learning SEminar, VALSE) 圓滿落幕。會議由中國人工智能學會、中國圖象圖形學學會主辦,江南大學和無錫國家高新技術產業開發區管理委員會承辦。超五千名專家學者、知名高校師生以及來自OPPO、華為、百度、合合資訊等科... ......

    uj5u.com 2023-06-17 07:47:40 more
  • 自然語言處理 Paddle NLP - 詞法分析技術及其應用

    詞法分析就是利用計算機對自然語言的形態(morphology) 進行分析,判斷詞的結構和類別等。”簡單而言,就是分詞并對每個詞進行分類,包括:分詞、詞性標注、物體識別三個任務 ![image](https://img2023.cnblogs.com/blog/80824/202306/80824-2 ......

    uj5u.com 2023-06-17 07:46:47 more
  • 做一個“20倍程式員”

    以前有一個詞叫“十倍程式員”,形容一個程式員效率高,一個頂十個。 現在隨著ChatGPT的爆火,我覺得可以膽子大一點,改叫“二十倍程式員”。 我是一名十幾年的老程式員,最近在學習ChatGPT,也是ChatGPT的重度用戶,已經用上癮了。 接下來我分享一下的日常用法,大家看看是否能提高效率。 一、向 ......

    uj5u.com 2023-06-17 07:46:19 more
  • Node.js 開發常用到的庫和插件工具,同事看到后也悄悄收藏了……

    Node.js是一個功能強大,并且非常流行的 JavaScript 運行時環境,使開發人員能夠高效率的構建高性能應用程式。下面介紹了8個常見的應用程式開發中用到的庫和函式,可以用于快取資料、操作日期、處理影像、發送電子郵件、發出 HTTP 請求、記錄請求和回應、壓縮資料和哈希密碼等。通過使用這些庫, ......

    uj5u.com 2023-06-17 07:46:14 more
  • 5 Amazing AI Projects, Open Source !

    過去一周,AI大模型的快速演進仍然在繼續上演。今天繼續介紹GitHub上的一些實用的大模型開源專案。 **1. ChatGLM-6B:Open Source ChatGPT Alternative** ChatGLM-6B是一個基于GLM架構的開源對話語言模型,支持中英雙語,有62億引數。結合模型量 ......

    uj5u.com 2023-06-17 07:46:09 more
  • 形式化分析之BAN邏輯

    ## BAN邏輯介紹 BAN邏輯是一種基于知識和信任的形式邏輯分析方法,由Burrows,Abadi 和 Needham 提出,通過對認證協議的運行進行形式分析,從協議執行者最初的一些基本信仰出發,根據協議執行的每個參與者發出和收到的訊息,推理得到參與者的最終信仰。 BAN邏輯成功分析出NeedHa ......

    uj5u.com 2023-06-17 07:45:51 more
  • 了解基于模型的元學習:Learning to Learn優化策略和Meta-Learner

    摘要:本文主要為大家講解基于模型的元學習中的Learning to Learn優化策略和Meta-Learner LSTM。 本文分享自華為云社區《深度學習應用篇-元學習[16]:基于模型的元學習-Learning to Learn優化策略、Meta-Learner LSTM》,作者:汀丶 。 1. ......

    uj5u.com 2023-06-17 07:45:25 more
  • [Week 21] 每日一題(C++,數學,二分,字串,STL)

    [TOC] ## T1 [Daimayuan] 一半相等(C++,數學) 給定 $n$ ($n$ 為偶數)個整數陣列 $a_1,a_2,…,a_n$ 考慮這樣的一個 $k$,每次操作選定一個 $i$,將 $a_i$ 減少 $k$,執行多次(可能 $0$ 次)后使得陣列中至少有一半的元素相等,求最大的 ......

    uj5u.com 2023-06-17 07:45:18 more