欢迎来到 中山市某某消防设备制造厂
全国咨询热线:020-123456789
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

新闻中心
适合初学者的 10 个JavaScript 代码整洁技巧
  来源:中山市某某消防设备制造厂  更新时间:2024-04-30 14:53:59

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


友情链接张宁从网红打成CBA首发后卫用两年!王少杰这三年一点进步都没有凌晨0点,欧冠抽签!巴黎+巴萨最差分组出炉,将诞生2大死亡之组(体育)羽毛球——新加坡公开赛:辛杜晋级女单决赛曼城旧将:曼城不会引进内马尔,他是个好球员但瓜帅不需要他8-26 足坛转会新闻早知道又到“画大饼”时间了!泰山队MVP只剩4个月合同,郝伟却离不开他网友:在约基奇和恩比德前最尊敬考辛斯 帕金斯:我的神呐意媒:德佩的薪资要求是米利克的二倍,尤文认为签他成本太高实况足球|金球传奇 七大中锋盘点,新引擎变更后战斗力如何?可圈可点!怀斯曼全场6中4贡献14分7板2助1帽 正负值+2全队最高7-2!中国男足扬威海外,半场轰进6球,18岁新星大演帽子戏法曼联滕哈赫的调整很成功艰难赢下本场与利物浦的比赛傅达仁安乐死的最后时刻:左边是大老婆,右边是儿子和小老婆3-3,德布劳内传球失误,哈兰德造点+马赫雷斯绝平,曼城逼平巴萨韩国记者亚洲杯手记:击败中国男篮得感谢队医买的樱桃……国际足坛:红军9球狂胜平纪录 哈兰德戴帽曼城大逆转大连人解禁前就许诺为曼巴在中超找下家,新援到队尚需磨合克雷-汤普森告诉网友想拿5冠禁赛1年+罚款20万!收外援最大罚单,多拉多可能提前离开中超没想到我会日语吧😂姆巴佩感谢记者祝福,使用日语答复谢谢4-3绝杀日本张本美和,中国17岁小将4-0横扫,张本终结者无奈出局意甲最新转会动态(8.27)(体育·图文互动)成为职业球员也要参加“会考”——探寻“大巴黎”足球与育人并重的青训理念曼联滕哈赫的调整很成功艰难赢下本场与利物浦的比赛2022年亚足联杯越南输给缅甸,越南女队空手而归(田径世锦赛)(5)克里夺得男子百米冠军恒大跌倒,郜林吃饱,前恒大球星出售豪宅:1.45亿丹布罗西奥:卢卡库带着牺牲精神回归,希望什克别走三场小组赛过后,简单谈谈中国队的表现及感想苏炳添透露未进决赛原因2022年亚足联杯越南输给缅甸,越南女队空手而归罗德里格斯对扎比特的引退感到难过清华大学夺得CUBA北区冠军队长爆料:赫尔辛堡前场5人伤停、大田市民接连引援……官方:流浪者签下21岁沙尔克边锋马通多,据悉转会费约300万欧田径锦标赛,苏神首秀晋级半决,第一名9.79秒3-1!35岁巴萨旧将炸裂输出:12分钟造2球,穆里尼奥看走眼?威少让你想到什么?马刺9号秀索汉脱口而出“打铁”24岁的阿根廷天才后卫!曾因失误让梅西失望,巴萨想花3000万买他达文森-桑切斯:英超是最好联赛,想与最好球员竞争就要留在这
联系我们

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

电话:020-123456789

传真:020-123456789

邮箱:admin@aa.com

0.2447

Copyright © 2024 Powered by 中山市某某消防设备制造厂   sitemap