一、变量声明

  • 多个变量的声明,可以简写
// 非效率写法
let x;
let y;
let z = 520; // 效率写法
let x, y, z = 520;

二、三元运算符

  • 在条件判断时,可以使用三元运算符增加效率
let num1 = 520;
let num2 = 1314; // 非效率写法
if (num1 > num2) {
// ...
} else {
// ...
} // 效率写法
let result = num1 > num2 ? true : false;

三、解构赋值

  • 变量赋值
let a, b, c;

// 非效率写法
a = 1;
b = 2;
c = 3; // 效率写法
let [a, b, c] = [1, 2, 3];

四、解构交换

  • 交换两个变量
let x = '极客飞兔', y = '程序员';

// 非效率写法
const temp = x;
x = y;
y = temp; // 效率写法
[x, y] = [y, x];

五、箭头函数

  • 函数的简写方式
// 非效率写法
function add(num1, num2) {
return num1 + num2;
} // 效率写法
const add = (num1, num2) => num1 + num2;

六、字符串模版

// 非效率写法
console.log('极客飞兔的年龄 ' + age + ' 他的身高 ' + height); // 效率写法
console.log(`极客飞兔的年龄 ${age} 他的身高 ${height}`);

七、多值匹配

  • 判断某个值是否等于某个多个值中的一个
// 非效率写法
if (value === 1 || value === '飞兔' || value === 2 || value === '程序员') {
// ...
} // 效率写法一
if ([1, '飞兔', 2, '程序员'].indexOf(value) >= 0) {
// ...
} // 效率写法二
if ([1, '飞兔', 2, '程序员'].includes(value)) {
// ...
}

八、ES6对象简写

let firstname = '极客';
let lastname = '飞兔'; // 非效率写法
let userinfo = {firstname: firstname, lastname: lastname}; // 效率写法
let userinfo = {firstname, lastname};

九、字符串转数字

// 非效率写法
let total = parseInt('520');
let average = parseFloat('13.14'); // 效率写法
let total = +'520';
let average = +'13.14';

十、次方相乘

// 非效率写法
const power = Math.pow(2, 5); // 效率写法
const power = 2**5;

十一、数组合并

let arr1 = [520, 1314];

// 非效率写法
let arr2 = arr1.concat([1225, 1115]); // 效率写法
let arr2 = [...arr1, 1225, 1115];

十二、查找数组最大值最小值

const arr = [520, 1314, 1115, 1225];

// 效率写法
Math.max(...arr);
Math.min(...arr);

十三、获取字符串字符

let str = 'https://autofelix.blog.csdn.net/';

// 非效率写法
str.charAt(10); // 效率写法
str[10];

十四、并&&操作

function fn() {
return true;
} let flag = true; // 非效率写法
if (flag) {
fn();
} // 效率写法
flag && fn();

十五、数组排序

const arr = [40, 2, 1, 5, 99, 111];

// 从小到大
arr.sort((a, b) => a - b); // [1, 2, 5, 40, 99, 111] // 从大到小
arr.sort((a, b) => b - a); // [111, 99, 40, 5, 2, 1]

十六、数组过滤

  • 从数组中过滤假数值
const arr = [3, '1', '', 0, false, null, undefined];

arr.filter(Boolean); // [3, '1']

十七、for循环

let arr = ['极客飞兔', 520, 1314, '程序员']

// 非效率写法
for (var i = 0; i < arr.length; i++) {} // 效率写法
for (const i in arr) {}
// 效率写法
for (const i of arr) {}

十八、判断奇偶

  • 使用& 1 判断奇偶数
// 非效率写法
if(value / 2 == 0) {
// 是偶数
} else {
// 是奇数
} // 效率写法
2 & 1; // 0 返回0表示偶数
3 & 1; // 1 返回1表示奇数

十九、数组去重

const array  = [5,4,7,8,9,2,7,5];

// 效率的两种写法
array.filter((item,idx,arr) => arr.indexOf(item) === idx);
const nonUnique = [...new Set(array)];

二十、IF检查

// 非效率写法
if (result === true) // 效率写法
if (result)

二十一、合并对象

const user = {
name: '极客飞兔',
gender: '男'
}; const college = {
primary: '清华大学',
secondary: '社会大学'
}; const skills = {
java: 'JAVA',
php: 'PHP',
python: 'PYTHON'
}; const summary = {...user, ...college, ...skills};

二十二、可选链

const user = {
employee: {
name: "极客飞兔"
}
}; // 可选链
user.employee?.name;
user.employ?.name;
user.employ.name;

二十三、字符串重复

// 非效率写法
let str= '';
for(let i = 0; i < 5; i ++) {
str+= 'autofelix ';
} // 效率写法
'autofelix '.repeat(5);

二十四、默认值

let user;
let name = getUserName(); // 非效率写法
if (name !== null && name !== undefined && name !== '') {
user = name;
} else {
user = '极客飞兔';
} // 效率写法
let user = getUserName() || '极客飞兔';

二十五、双波浪线运算符

// 非效率写法
const floor = Math.floor(6.8); // 6 // 效率写法
const floor = ~~6.8; // 6

二十六、移除对象属性

let obj = {x: 45, y: 72, z: 68, p: 98};

