JavaScript代码压缩的功效与作用

news2024/12/24 2:56:41

JavaScript代码压缩可实现3大功能:减小体积、优化逻辑、提升执行效率

专业的JavaScript代码压缩,绝不仅仅是去除回车使代码挤到一行,而是用真正的技术减小代码体积、提升代码性能。

下面,以JShaman的JavaScript代码压缩功能为例,以说明JavaScript压缩具体能对代码进行哪些优化。

去除未使用的函数、变量

例:

压缩前的代码:
function fun_one(){ console.log(var_one); } function fun_two(){ console.log(var_one); } fun_one();
压缩后:
function fun_one() { console.log(var_one); } fun_one();
压缩前的代码:
var var_one = 1; var var_two = 2; function fun_one(){ console.log(var_one); } fun_one();
压缩后:
var var_one = 1; function fun_one() { console.log(var_one); } fun_one();

如此便省去了无效代码对空间的占用。

缩短函数名、变量名

例,压缩前的代码:
var var_variable_one = 1; var var_variable_two = 2;
压缩后:
var _0_ = 1; var _0_2 = 2;
例,压缩前的代码:
function fun_get_time(){} function fun_set_time(){}
压缩后:
function _f1_(){} function _f2_(){}

长的函数名、变量名占用的空间多,变短自然省出了空间。

代码逻辑优化

对功能逻辑进行判断,去除某些由于逻辑无效而不会被执行的代码。

例,压缩前的代码:
if(1==1){ console.log("1=1"); } else { console.log("1!=1"); }
压缩后:
console.log("1=1");
例,压缩前的代码:
2==2?console.log("2=2"):console.log("2!=2");
压缩后:
console.log("2=2");

优化了逻辑、去除了无效代码,代码执行效率自然可得到提升。

字符串优化

例,压缩前的代码:
var four_one = 4; var four_two; var four_three ="this is four_three"; four_two = 5; console.log(four_one,four_two,four_three,four_three);
压缩后:
var four_two; var four_three = "this is four_three"; four_two = 5; console.log(4, four_two, four_three, four_three);

压缩前,字符串或常量赋值给变量,后续代码中使用变量进行各种逻辑处理。

压缩后,直接取变量真正内容进行操作,省略了对变量的使用,节省了逻辑开销。

何时使用代码压缩?

在实际的编程中,平常不需要压缩,优化压缩可能并不利于工作,比如:

使用有意义的长变量名有助于理解代码内容,方便维护,而不该使用无意义短变量名;

条理分明、但可能不必要的条件判断语言,同样便于代码理解,而不该为了短小而省略判断。

其它,回注释、换行、缩进,都是日常编程的正常需要。

但在发行代码时,需求可能与此相反,通常而言:

需要保密性的重要代码,可进行混淆加密。

而某些代码,可能需要考虑性能、大小,以方便高效执行、便于网络传输可以进行代码压缩。

那么,你的JavaScript代码,是需要混淆加密呢,还是需要压缩呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1289310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

辐射校正、辐射定标、大气校正关系

文章目录 前言一、基本概念二、辐射校正三、辐射定标四、大气校正 1.是否需要大气校正2.大气校正模型 五、参考链接 前言 完整的辐射校正包括遥感器校准、大气校正、太阳高度和地形校正。本文主要介绍辐射校正基本概念及区分辐射校正、辐射定标、大气校正。 一、基本概念 DN&a…

Java 将word转为PDF的三种方式和处理在服务器上下载后乱码的格式

我这边是因为业务需要将之前导出的word文档转换为PDF文件,然后页面预览下载这样的情况。之前导出word文档又不是我做的,所以为了不影响业务,只是将最后在输出流时转换成了PDF,当时本地调用没什么问题,一切正常&#xf…

挂耳式蓝牙耳机性价比排行榜吗,排名靠前的几款耳机推荐

当涉及挂耳式蓝牙耳机的选择时,消费者常常陷入选择困境,面对市场上琳琅满目的产品,很难找到性价比兼具的理想之选,为了帮助大家在众多选择中快速定位高性价比的耳机,我们精心整理了一份挂耳式蓝牙耳机性价比排行榜&…

javaWebssh图书系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

系统前景 图书有很多,老的图书书的管理靠纸介质,浪费人力和物力,给图书管理者带来极大的资源浪费。随着计算机信息化的普及,对图书的管理带来本质的改变,图书的销售情况以及,图书管理,以及年终对…

搜不到你想找的资料?那是你还没有掌握这些搜索技巧

文章目录 Google搜索命令sitefiletypeintitleinauthor:define:related:OR:- (减号):.. (两个点):weather:stocks:movie:link: 示例site:filetype:intitle:inauthor:define:related:OR:- (减号):.. (两个点):*** (星号):**cache:info:weather:stocks:movie:link: 补充 Google搜索…

解析操作系统是如何启动起来的?

