欢迎来到 南充市某某软件开发培训中心
全国咨询热线:020-123456789
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
适合初学者的 10 个JavaScript 代码整洁技巧
  来源:南充市某某软件开发培训中心  更新时间:2024-05-03 22:23:49

适合初学者的 10 个JavaScript 代码整洁技巧

适合初学者的 10 个JavaScript 代码整洁技巧

什么是整洁的代码呢 ?答案可能因人而异 ,个人提倡以函数式风格编写代码,初学如果做得正确的码整话 ,代码将更容易阅读、洁技分解和测试 。适合在开始函数式编程之前 ,初学学习一些小的码整技巧有助于编写整洁的代码 。最好的洁技方式是阅读开源项目,学习别人的适合方式。对于JavaScript ,初学ES6 引入了许多新的码整特性 ,也使得写代码多一种更加优雅的洁技方式。

1. 数组合并

// 常规逻辑nconst apples = ["",适合 ""];nconst fruits = ["", "", ""].concat(apples);nnconsole.log(fruits); // ["", "", "", "", ""];nn// 优雅写法 1nconst apples = ["", ""];nconst fruits = ["", "", "", ...apples];nnconsole.log(fruits); // ["", "", "", "", ""];nn// 优雅写法 2nconst apples = ["", ""];nconst fruits = [...apples, "", "", ""];nconsole.log(fruits); // ["", "", "", "", ""];nn// 优雅去重nconst apples = ["", "", ""];nconst fruits = [...new Set(["", "", "", "", ...apples])];nconsole.log(fruits); // [ '', '', '', '', '' ]n

2. 数组中取值

// 常规逻辑nconst apples = ["", ""];nconst redApple = apples[0];nconst greenApple = apples[1];nnconsole.log(redApple); // nconsole.log(greenApple); // ;nn// 优雅写法nconst apples = ["", ""];nconst [redApple, greenApple] = apples; // 使用解构赋值nnconsole.log(redApple); // nconsole.log(greenApple); // ;n

3. 对象取值

// 常规逻辑nconst user = { n name: "DevPoint",n age: 30,n};nnconst name = user.name; // DevPointnconst age = user.age; // 30nconsole.log(name);nconsole.log(age);nn// 优雅写法nconst user = { n name: "DevPoint",n age: 30,n};nnconst { name, age } = user;nnconsole.log(name); // DevPointnconsole.log(age); // 30n

4. 数组循环

// 常规逻辑nconst fruits = ["", "", "", ""];nnfor (let i = 0; i < fruits.length; i++) { n console.log(fruits[i]);n}nn// 优雅写法nconst fruits = ["", "", "", ""];nnfor (fruit of fruits) { n console.log(fruit);n}n

5. 箭头函数作为回调

// 常规逻辑nconst fruits = ["", "", "", ""];nnfruits.forEach(function (fruit) { n console.log(fruit);n});nn// 优雅写法nconst fruits = ["", "", "", ""];nfruits.forEach((fruit) => console.log(fruit));n

6. 数组搜索

假设需要通过一个对象的属性从一个对象数组中查找一个对象,通常使用 for 循环:

// 常规逻辑nconst inventory = [n { name: "Bananas",初学 quantity: 5 },n { name: "Apples", quantity: 10 },n { name: "Grapes", quantity: 2 },n];nn// Get the object with the name `Apples` inside the arraynfunction getApples(arr, value) { n for (let index = 0; index < arr.length; index++) { n if (arr[index].name === "Apples") { n return arr[index];n }n }n}nnconst result = getApples(inventory);nconsole.log(result); // { name: 'Apples', quantity: 10 }nn// 优雅写法nconst inventory = [n { name: "Bananas", quantity: 5 },n { name: "Apples", quantity: 10 },n { name: "Grapes", quantity: 2 },n];nnfunction getApples(arr, value) { n return arr.find((obj) => obj.name === "Apples");n}nnconst result = getApples(inventory);nconsole.log(result);n

7.字符串转换为数字

// 常规逻辑nconst num = parseInt("10");nnconsole.log(num); // 10nconsole.log(typeof num); // "number";nn// 优雅写法nconst num = +"10";nconsole.log(num); //=> 10nconsole.log(typeof num); // "number"nconsole.log(+"10" === 10); // true;n

同样的方法可以用于判断是否为整数:

const isInteger = (val) => Number.isInteger(+val);nconsole.log(isInteger("DevPoint")); // falsenconsole.log(isInteger("30")); // truenconsole.log(isInteger(30)); // truen

8. null 值初始化

