JavaScript是否内置可直接返回传入参数的恒等函数?
JavaScript 有没有内置的恒等函数?
首先明确:ECMAScript 标准中没有内置的通用恒等函数——也就是那种接收任意类型参数、直接返回原参数(不做类型转换或复制)的函数。你自己实现的x => x或者函数声明形式,就是最直接的解决方案。
关于你担心的内存问题
这种极简的箭头函数内存占用可以说是微乎其微,现代 JavaScript 引擎会对这类简单函数做优化,完全不需要担心它会造成额外的性能负担。
为什么不能用Boolean/Number等构造函数?
这些内置构造函数会对输入做类型转换,并非直接返回原参数:
- 比如
Boolean(0)返回false,而不是原参数0; Number('123')返回数值123,而非原字符串'123';
它们不符合你“直接返回传入参数”的需求。
针对你的使用场景
如果是在布尔数组中检查是否存在true,arr.some(x => x)完全可行——因为布尔数组的元素只有true或false,回调直接返回元素本身,效果和arr.some(Boolean)一致。但如果你需要严格检查是否存在**严格等于true**的值(比如数组里可能有其他真值的情况),应该用arr.some(val => val === true)。
内容的提问来源于stack exchange,提问作者Plantt
相关产品推荐
相关产品推荐

