代码压缩 使用逻辑与替代单个if语句
发现过程
我的博客中使用了hexo-neat插件来压缩代码,我之前天真认为,压缩代码应该就是把html标签直接的中的空白(空白符,空白行)删除掉而已。但是,我今天发现用来播放音频的javascript代码有点奇怪,奇怪在和我之前写的不一样,经过压缩后,代码变精简了。
压缩之前的js代码为:
1 | <script> |
压缩后的代码为:
1 | <script>function paly_audio0(){var a=document.getElementById("audio0");null!=a&&a.play()}</script> |
为了看清楚点,格式化一下:
1 | <script> |
可以看到空白符,换行符,注释都被删除掉的了,神奇的是但是代码也变了,if语句消失了!嗯,很棒,逻辑没变。代码精简了。
原理
这是因为逻辑与(表达式1&&表达式2
)有短路
的功能,当前一个表达式为假的话,整个表达式的结果也就是假的了,程序不会就再去判断后面的表达式了。而是直接执行下一条语句,或者后面的表达式被短路
掉了。