// 常规逻辑nfunction getUserRole(role) { n let userRole;n if (role) { n userRole = role;n } else { n userRole = "USER";n }n return userRole;n}nnconsole.log(getUserRole()); // "USER"nconsole.log(getUserRole("ADMIN")); // "ADMIN";nn// 优雅写法nfunction getUserRole(role) { n return role || "USER"; // 默认值定义的常见方法n}nnconsole.log(getUserRole()); // "USER"nconsole.log(getUserRole("ADMIN")); // "ADMIN";n

9. 字符串拼接

过去无尽的 + 号 ,再加上一些排版就更痛苦  。码整

// 常规逻辑nconst name = "DevPoint";nconst message = "Hi " + name + "!";nconsole.log(message); // Hi DevPoint!n// 优雅写法nconst name = "DevPoint";nconst message = `Hi ${ name}!`;nconsole.log(message); // Hi DevPoint!n

10 对象合并

// 常规逻辑nconst employee = { name: "DevPoint", age: 30 };nconst salary = { grade: "A" };nconst summary = salary;nfor (const key in employee) { n summary[key] = employee[key];n}nconsole.log(summary); // { grade: 'A', name: 'DevPoint', age: 30 }n// 优雅写法nconst employee = { name: "DevPoint", age: 30 };nconst salary = { grade: "A" };nconst summary = { ...employee, ...salary };nconsole.log(summary); // { name: 'DevPoint', age: 30, grade: 'A' }


作者 :天行无忌
链接 :https://juejin.cn/post/7111302214945079310


友情链接王者荣耀S22上分技巧 s22新赛季怎么快速上分方法:LOL美测服登入出现网络错误/卡加载界面进不去/无法载入DNF异界气息净化书如何获取-异界气息净化书获得方法《DNF》剑宗带苍穹钝器还是巨剑好 剑宗苍穹钝器和苍穹巨剑对比原创王一博,真的别演戏了!整容痕迹在镜头下暴露了无数次英雄联盟手游ez无限火力出装天赋符文加点攻略PVP才是男人的浪漫光遇秘密花园冥想点在哪里?光遇秘密花园冥想位置介绍入学年份时间计算器(小学入学年份时间计算器)王者云缨新皮肤多少钱,王者荣耀云缨新皮肤实锤玛雅天赋十三月亮历之黄太阳:人生没有白走的路《DNF》剑宗带苍穹钝器还是巨剑好 剑宗苍穹钝器和苍穹巨剑对比阴阳师现世召唤怎么弄才能获得ssr(阴阳师现世召唤怎么得到)《DNF》米娅里克特在哪 米娅里克特位置介绍wlkzs练级天赋加点推荐 魔兽世界wlk战士练级天赋点什么DNF银月职业资料专题 备战革斗新生那些CSGO中再也得不到的物品——地图硬币,大行动挑战币,冠军奖牌......《LOL》绽灵节活动一览介绍_《LOL》绽灵节活动一览是什么《DNF》各职业哈林史诗武器选择《dnf》锻造失败结果介绍《CF》火麒麟能量核心宝箱Ⅱ抽奖技巧 怎么开出永久能量核心皮肤炉石传说暴雪30周年纪念典藏礼包内容介绍三国杀姜维武将人物介绍与技能分析十大可以挂机的网络游戏2022 可以挂机的手游网游盘点Server Error梦幻西游召唤兽技能怎么增加 梦幻召唤兽属性介绍[前瞻爆料]【韩服正式服5.26】职业平衡/减负更新仙剑1圆梦版安卓下载 仙剑1圆梦版最新版下载英雄联盟锁定视角是哪个键怎么关DOTA2新版本热门中单影魔 魔王回归问道手游鬼宠怎么升级-鬼宠升级方法LOL里隐藏着另一款游戏 这么多年你却一直没发现伊苏6修改器 v1.4.4dnftb6女漫游刷图加点 86版本tb6女漫游加点详细分析井盐、岩盐、海盐、低钠盐、无碘盐、粉盐这些特别的盐和普通食盐(精制盐)有什么区别?要怎么用更好?《DOTA2》你又送啦尊嘟假嘟语音包在哪买? 你又送啦尊嘟假嘟语音包购买方法梦幻西游: 进阶后的宝宝哪些好看 野生善恶永动机也实用英雄联盟EZ天赋怎么加点2023(伊泽瑞尔EZ天赋加点推荐)DNF:万圣节装扮纠结给哪个职业?这5个职业最为个性,优先考虑!【无敌版之小游戏大全】
联系我们

地址:联系地址联系地址联系地址

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.6299

Copyright © 2024 Powered by 南充市某某软件开发培训中心   sitemap