我为你收集了一系列有用的JavaScript技巧,让你的代码看起来更优雅、更专业。我希望你会喜欢!1.单行If-Else在JavaScript中,可以使用三元条件运算符来压缩if-else语句。例如:constage=10;letgroup;//LONGVERSIONif(age>=18){group="Adult";}else{group="Child";}//SHORTHANDVERSIONgroup=age>18?“成人”:“儿童”;请记住,此简写是为了简洁。只有当它清楚地使表达式更容易理解时才使用它。2.空合并空合并运算符??如果左侧为空,则返回右侧。否则,它返回左边的值。这很有用,因为它省略了冗长的if检查。空合并的语法是:someValue??defaultValue例如:letsomeValue;//LONGEREXPRESSIONif(someValue){console.log(someValue)}else{console.log("Nothingfound")}//SHORTHANDconsole.log(someValue??"Nothingfound")输出:NothingfoundNothingfound3.可选链接在JavaScript中,您可以使用点符号来访问对象的属性和方法。示例:fruit.color但是,如果您尝试访问未定义对象的属性,您将看到一个错误。为避免这种情况,您需要确保在访问其属性之前定义了该对象:constcolor=fruit&&fruit.color;但这看起来并不甜蜜。您可以通过在点符号之前添加问号来使用可选链接,如下所示:constcolor=fruit?.color;让我们看一个真实的JS对象的例子:conststudent={name:"Ann",age:22,address:{state:"California"},};//LONGFORMconsole.log(student&&student.address&&student.address.ZIPCode);//SHORTHANDconsole.log(student?.address?.ZIPCode);output:undefinedundefined4.将任何值转换为布尔值在JavaScript中,您可以将任何值转换为布尔值。这是因为,在幕后,JavaScript中的一切都是“真”或“假”。要将任何内容转换为布尔值,请使用双感叹号!!。例如:!!true//true!!2//true!![]//true!!"Test"//true!!false//false!!0//false!!""//false5,传播您可以使用扩展运算符...将一个数组的元素扩展到另一个数组。例如,让我们使用扩展运算符组合两个数字数组:constnums1=[1,2,3];constnums2=[4,5,6];//长格式letnewArray=nums1.concat(nums2);//短格式newArray=[...nums1,...nums2];在向数组添加元素时,您还可以将.push()方法替换为扩展运算符。例如:letnumbers=[1,2,3];//更长的FORMnumbers.push(4);numbers.push(5);//SHORTHANDnumbers=[...numbers,4,5];6.使用扩展操作你可以使用扩展操作符...来解构一个对象的剩余值。为了演示,让我们创建一个学生对象。让我们将name和age属性分配给变量,将其余属性分配给第三个变量:conststudent={name:"Matt",age:23,city:"Helsinki",state:"Finland",};//更长的形式constname=student.name;constage=student.age;constaddress={city:student.city,state:student.state};//SHORTHANDconst{name,age,...address}=student;7.从数组中删除重复项您可以通过将数组转换为集合,然后将集合中的值添加回数组来删除数组中的重复项。这是有效的,因为集合是项目的唯一集合。也就是说,你不能在一个集合中有两个相同的值。因此,将数组转换为集合会在后台删除重复项。例如:constnums=[1,1,1,1,3,4,5]constuniqueNums=[...newSet(nums)];这是实现其效果的另一种方法:constnums=[1,1,1,1,3,4,5]constuniqueNums=Array.from(newSet(nums))顺便说一句,如果你需要一个独特的集合项目,为什么不使用一套?8.短路求值中的&&运算符你是否使用if检查表达式求值是否为真?您可以使用短路&&运算符对速记进行同样的操作。例如:varready=true;functionaction(){console.log("Yeah");}//LONGEREXPRESSIONif(ready){action();}//SHORTHANDready&&action();output:YeahYeah9,embedthevalue您可以将变量用反引号括起来并使用${}将变量嵌入到字符串中。例如:constage=41;constsentence=我今年${age}岁;//结果:我41岁这些字符串有时被称为“类固醇字符串”。10.对象属性赋值如果希望对象键和值同名,可以省略对象字面量。例如:constname="Luis",city="Paris",age=43,food="Spaghetti";//LONGEREXPRESSIONletperson={name:name,city:city,age:age,food:food};//SHORTHANDperson={姓名、城市、年龄、食物};11.默认值在JavaScript中,你可以拥有一个带有默认参数值的函数。这样,您可以在提供或不提供参数值的情况下调用函数。让我们看一个例子://LONGEREXPRESSIONfunctionpick(fruit){if(fruit===undefined){console.log("IjustpickedupaMango");}else{console.log(`IjustpickedaMango${fruit}`);}}//SHORTHANDfunctionpick(fruit="Mango"){console.log(我刚捡了一个${fruit})}pick("菠萝");//->我拿起一个Pineapplepick();//->我拿起一个Mango12。一行变量声明您可以将变量声明合并到一行中,而不是每个声明使用一行。例如://更长的形式letname;letage;letfavoriteFood="Pizza";//SHORTHANDletname,age,favoriteFood="Pizza";13.使用Object.values()方法将一个对象的所有值存储为一个数组,收集到一个数组中。例如:constinfo={name:"Matt",country:"Finland",age:35};//LONGERFORMletdata=[];for(letkeyininfo){data.push(info[key]);}//简写constdata=Object.values(info);14.查找数组中的元素使用内置的find()方法查找符合特定条件的元素。例如:constfruits=[{type:"Banana",color:"Yellow"},{type:"Apple",color:"Green"}];//LONGERFORMletyellowFruit;for(leti=0;i
