这篇文章介绍了 34 个实用的 JavaScript 代码片段,涵盖数组操作、逻辑运算、数字操作、对象操作、字符串操作、浏览器操作等方面的技巧,还包括良好的编码习惯,如使用解构、类型转换等,掌握这些能提升开发效率和代码质量。
作为一名 JavaScript 开发者,你是否也曾被繁琐的代码、重复的劳动困扰?
想要更高效地开发,写出更简洁的代码,你需要掌握一些实用的技巧和工具。本文将带你领略 JavaScript 代码片段中的常见技巧,助你提升开发效率,打造更优雅的应用!
数组操作:高效处理数据集合 1. 声明和初始化数组 使用 Array(5).fill('')
可以轻松初始化一个指定大小的数组,并用默认值填充。 对于二维数组/矩阵,可以使用嵌套的 map
和 fill
方法:
javascript 代码解读 复制代码const array = Array ( 5 ) . fill ( '' ) ;
2. 过滤数组中的假值 使用 filter(Boolean)
可以快速过滤数组中的假值(0
、undefined
、null
、false
、""
、''
):
javascript 代码解读 复制代码const array = [ 3 , 0 , 6 , 7 , '' , false ] ; array. filter ( Boolean) ;
3. 数组查找 indexOf()
可以查找元素在数组中的位置,找不到则返回 -1
。 可以使用按位非运算符(~
) 简化判断:
javascript 代码解读 复制代码if ( ~ arr. indexOf ( item) ) {
或者使用 includes()
进行更简洁的判断:
javascript 代码解读 复制代码if ( arr. includes ( item) ) {
4. 洗牌数组 使用 sort()
方法结合 Math.random()
可以轻松实现洗牌:
javascript 代码解读 复制代码const list = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] ; list. sort ( ( ) => Math. random ( ) - 0.5 ) ;
5. 清空数组 使用 arr.length = 0
直接清空数组,而 arr = []
只是重新赋值,原来的数组仍然占用内存。
javascript 代码解读 复制代码
6. 并集、交集和差集 使用 Set
对象可以方便地进行数组的并集、交集和差集操作:
javascript 代码解读 复制代码let a = new Set ( [ 1 , 2 , 3 ] ) ; let b = new Set ( [ 4 , 3 , 2 ] ) ;
逻辑运算:巧妙运用条件判断 7. 使用逻辑运算符简化条件判断 使用 ||
和 &&
可以简化嵌套的 if...else
或 switch
语句:
javascript 代码解读 复制代码function doSomething ( arg1 ) { arg1 = arg1 || 10 ;
8. 可选链:安全访问对象属性 可选链 ?.
在访问可能为空的对象属性时,可以避免错误,返回 undefined
:
javascript 代码解读 复制代码const user = { employee : { name : "Kapil" } } ; user. employee?. name;
9. 空值合并运算符:提供默认值 ??
运算符可以提供默认值,当左侧操作数为 null
或 undefined
时,返回右侧操作数:
javascript 代码解读 复制代码const foo = null ?? 'my school' ;
10. ||=
和 ??=
:条件赋值 ||=
仅在左侧为假值时赋值,而 ??=
仅在左侧为 null
或 undefined
时赋值:
javascript 代码解读 复制代码let x = null ; x ||= 5 ;
数字操作:灵活处理数值类型 11. 进制转换 使用 toString()
方法可以将十进制数字转换为二进制、十六进制等:
javascript 代码解读 复制代码const num = 10 ; num. toString ( 2 ) ;
12. 获取随机整数 使用 Math.random()
和 Math.floor()
可以获取指定范围内的随机整数:
javascript 代码解读 复制代码const random = ( min, max ) => Math. floor ( Math. random ( ) * ( max - min + 1 ) + min) ; random ( 1 , 50 ) ;
13. 字符串转数字 使用 +
或 Number()
可以快速将字符串转换为数字:
javascript 代码解读 复制代码let str = '2' ; console. log ( Number ( str) ) ;
14. 科学计数法 使用科学计数法可以简洁地表示较大的数字:
javascript 代码解读 复制代码for ( let i = 0 ; i < 1e7 ; i++ ) { }
对象操作:灵活处理数据结构 15. 检查对象是否为空 使用 Reflect.ownKeys()
和 constructor
属性可以判断对象是否为空:
javascript 代码解读 复制代码const isEmpty = obj => Reflect. ownKeys ( obj) . length === 0 && obj. constructor === Object; isEmpty ( { } ) ;
16. 动态属性名 使用方括号可以动态设置对象属性名:
javascript 代码解读 复制代码const key = 'name' ; const person = { [ key] : 'Alice' } ; console. log ( person. name) ;
字符串操作:高效处理文本数据 17. 首字母大写 使用 charAt()
和 toUpperCase()
可以轻松实现首字母大写:
javascript 代码解读 复制代码const capitalize = str => str. charAt ( 0 ) . toUpperCase ( ) + str. slice ( 1 ) ; capitalize ( "hello world" ) ;
18. 反转字符串 使用 split()
、reverse()
和 join()
方法可以轻松实现字符串反转:
javascript 代码解读 复制代码const reverse = str => str. split ( '' ) . reverse ( ) . join ( '' ) ; reverse ( 'hello world' ) ;
19. 过滤特殊字符 使用正则表达式可以方便地过滤字符串中的特殊字符:
javascript 代码解读 复制代码function filterCharacter ( str ) { let pattern = new RegExp ( "[`~!@#$^&*()=:" "'。,、?|{}':;'%,\\[\\].<>/?~!@#¥……&*()&;—|{ }【】';]" ) ; let resultStr = "" ; for ( let i = 0 ; i < str. length; i++ ) { resultStr = resultStr + str. substr ( i, 1 ) . replace ( pattern, '' ) ; } return resultStr; } filterCharacter ( 'gyaskjdhy12316789#$%^&!@#1=123,./[' ) ;
浏览器操作:与浏览器交互 20. 将内容复制到剪贴板 使用 navigator.clipboard.writeText()
可以将文本复制到剪贴板:
javascript 代码解读 复制代码const copyToClipboard = ( text ) => navigator. clipboard. writeText ( text) ; copyToClipboard ( "Hello World" ) ;
21. 清除所有 Cookie 使用 document.cookie
可以操作 Cookie:
javascript 代码解读 复制代码const clearCookies = document. cookie. split ( ';' ) . forEach ( cookie => document. cookie = cookie. replace ( / ^ + / , '' ) . replace ( / =.* / , ` =;expires= ${ new Date ( 0 ) . toUTCString ( ) } ;path=/ ` ) ) ;
22. 获取选中的文本 使用 window.getSelection().toString()
可以获取用户选中的文本:
javascript 代码解读 复制代码const getSelectedText = ( ) => window. getSelection ( ) . toString ( ) ;
23. 滚动到页面顶部 使用 window.scrollTo()
可以控制页面滚动:
javascript 代码解读 复制代码const goToTop = ( ) => window. scrollTo ( 0 , 0 ) ;
24. 检查是否滚动到底部 使用 document.documentElement.clientHeight
、window.scrollY
和 document.documentElement.scrollHeight
可以判断页面是否滚动到底部:
javascript 代码解读 复制代码const scrolledToBottom = ( ) => document. documentElement. clientHeight + window. scrollY >= document. documentElement. scrollHeight;
25. 检查选项卡是否处于活动状态 使用 document.hidden
可以判断当前选项卡是否处于活动状态:
javascript 代码解读 复制代码const isTabInView = ( ) => ! document. hidden;
26. 重定向到 URL 使用 location.href
可以进行页面重定向:
javascript 代码解读 复制代码const redirect = url => location. href = url; redirect ( "https://www.google.com/" ) ;
27. 打开打印对话框 使用 window.print()
可以打开打印对话框:
javascript 代码解读 复制代码const showPrintDialog = ( ) => window. print ( ) ;
URL 操作:解析和处理 URL 信息 28. 从 URL 获取参数并转换为对象 使用 URL.split("?")
和 JSON.parse()
可以解析 URL 参数并转换为对象:
javascript 代码解读 复制代码const getParameters = URL => JSON . parse ( ` {" ${ decodeURI ( URL . split ( "?" ) [ 1 ] ) . replace ( / " / g , '\"' ) . replace ( / & / g , '","' ) . replace ( / = / g , '":"' ) } "} ` ) ; getParameters ( "https://www.google.com.hk/search?q=js+md&newwindow=1" ) ;
其他实用技巧 29. 检查是否为函数 使用 typeof
可以判断一个对象是否为函数:
javascript 代码解读 复制代码const isFunction = ( obj ) => typeof obj === "function" && typeof obj. nodeType !== "number" && typeof obj. item !== "function" ;
30. 防抖和节流 防抖 : 在一段时间内只执行一次,即使触发多次事件,也只执行最后一次。
节流 : 在指定时间范围内,即使触发多次事件,也只执行一次。
javascript 代码解读 复制代码
31. 常见的正则表达式验证 使用正则表达式可以对常见的输入数据进行验证:
javascript 代码解读 复制代码
良好的编码习惯 32. 使用解构 使用解构可以使代码更简洁:
javascript 代码解读 复制代码const person = { name : "Alice" , age : 25 } ; const { name, age } = person; console. log ( name, age) ;
33. 巧妙利用 JS 隐式类型转换 使用 +
、!!
和 + ''
可以快速进行类型转换:
javascript 代码解读 复制代码const price = + '32' ;
34. 使用 return
代替 if...else
使用 return
可以简化 if...else
语句,使代码更易读:
javascript 代码解读 复制代码if ( condition1) {
总结 掌握这些 JavaScript 代码片段中的实用技巧,可以帮助你提升代码效率,写出更优雅的代码。不断学习和实践,你将发现更多提升开发效率的利器! 祝你编码愉快,创造出更精彩的应用! 😊
该文章在 2024/11/18 17:45:02 编辑过