399 字
2 分钟
JavaScript的一些奇淫小技巧
前言
JavaScript是一门强大的编程语言,它不仅被用来开发前端,也在后端中扮演着重要的角色。作为用途如此广泛的语言,怎能没有一些小技巧呢?
本篇记录了本人在编程过程中发现的一些奇淫技巧和一些易错点(其实大部分是问ai得知的),希望对大家有帮助~
正片开始
-
关于扩展运算符(
...)- 基本
const a = [1, 2, 3];const b = [4, 5, 6];const merged = [...a, ...b];//传参const lst = [1,2,3]f(...lst)- 将字符串转换为字符数组
const str = "hello";const chars = [...str]; // ['h', 'e', 'l', 'l', 'o']- 用于赋值
const { a, b, ...newDict } = dict; // newDict为dict去除a和b后的对象//数组中同理 -
可选链操作符(
?.)const dict = {a: 'b'};console.log(dict?.a)等效于
if('a' in dict)console.log(dict.a)elseconsole.log(undefined) -
一些
赋值操作- 基本
const a = null;const b = a ?? 'default'; //如果a为null或undefined,b为'default'const b = a || 'default';const b = a ? a : 'default';//这三行效果相同console.log(b); // 'default'- 同理
let user = { name: "test", age: 0 };user.age ??= 18;user.score ??= 100;//{name: "test", age: 0, score: 100}等效于
user.age = user.age || 18;user.score = user.score || 100;又或者
user.age = user.age ? user.age : 18;user.score = user.score ? user.score : 100; -
关于
对象- p判断是否为对象
typeof obj === 'object' && obj!== null // 排除null的情况- 动态创建对象属性
const key = 'name';const value = 'John';const obj = { [key]: value };console.log(obj); // { name: 'John' }
结语
差不多就是这样,更多技巧待我后续补充~
JavaScript的一些奇淫小技巧
https://w.r-z.top/posts/nifty-of-javascript/