提高javascript开发速度和效率的20个小技巧

提高javascript开发速度和效率在平时开发中位于一个很重要的地方,本篇文章给大家介绍一些日常任务中使用起来方便且实用的方法和小技巧,减少代码行数,提高工作效率,增加摸鱼时间。

提高javascript开发速度和效率的20个小技巧

在我们的日常任务中,我们需要编写函数,如排序、搜索、寻找惟一值、传递参数、交换值等,所以在这里分享一下我工作多年珍藏的几个常用技巧和方法,以让大家增加摸鱼的时间。【相关推荐:javascript学习教程

这些方法肯定会帮助你:

减少代码行Coding Competitions增加摸鱼的时间

1、声明和初始化数组

立即学习“Java免费学习笔记(深入)”;

我们可以使用特定的大小来初始化数组,也可以通过指定值来初始化数组内容,大家可能用的是一组数组,其实二维数组也可以这样做,如下所示:

const array = Array(5).fill(''); // 输出(5) ["", "", "", "", ""]const matrix = Array(5).fill(0).map(() => Array(5).fill(0))// 输出(5) [Array(5), Array(5), Array(5), Array(5), Array(5)]0: (5) [0, 0, 0, 0, 0]1: (5) [0, 0, 0, 0, 0]2: (5) [0, 0, 0, 0, 0]3: (5) [0, 0, 0, 0, 0]4: (5) [0, 0, 0, 0, 0]length: 5

登录后复制

2、求和,最小值和最大值

我们应该利用 reduce 方法快速找到基本的数学运算。

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

登录后复制

求和

array.reduce((a,b) => a+b);// 输出: 35

登录后复制

最大值

array.reduce((a,b) => a>b?a:b);// 输出: 9

登录后复制

最小值

