js常用单行代码汇总

目录

1、生成随机字符串  Math.random()

2、转义html特殊字符

3、将字符串中每个单词的第一个字符大写

4、将字符串转换为camelCase

5、删除数组中的重复值

6、多维数组转一维数组

7、从数组中删除虚假值

8、检查一个数字是奇数还是偶数

9、获取两个数字之间的随机整数

10、获取参数的的平均值

11、将数字阶段为固定小数点

12、计算两个日期之间的不同天数

13、从日期中获取一年中的哪一天

14、生成随机十六进制颜色

 15、将rgb颜色转换为十六进制

16、检测暗模式

17、暂停一会

18、判断一个数是不是整数

19、提取字符串中的数字(去除其他)


1、生成随机字符串  Math.random()

const randomString = () => Math.random().toString(36).slice(2)
console.log(randomString());

2、转义html特殊字符

// 用于xss,其中一中解决方案是转义html字符串
const escape = (str) => str.replace(/[&<>"']/g, (m)=>({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot',"'":'&#39;'}[m]))
console.log(escape('<div class="medium">Hi Medium.</div>'));

3、将字符串中每个单词的第一个字符大写

const uppercaseWords = (str) =>str.replace(/^(.)|\s+(.)/g,(c)=>c.toUpperCase())
console.log(uppercaseWords('hello world'));

4、将字符串转换为camelCase

const toCamelCase = (str)=>str.trim().replace(/[-_\s]+(.)?/g,(_,c)=>(c?c.toUpperCase():''))
console.log(toCamelCase('background-color'));//backgroundColor
console.log(toCamelCase('_hello_word'));//HelloWord
console.log(toCamelCase('hello_word'));//helloWord

5、删除数组中的重复值

const removeDulicates = (arr)=>[...new Set(arr)]
console.log(removeDulicates([1,2,2,3,4,4,5,6]));

6、多维数组转一维数组

// 使用es6中的flat方法即可实现
//Ⅰ、flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。
var arr = [1, 2, [3, 4]]
console.log(arr.flat());
//Ⅱ、如果我们不知道数组究竟层级有多深我们可以用Infinity关键字作为参数
console.log([1, [2, [3]]].flat(Infinity));
//Ⅲ、指定转换的嵌套层数
console.log([1, [2, [3, [4, 5]]]].flat(2)); // [1, 2, 3, [4, 5]]

7、从数组中删除虚假值

const removeFalsy = (arr) =>arr.filter(Boolean)
console.log(removeFalsy([0,'string','',NaN,true,5,undefined,false])

8、检查一个数字是奇数还是偶数

const isEven = num =>num%2===0
console.log(isEven(2));//true
console.log(isEven(1));//false

9、获取两个数字之间的随机整数

const random = (min,max) =>Math.floor(Math.random()*(max-min+1)+min)
console.log(random(1,50));

10、获取参数的的平均值

const average = (...args)=>args.reduce((a,b)=>a+b)/args.length;
console.log(average(1,2,3,4,5));

11、将数字阶段为固定小数点

const round = (n,d) =>Number(Math.round(n+"e"+d)+"e-"+d)
console.log(round(1.7777,1));//1.8

12、计算两个日期之间的不同天数

const diffDays = (date,othersDate)=>Math.ceil(Math.abs(date-othersDate)/(1000*60*60*24))
console.log(diffDays(new Date("2022-9-11"),new Date("2022-10-30")))

13、从日期中获取一年中的哪一天

const dayOfYear = (date)=>Math.floor((date-new Date(date.getFullYear(),0,0))/(1000*60*60*24))
console.log(dayOfYear(new Date()));

14、生成随机十六进制颜色

const randomColor=()=>`#${Math.random().toString(16).slice(2,8).padEnd(6,'0')}`
console.log(randomColor());

 15、将rgb颜色转换为十六进制

const rgbToHex = (r,g,b)=>"#"+((1<<24)+(r<<16)+(g<<8)+b).toString(16).slice(1)
console.log(rgbToHex(255,255,255));

16、检测暗模式

const isDarkMode = window.matchMedia&&window.matchMedia('(prefers-color-scheme:dark)').matches
console.log(isDarkMode);

17、暂停一会

const pause = (millis)=>new Promise(resolve=>setTimeout(resolve,millis))
const fn= async()=>{
	await pause(1000)
	console.log('fatfish');
};
fn();

18、判断一个数是不是整数

const isInteger = (obj) => typeof obj === 'number' && obj % 1 === 0
console.log(isInteger(3));
console.log(isInteger('2'));
console.log(isInteger(3.345678));

19、提取字符串中的数字(去除其他)

var str = "我是12你是3-$";
console.log(str.replace(/[^0-9]/ig,""));

持续更新中.......欢迎小伙伴补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值