javascript简写常用的12个技巧(可以大大减少你的js代码量)


Posted in Javascript onMarch 28, 2020

前言

本文主要给大家分享了javascript简写常用的12个技巧,无论你是初学者还是资深人士,都值得一读!下面话不多说了,来一起看看详细的介绍:

1. 空(null, undefined)验证

当我们创建了一个新的变量,我们通常会去验证该变量的值是否为空(null)或者未定义(undefined)。这对于JavaScript编程来说,是一个经常要考虑到的验证。

如果直接写,像下面这样:

if (variable1 !== null || variable1 !== undefined || variable1 !== ''){
 let variable2 = variable1;
}

我们可以使用一个更加简洁的版本

let variable2 = variable1 || '';

如果你不信,可以在谷歌浏览器开发者模式下的控制台中试试!

//值为null的例子
let variable1 = null;
let variable2 = variable1 || '';
console.log(variable2);
//输出: ''
//值为undefined的例子
let variable1 = undefined;
let variable2 = variable1 || '';
console.log(variable2);
//输出: ''
//正常情况
let variable1 = 'hi there';
let variable2 = variable1 || '';
console.log(variable2);
//输出: 'hi there'

在这里要注意的是,你在调试完一组代码后要刷新下页面,或者定义不同的变量,不然会报错

不过三水点靠木小编更喜欢用下面的代码

if("undefined" != typeof downlm){ 
if(downlm=="soft"){ 
document.write('成功'); 
} 
}

判断downlm是否定义

2. 数组

这个好像比较简单!

非优化代码:

let a = new Array(); a[0] = "myString1"; a[1] = "myString2"; a[2] = "myString3";

优化代码:

let a = ["myString1", "myString2", "myString3"];

3. if true .. else 的优化

let big;
if (x > 10) {
big = true;
}
else {
big = false;
}

简化后:

let big = x > 10 ? true : false;

这是三目运算,当判断条件和结果都只有一个的时候可以使用。

极大的简化了代码量!

let big = (x > 10);
let x = 3,
big = (x > 10) ? "greater 10" : (x < 5) ? "less 5" : "between 5 and 10";
console.log(big); //"less 5"
let x = 20,
big = {true: x>10, false : x< =10};
console.log(big); //"Object {true=true, false=false}"

4. 变量声明

尽管JavaScript会自动讲变量上提(hoist),使用该方法可以讲所有的变量都在函数的头部用一行搞定。

优化钱:

let x;
let y;
let z = 3;

优化后:

let x, y, z=3;

5. 赋值语句的简化

简化前:

x=x+1;
minusCount = minusCount - 1;
y=y*10;

简化后:

x++;
minusCount --;
y*=10;

假设x=10,y=5,那么基本的算术操作可以使用如下的简写方式:

x += y // x=15
x -= y // x=5
x *= y // x=50
x /= y // x=2
x %= y // x=0

6. 避免使用RegExp对象

简化前:

var re = new RegExp("\d+(.)+\d+","igm"),
result = re.exrc("padding 01234 text text 56789 padding");
console.log(result);//"01234 text text 56789"

简化后:

var result = /d+(.)+d+/igm.exec("padding 01234 text text 56789 padding");
console.log(result); //"01234 text text 56789"

7. If 条件优化

简化前:

if (likeJavaScript === true)

简化后:

if (likeJavaScript)

我们再来个判断非真的例子:

let c;
if ( c!= true ) {
// do something...
}

简化后:

let c;
if ( !c ) {
// do something...
}

9. 函数参数优化

我个人倾向于使用获取对象元素的方式来访问函数参数,当然这个见仁见智啦!

通常使用的版本:

function myFunction( myString, myNumber, myObject, myArray, myBoolean ) {
// do something...
}
myFunction( "String", 1, [], {}, true );

我喜欢的版本:

function myFunction() {
/* 注释部分
console.log( arguments.length ); // 返回 5
for ( i = 0; i < arguments.length; i++ ) {
console.log( typeof arguments[i] ); // 返回 string, number, object, object, boolean
}
*/
}
myFunction( "String", 1, [], {}, true );

译者注:原文下方有评论表示不建议用楼主的方法,使用第一种方法函数参数的顺序是可以变动的,第二种你就要小心了。

10. charAt()的替代品

简化前:

"myString".charAt(0);

简化后:

"myString"[0];//返回'm'

译者注:我相信用第一种方法的人已经不多了吧!

11. 函数调用还可以更短

简化前:

function x() {console.log('x')};function y() {console.log('y')};
let z = 3;
if (z == 3)
{
x();
} else
{
y();
}

简化后:

function x() {console.log('x')};function y() {console.log('y')};let z = 3;
(z==3?x:y)();

12. 如何优雅的表示大数字

在JavaScript中,有一个简写数字的方法,也许你忽略了。1e7表示10000000。

简化前:

for (let i = 0; i < 10000; i++) {

简化后:

for (let i = 0; i < 1e7; i++) {

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

译者:Fundebug

译文:http://www.cnblogs.com/fundeb...

原文:https://hackernoon.com/12-ama...

Javascript 相关文章推荐
javascript 面向对象 function类
May 13 Javascript
JavaScript中几种常见排序算法小结
Feb 22 Javascript
java与javascript之间json格式数据互转介绍
Oct 29 Javascript
写JQuery插件的基本知识
Nov 25 Javascript
javascript实现依次输入input自动定焦
Dec 23 Javascript
js操作XML文件的实现方法兼容IE与FireFox
Jun 25 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
Oct 24 Javascript
Bootstrap模态框案例解析
Mar 05 Javascript
Webpack执行命令参数详解
Jun 17 Javascript
详谈innerHTML innerText的使用和区别
Aug 18 Javascript
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
部署vue+Springboot前后端分离项目的步骤实现
May 31 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
Aug 11 #Javascript
Vue.js仿微信聊天窗口展示组件功能
Aug 11 #Javascript
Node.js服务器开启Gzip压缩教程
Aug 11 #Javascript
JS SetInterval 代码实现页面轮询
Aug 11 #Javascript
IScroll5实现下拉刷新上拉加载的功能实例
Aug 11 #Javascript
详谈JS中数组的迭代方法和归并方法
Aug 11 #Javascript
原生js 封装get ,post, delete 请求的实例
Aug 11 #Javascript
You might like
PHP中的类-什么叫类
2006/11/20 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
js变量提升深入理解
2016/09/16 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
微信小程序设置滚动条过程详解
2019/07/25 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
Python内建模块struct实例详解
2018/02/02 Python
Python pymongo模块常用操作分析
2018/09/01 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
python3下载抖音视频的完整代码
2019/06/05 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
Python中bisect的用法及示例详解
2020/07/20 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
一款纯css3实现的竖形二级导航的实例教程
2014/12/11 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
大学生学业生涯规划
2014/01/05 职场文书
文员岗位职责范本
2014/03/08 职场文书
土地转让协议书
2014/04/15 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
员工考勤管理制度
2015/08/06 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
Python打包为exe详细教程
2021/05/18 Python
spring boot实现文件上传
2022/08/14 Java/Android