array.reduce((a,b) => a

3、排序字符串,数字或对象等数组

我们有内置的方法sort()和reverse()来排序字符串,但是如果是数字或对象数组呢

字符串数组排序

const stringArr = ["Joe", "Kapil", "Steve", "Musk"]stringArr.sort();// 输出(4) ["Joe", "Kapil", "Musk", "Steve"]stringArr.reverse();// 输出(4) ["Steve", "Musk", "Kapil", "Joe"]

登录后复制

数字数组排序

const array  = [40, 100, 1, 5, 25, 10];array.sort((a,b) => a-b);// 输出(6) [1, 5, 10, 25, 40, 100]array.sort((a,b) => b-a);// 输出(6) [100, 40, 25, 10, 5, 1]

登录后复制

对象数组排序

const objectArr = [     { first_name: 'Lazslo', last_name: 'Jamf'     },    { first_name: 'Pig',    last_name: 'Bodine'   },    { first_name: 'Pirate', last_name: 'Prentice' }];objectArr.sort((a, b) => a.last_name.localeCompare(b.last_name));// 输出 (3) [{…}, {…}, {…}]0: {first_name: "Pig", last_name: "Bodine"}1: {first_name: "Lazslo", last_name: "Jamf"}2: {first_name: "Pirate", last_name: "Prentice"}length: 3

登录后复制

4、从数组中过滤到虚值

像 0, undefined, null, false, "", ''这样的假值可以通过下面的技巧轻易地过滤掉。

const array = [3, 0, 6, 7, '', false];array.filter(Boolean);// 输出(3) [3, 6, 7]

登录后复制

5、使用逻辑运算符处理需要条件判断的情况

function doSomething(arg1){     arg1 = arg1 || 10; // 如果arg1没有值,则取默认值 10}let foo = 10;  foo === 10 && doSomething(); // 如果 foo 等于 10,刚执行 doSomething();// 输出: 10foo === 5 || doSomething();// is the same thing as if (foo != 5) then doSomething();// Output: 10

登录后复制

6、去除重复值

const array  = [5,4,7,8,9,2,7,5];array.filter((item,idx,arr) => arr.indexOf(item) === idx);// orconst nonUnique = [...new Set(array)];// Output: [5, 4, 7, 8, 9, 2]

登录后复制

7、创建一个计数器对象或 Map

大多数情况下,可以通过创建一个对象或者Map来计数某些特殊词出现的频率。

let string = 'kapilalipak';const table={}; for(let char of string) {  table[char]=table[char]+1 || 1;}// 输出{k: 2, a: 3, p: 2, i: 2, l: 2}

登录后复制

或者

const countMap = new Map();  for (let i = 0; i  2, "a" => 3, "p" => 2, "i" => 2, "l" => 2}

登录后复制

8、三元运算符很酷

function Fever(temp) {    return temp > 97 ? 'Visit Doctor!'      : temp 

9、循环方法的比较

登录后复制for 和 for..in 默认获取索引,但你可以使用arr[index]。for..in也接受非数字,所以要避免使用。forEach, for…of 直接得到元素。forEach 也可以得到索引,但 for…of 不行。

10、合并两个对象

const user = {  name: 'Kapil Raghuwanshi',  gender: 'Male'  };const college = {  primary: 'Mani Primary School',  secondary: 'Lass Secondary School'  };const skills = {  programming: 'Extreme',  swimming: 'Average',  sleeping: 'Pro'  };const summary = {...user, ...college, ...skills};// 合并多个对象gender: "Male"name: "Kapil Raghuwanshi"primary: "Mani Primary School"programming: "Extreme"secondary: "Lass Secondary School"sleeping: "Pro"swimming: "Average"

登录后复制

11、箭头函数

箭头函数表达式是传统函数表达式的一种替代方式,但受到限制,不能在所有情况下使用。因为它们有词法作用域(父作用域),并且没有自己的this和argument,因此它们引用定义它们的环境。

const person = {name: 'Kapil',sayName() {    return this.name;    }}person.sayName();// 输出"Kapil"

登录后复制

但是这样:

const person = {name: 'Kapil',sayName : () => {    return this.name;    }}person.sayName();// Output"

登录后复制

12、可选的链

const user = {  employee: {    name: "Kapil"  }};user.employee?.name;// Output: "Kapil"user.employ?.name;// Output: undefineduser.employ.name// 输出: VM21616:1 Uncaught TypeError: Cannot read property 'name' of undefined

登录后复制

13、洗牌一个数组

利用内置的Math.random()方法。

const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];list.sort(() => {    return Math.random() - 0.5;});// 输出(9) [2, 5, 1, 6, 9, 8, 4, 3, 7]// 输出(9) [4, 1, 7, 5, 3, 8, 2, 9, 6]

登录后复制

14、双问号语法

const foo = null ?? 'my school';// 输出: "my school"const baz = 0 ?? 42;// 输出: 0

登录后复制

15、剩余和展开语法

function myFun(a,  b, ...manyMoreArgs) {   return arguments.length;}myFun("one", "two", "three", "four", "five", "six");// 输出: 6

登录后复制

const parts = ['shoulders', 'knees']; const lyrics = ['head', ...parts, 'and', 'toes']; lyrics;// 输出: (5) ["head", "shoulders", "knees", "and", "toes"]

登录后复制

16、默认参数

const search = (arr, low=0,high=arr.length-1) => {    return high;}search([1,2,3,4,5]);// 输出: 4

登录后复制

17、将十进制转换为二进制或十六进制

const num = 10;num.toString(2);// 输出: "1010"num.toString(16);// 输出: "a"num.toString(8);// 输出: "12"

登录后复制

18、使用解构来交换两个数

let a = 5;let b = 8;[a,b] = [b,a][a,b]// 输出(2) [8, 5]

登录后复制

19、单行的回文数检查

function checkPalindrome(str) {  return str == str.split('').reverse().join('');}checkPalindrome('naman');// 输出: true

登录后复制

20、将Object属性转换为属性数组

const obj = { a: 1, b: 2, c: 3 };Object.entries(obj);// Output(3) [Array(2), Array(2), Array(2)]0: (2) ["a", 1]1: (2) ["b", 2]2: (2) ["c", 3]length: 3Object.keys(obj);(3) ["a", "b", "c"]Object.values(obj);(3) [1, 2, 3]

登录后复制

更多编程相关知识,请访问:编程入门!!

以上就是提高javascript开发速度和效率的20个小技巧的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2711179.html

(0)
上一篇 2025年3月7日 21:00:52
下一篇 2025年2月24日 12:27:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 浅谈JavaScript中遍历数组和对象的几种常用方法

    数组和对象在各种编程语言中都充当着至关重要的角色,本篇文章给大家介绍一下javascript中常用数组遍历、对象遍历的方法和各方法间的差异,以及使用时的注意事项。 数组遍历 随着 JS  的不断发展,截至 ES7 规范已经有十多种遍历方法。…

    2025年3月7日
    200
  • javascript怎么实现禁止缩放

    javascript实现禁止缩放的方法:1、设置对应浏览器的启动参数来禁止用户缩放页面;2、设置meta来禁止用户缩放页面;3、通过js监听来禁止用户缩放页面;4、禁用“ontouchmove”事件;5、通过多点触摸手势库实现。 本文操作环…

    2025年3月7日
    200
  • javascript怎么去掉标签

    javascript去掉标签的方法:首先创建一个相应的代码文件;然后通过“function delHtmlTag(str){…}”方法去掉所有html标记即可。 本文操作环境:windows7系统、javascript1.8.5…

    2025年3月7日
    200
  • javascript怎么设置radio

    javascript设置radio的方法:首先找到js代码部分;然后通过“if(data.isDefault==1){…}”方法设置radio选中即可。 本文操作环境:windows7系统、javascript1.8.5版、De…

    2025年3月7日
    200
  • JavaScript怎么实现鼠标追随

    JavaScript实现鼠标追随的方法:1、设置“evt || window.event;”;2、创建“function(evt)”;3、创建“document.body.scrollTop;”;4、把鼠标的当前位置赋值给元素的位置值即可。…

    2025年3月7日
    200
  • javascript怎么传参数

    javascript传参数的方法:首先创建一个相应的js文件;然后通过“function alertInfo(name, age, home, friend) {…}”实现传参即可。 本文操作环境:windows7系统、java…

    2025年3月7日
    200
  • javascript怎么设置全选

    javascript设置全选的方法:首先创建一个HTML示例文件;然后添加script标签并创建js代码;最后通过循环遍历每个checkbox对象,将其checked属性设置为true实现全选功能即可。 本文操作环境:windows7系统、…

    2025年3月7日
    200
  • 什么是并发控制?JavaScript中如何实现并发控制?

    在日常开发过程中,你可能会遇到并发控制的场景,比如控制请求并发数。那么在 JavaScript 中如何实现并发控制呢?在回答这个问题之前,我们来简单介绍一下并发控制。 假设有 6 个待办任务要执行,而我们希望限制同时执行的任务个数,即最多只…

    2025年3月7日 编程技术
    200
  • JavaScript中怎么求两个数的最小值

    在JavaScript中,可以使用Math对象的min()方法来求两个数的最小值,该方法可返回一个或多个数字中带有最小值的数字;语法格式“min(x1,x2)”,参数x1、x2必须是数值。 本教程操作环境:windows7系统、javasc…

    2025年3月7日
    200
  • 如何定义一个javascript函数

    javascript定义函数的方法:1、使用“function 函数名(参数列表){执行代码}”语句;2、使用“var 变量名=function(参数列表){执行代码}”语句;3、使用“文档对象.事件=function(){函数体}”语句。…

    2025年3月7日
    200

发表回复

登录后才能评论