欢迎来到 泰州市某某工业设备维修站
全国咨询热线:020-123456789
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
适合初学者的 10 个JavaScript 代码整洁技巧
  来源:泰州市某某工业设备维修站  更新时间:2024-04-30 01:45:56

适合初学者的 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


友情链接阴阳师红蛋招福达摩获取途径一览阴阳师手游现世召唤阵ssr图片大全 官方现世召唤图502 Bad Gateway原神枫丹鱼饵配方怎么获取 原神枫丹鱼饵配方获取攻略魔兽世界10.0生存猎天赋树加点推荐WLK前夕:屠魔药剂和敏捷力量卷轴将一文不值阿拉德战记-异次元裂缝1.57正式版 附隐藏英雄密码及攻略 魔兽防守地图阴阳师蓝票获得方法(勾玉蓝票获取途径汇总)最值得办的车主卡,非他莫属DNF阿修罗95刷图加点 95级阿修罗技能加点推荐阴阳师跳跳妹妹宠物狗叫什么-跳跳妹妹宠物狗名字分析魔兽世界9.05狂暴战天赋加点怎么选 wow9.05狂暴战天赋加点攻略热血精灵派战争女神赐福玩家必用攻略wepoker可以用挂吗(辅助开挂教程)-知乎贤医迷你世界种子大全 迷你世界地图种子代码一览最热门网页游戏 5355wan风云无双sf 领略魔渡众生魔兽世界6.0猎人宝宝推荐 魔兽世界6.0猎人宝宝图鉴大全蛇狙炼金方案范蠡助越王勾践打败吴国后,功成身退携西施隐姓埋名、泛舟五湖,成为富甲一方的商人,是否只是个美丽传说?2终极 3神话 1臻彩 28限定 21传说 59史诗 205皮肤 8炫彩 163英雄雪泥鸿爪 ---------看卷<苏轼十讲>有感《魔兽争霸3冰封王座》战役流程攻略 战役主线、支线及隐藏要素流程攻略英雄联盟88火炮配合什么 LOL云顶之弈狮子狗火炮流搭配推荐笔陡的意思和造句(笔陡的意思)炉石平衡调整后九职业卡组:德鲁伊登上宝座,古尔丹一落千丈!英雄联盟 赏金猎人出装指南与核心装备搭配魔兽世界TBC怀旧服猎人天赋加点推荐 兽王猎练级pve加点攻略装扮小屋魔兽世界 影踪突袭营声望提升秘籍DNF:预约刃影毕业史诗套应该刷的副本整理英雄联盟s10门票什么时候发售?英雄联盟s10门票在哪买?原神雪葬的银星怎么样,获得方法被遗忘的PKC DNF玩家点评决斗场第三赛季有多坑阴阳师座敷童子技能详解及御魂推荐dnf稀有装扮兑换券怎么获得2011中国游戏行业年会金手指奖获奖名单长期玩的变态网游私服(十大变态手游下载地址分享)魔兽世界10.0全精英怪位置及掉落物品lol12.14版本辅助寒冰玩法出装推荐
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.2234

Copyright © 2024 Powered by 泰州市某某工业设备维修站   sitemap