操作系统被称为“第一个程序”,the first programme,原因很简单,只有当操作系统启动起来后才能运行我们编写的程序,那么你有没有想过这个问题:操作系统是怎样启动起来的呢?实际上这个过程就像发射火箭一样有…

解决vue ssr服务端渲染运行时报错:net::ERR_PROXY_CONNECTION_FAILED

现象: 从代码里找了半天也没有找到问题,但是由于ssr服务端渲染配置本身非常复杂,步骤又繁琐, 而且报错又很多,不知道哪里出了问题。 感觉是header或者cookie丢失造成的,因为据说ssr本身有这样的缺陷&…

NHN和SuiFrens合作的限量版配饰正式发售

SuiFrens那些可爱、富有想象力的生物,即将迎来全新装扮,而你也可以一同享受。今天,限量版NHN x SuiFrens Pebble City幸运配饰系列正式推出,同时还有机会在SuiFrens商店免费领取独家限量版NHN帽子。 NHN x SuiFens Pebble City配饰…

17、pytest自动使用fixture

官方实例 # content of test_autouse_fixture.py import pytestpytest.fixture def first_entry():return "a"pytest.fixture def order():return []pytest.fixture(autouseTrue) def append_first(order, first_entry):return order.append(first_entry)def test_s…

CVE初探之漏洞反弹Shell(CVE-2019-6250)

概述 ZMQ(Zero Message Queue)是一种基于消息队列得多线程网络库,C编写,可以使得Socket编程更加简单高效。 该编号为CVE-2019-6250的远程执行漏洞,主要出现在ZMQ的核心引擎libzmq(4.2.x以及4.3.1之后的4.3.x)定义的ZMTP v2.0协议中。 这一…

调试文心大模型或chatgpt的function Calling函数应用场景

沉默了一段时间,最近都在研究AI大模型的产品落地应用,我觉得这个function calling出来后,对目前辅助办公有革命性的改变,可以它来做什么呢?我们先来调试看看,chatgpt和文心大模型的ERNIE Bot支持这个&#…

电力智慧运维系统

电力智慧运维系统是以提高用户侧电力运行安全,降低运维成本为目标;采用智能化运维管理工具—“电易云”,帮助企业建立电力运维体系全方位的信息化、数字化平台,实现设备运行的数字化在线监控与线下维护处理的有机融合,…

在线学习平台-项目搭建

ER图: 外面的圆圈是外键(外键建在多的一边) 平台搭建: 参考这篇博客:若依的基本使用 测试: 先随便写一个测试的控制层看看项目是否搭建成功 调用验证码接口拿到uuid和token 更改token有效时长 之和的请求都需要带上token,测试时可以把token设置长一些 继承插件 需要什么…

C语言能判断一个变量是int还是float吗?

C语言能判断一个变量是int还是float吗? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C语言从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家!&…

HXDSP2441-HXD-PRO(CPU)在线仿真器

HXD-PRO(CPU)在线仿真器 CPU下载器具体使用方法参考《HXD-PRO在线仿真器使用手册》,需要注意的是,CPU下载器在PLL初始化后才可以正常连接。

体育场找座位 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题目描述 在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图,座位中存在已落座的观众&…

阅读笔记——《Hopper: Interpretative Fuzzing for Libraries》

【参考文献】Zhan Q, Fang R, Bindu R, et al. Removing RLHF Protections in GPT-4 via Fine-Tuning[J]. arXiv preprint arXiv:2311.05553, 2023.【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。 目录 摘要 一、介绍 二、背景 1、库的模…

代码随想录算法训练营第五十七天 | 647. 回文子串,516.最长回文子序列,动态规划总结篇

目录 647. 回文子串 516.最长回文子序列 动态规划总结篇 647. 回文子串 题目链接&#xff1a;647. 回文子串 &#xff08;1&#xff09;dp[ i ][ j ] 表示从 i 到 j 的字符串是否为回文子串&#xff1b; &#xff08;2&#xff09;若 s[ i ] s[ j ] 若 j - i < 1 dp…

QT-在ui界面中给QWidget增加Layout布局的两种方法

QT-在ui界面中给QWidget增加Layout布局的两种方法 方式一 在UI界面&#xff0c;用拖拽的方式加入Layout方式二 用notepad软件打开.ui文件&#xff0c;手动加入Layout代码 目标&#xff1a;去除右下角红标&#xff0c;给tab标签增加Layout属性。 方式一 在UI界面&#xff0c;用…

我一人全干!之二,vue3后台管理系统树形目录的实现。

一个完整的后台管理系统需要一个树形结构的目录&#xff0c;方便用户切换页面。 因为使用的是element-plus的ui库&#xff0c;所以首选el-menu组件&#xff0c;点击查看文档。 因为此组件不是树形结构的&#xff0c;所以需要封装成系统需要的树形结构组件。可以使用vue的递归组…