10 个「有用」JavaScript 代码片段

简介: 10 个「有用」JavaScript 代码片段

image.png

降低阅读负担,启发创作心智,轻松学习 JavaScript 技巧,日拱一卒,jym,冲~


注:本篇可能更适合 JS 新手食用,大佬请绕道🤝


类数组转数组



什么是类数组?

我们最常见的类数组比如函数的参数 arguments


const fn = function(){
    console.log(arguments)
}
fn("a1","a2","a3")


打印结果:

image.png


类数组的属性为数字、并且还有 length 属性,主要是为了保证 arguments[i] 和 arguments.length 都能拿到值。


将类数组转化为数组我们通常用 call 方法:


Array.prototype.slice.call(arguments);


其实也可以用 ... 扩展符实现类数组转数组:

[...arguments]


精简 console.log



全局这样声明,后面再使用 console.log 打印值就方便多啦:

const c = console.log.bind(document) 
c(222) // 222
c("hello world") // hello world


对象动态属性



声明对象时,如果属性是动态的,可以这样声明:

const dynamic = 'color';
var item = {
    brand: 'Ford',
    [dynamic]: 'Blue'
}
console.log(item); 
// { brand: "Ford", color: "Blue" }


获取链接参数



我们都知道 window.location.search 可以获取 url 中 ““?” 问号后面的参数:

window.location.search


然后我们可以再通过 new URLSearchParams(location.search).get('type') 方法获取具体某一个参数的值


let type = new URLSearchParams(location.search).get('type');


比如:

image.png


好用!!


删除数组元素



很多同学会用 delete 删除数组的值,这样做数组长度并不会发生变化,并且取值会是 undefined

image.png


推荐使用 splice 来删除数组元素

const array = ["a", "b", "c", "d"] 
array.splice(0, 2) // ["a", "b"]


对象判空



对象判空小技巧,使用 Object.keys({})

Object.keys({}).length  // 0
Object.keys({key: 1}).length  // 1


推荐switch case



推荐使用 switch case 而不是 if...else if...

if (1 == month) {days = 31;}
else if (2 == month) {days = IsLeapYear(year) ? 29 : 28;}
else if (3 == month) {days = 31;}
else if (4 == month) {days = 30;} 
else if (5 == month) {days = 31;} 
else if (6 == month) {days = 30;} 
else if (7 == month) {days = 31;} 
else if (8 == month) {days = 31;} 
else if (9 == month) {days = 30;} 
else if (10 == month) {days = 31;} 
else if (11 == month) {days = 30;} 
else if (12 == month) {days = 31;}
switch(month) {
        case 1: days = 31; break;
        case 2: days = IsLeapYear(year) ? 29 : 28; break;
        case 3: days = 31; break;
        case 4: days = 30; break;
        case 5: days = 31; break;
        case 6: days = 30; break;
        case 7: days = 31; break;
        case 8: days = 31; break;
        case 9: days = 30; break;
        case 10: days = 31; break;
        case 11: days = 30; break;
        case 12: days = 31; break;
        default: break;
}


也更推荐用 map 的方法:

let getDays={
    1:31,
    2:IsLeapYear(year) ? 29 : 28,
    3:31,
    ...
}
getDays[month]


获取数组最后一项



获取数组最后一项有更简单的写法:arr.slice(-1)

const arr = [1, 2, 3, 4, 5];
arr[arr.length - 1]  // 5
arr.slice(-1) // [5]


slice 也并不会修改原来的数组:image.png


转换成布尔值



类型转换,!! 两个感叹号可以将变量转换为布尔值。之前就有看到有人问 !! 双感叹是干啥的,这下知道了吧~

!!undefined // false
!!"996"     // true
!!null      // false
!!NaN       // false


用对象传参



把参数包装成一个对象再传,否则谁能读懂这种没头没尾的且要求顺序的参数的意义?

function getItem(price, quantity, name, description) {}
getItem(15, undefined, 'bananas', 'fruit')
function getItem(args) {
    const {price, quantity, name, description} = args
}
getItem({
    name: 'bananas',
    price: 10,
    quantity: 1, 
    description: 'fruit'
})




相关文章
|
5月前
|
JavaScript 前端开发
【快捷键配置】常用HTML类名、CSS样式名称、JS方法变量名、vue代码片段
【快捷键配置】常用HTML类名、CSS样式名称、JS方法变量名、vue代码片段
|
5月前
|
前端开发 JavaScript
【汇总】前端开发中高频次使用的JS、CSS、HTML代码片段合集
【汇总】前端开发中高频次使用的JS、CSS、HTML代码片段合集
|
5月前
|
JavaScript 前端开发 程序员
分享18个用于处理 null、NaN 和undefined 的 JS 代码片段
Null、NaN 和 undefined 是程序员在使用 JavaScript 时遇到的常见值。 有效处理这些值对于确保代码的稳定性和可靠性至关重要。
|
2月前
|
JavaScript Java 虚拟化
JS代码片段
本文档详细规定了Java编程中的排版、命名及注释规范。排版方面,强调变量初始化时对齐赋值符号,操作符与关键词或变量间加空格,独立代码块间加空行,长语句换行书写,并将`main`方法置于类底部。命名规范包括全小写包名、驼峰命名法的类与变量名,以及大写的静态最终变量名。注释部分提倡使用Eclipse自动生成模板,并及时补充描述。文档还提供了多个格式示例,以JDK源码和Hyperic HQ为参考,展示了不同语句的具体应用。
18 2
|
2月前
|
JavaScript 前端开发 Java
常用的JS代码片段有哪些
常用的JS代码片段有哪些
27 3
|
4月前
|
SQL Web App开发 JavaScript
业务功能常用的JS代码片段
业务功能常用的JS代码片段
25 3
|
4月前
|
缓存 JavaScript 前端开发
js开发代码片段与小技巧
js开发代码片段与小技巧
27 2
|
4月前
|
JavaScript 前端开发 Java
JS代码片段赏析 经典又常用的代码分享
JS代码片段赏析 经典又常用的代码分享
28 2
|
5月前
|
前端开发 JavaScript 开发者
前端面试题 10 个「有用」JavaScript 代码片段
前端面试题 10 个「有用」JavaScript 代码片段
|
JavaScript 前端开发
码上掘金,5 个 NICE 的 JavaScript 代码片段分享
码上掘金,5 个 NICE 的 JavaScript 代码片段分享
下一篇
无影云桌面