// 非效率写法
delete obj.x;
delete obj.p;
console.log(obj); // {y: 72, z: 68} // 效率写法
let {x, p, ...newObj} = obj;
console.log(newObj); // {y: 72, z: 68}

编程技巧│提高 Javascript 代码效率的技巧的更多相关文章

  1. 提高 JavaScript 开发效率的高级 VSCode 扩展!

    原文:提高 JavaScript 开发效率的高级 VSCode 扩展! 作者:前端小智 Fundebug经授权转载,版权归原作者所有. Quokka.js Quokka.js 是一个用于 JavaSc ...

  2. Android 你可能忽略的提高敲代码效率的方式

    Android 你可能忽略的提高敲代码效率的方式

  3. Android 你可能忽略的提高敲代码效率的方式 (转)

    每日推荐 Eyepetizer-in-Kotlin:一款简约的小视频app,带你走进kotlin 作为学习kotlin的一款app,在撸代码的过程中学习kotlin的语法及特性. Eyepetizer ...

  4. JS函数 编程练习 使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数。

    编程练习 使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数. 任务 第一步: 编写代码完成一个函数的定义吧. 第二步: 我们来补充函数体中的控制语句,完成函数功能吧. 提示: ...

  5. 巧妙利用函数的惰性载入提高javascript 代码性能

    在 javascript 代码中,因为各浏览器之间的行为的差异,我们经常会在函数中包含了大量的 if 语句,以检查浏览器特性,解决不同浏览器的兼容问题. 例如,我们最常见的为 dom 节点添加事件的函 ...

  6. 利用函数的惰性载入提高 javascript 代码性能

    在 javascript 代码中,因为各浏览器之间的行为的差异,我们经常会在函数中包含了大量的 if 语句,以检查浏览器特性,解决不同浏览器的兼容问题.例如,我们最常见的为 dom 节点添加事件的函数 ...

  7. 去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

    编程题很简单.整个试卷结构为: 一.问答题: 对前端的理解,了解哪些框架库? 二.在线编程题:身份证分组 如下第一道:身份证分组 三.在线编程题:身份证分组.统计字符.酒店价格(三选二) 如下第二三四 ...

  8. 如何提高JavaScript代码质量

    如何编写可维护的JavaScript代码 代码风格及规范 构建检查工具 jshint配置 http://jshint.com/docs/options/ http://www.cnblogs.com/ ...

  9. 五十个小技巧提高PHP执行效率(二)

    更详细具体的总结如下: 1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的 ...

随机推荐

  1. Divan and bitwise operations

    这是一道比较综合的数学题目,光是吧题目看懂就花了我好一会儿时间,先看看题目吧: 题目分析:对于m段给定连续段的或值,要求出n个数的序列子序列的异或值之和: 题解: 这道题,我们先不要把它当作一个数一个 ...

  2. 自定义制作SpringBoot启动图案

    自定义制作SpringBoot启动图案 一.首先在SpringBoot项目的resources的目录下新建banner.txt文件 二.自定义启动图案 自定义启动图案地址 三.将生成的图形复制粘贴到b ...

  3. XCTF练习题---MISC---适合作为桌面

    XCTF练习题---适合作为桌面 flag:flag{38a57032085441e7} 解题步骤: 1.观察题目,下载附件 2.拿到题目以后是一张图片,切换一下通道,发现一张二维码,使用QR进行翻译 ...

  4. 关于transform属性的一些理解

    3D transform transform进行动画演示时,是以元素的中心为基准点的,可以使用transform-origin改变元素转变的基准点. 所有的transform动作改变都会引起X.Y轴的 ...

  5. 探索ABP的EventHub解决方案

    在上一章中,我们构建了一个简单的全栈 Web 应用程序,我们已经看到了使用 ABP 框架开发应用的典型流程,在接下来,我们将使用 ABP 框架创建更高级的应用程序. 给出具有现实世界复杂性的例子并不容 ...

  6. django-rest-framework 基础三 认证、权限和频率

    django-rest-framework 基础三 认证.权限和频率 目录 django-rest-framework 基础三 认证.权限和频率 1. 认证 1.1 登录接口 1.2 认证 2. 权限 ...

  7. 操作系统实现-loader

    博客网址:www.shicoder.top 微信:18223081347 欢迎加群聊天 :452380935 大家好呀,终于我们到了操作系统的loader部分了,loader也是操作系统中最重要的一个 ...

  8. 【Java分享客栈】未来迈向高级工程师绕不过的技能:JMeter压测

    前言 因为工作需要,久违的从自己的有道云笔记中去寻找压测相关的内容,翻开之后发现还不错,温故一遍后顺便整理出来分享给大家. 题外话,工作8年多,有道云笔记不知不觉都6G多了,扫一眼下来尽是云烟过往,竟 ...

  9. 力扣算法JS LC 59-螺旋矩阵2,LC 152-乘积最大子数组

    LC 59-螺旋矩阵2 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix . 示例 1: 输入:n = 3输出:[[1,2 ...

  10. 872. Leaf-Similar Trees - LeetCode

    Question 872. Leaf-Similar Trees Solution 题目大意: 如果两个二叉树的叶子节点相同就认为这两个二叉树相似.给两个二叉树判断是否相似. 思路: 用递归把两个二叉 ...