开发中常用的25个JavaScript单行代码(总结)
1.强制布尔值
要将变量转换为布尔值而不更改其值,请执行以下操作:
const myBoolean=!myVariable!null //false!undefined //false!假//假!真实//真实!'//假!字符串'//true!0 //假!1 //真!{} //真![] //true 2。根据特定条件设置对象的属性
要使用扩展运算符有条件地设置对象的属性,请执行以下操作:
const myObject={.my property { proname:MyPoperty } };让my PrOperty=' Jhon ' const MyObject={ 0.my property { propname : my property } };//{propName: 'Jhon'}让myProperty=' ' const myObject={.my property { propname : my property } };//{}如果myProperty结果为false,则失败,并且不设置新属性;否则,如果它不为空,将设置新属性并覆盖原始值。
3.合并对象
const mergedObject={.对象一,object two };const mergedObject={.{姓名: 'Jhon ',年龄: '18'},{ name1: ' jhon1 ',age1: ' 12 ' } }//{name: 'Jhon ',age: '18 ',name1: 'jhon ',age 1: ' 12 ' } const mergedObject={ 0.{姓名: 'Jhon ',年龄: '18'},{ name: ' jhon1 ',age: ' 12 ' } }//{ name : ' jhn1 ',age:' 12'}支持无限合并,但如果对象之间存在相同的属性,后一个属性将覆盖前一个属性。*请注意,这仅适用于浅层固结。
4.交换变量
要在不使用中间变量的情况下交换两个变量的值:
[varA,varB]=[varB,VarA];设a=1;设b=2;[a,b]=[b,a] //a=2 b=1 5。删除布尔值为false值常量clean=dirty。过滤器(布尔型);const clean=[0,false,true,undefined,null,'',12,15]。过滤器(布尔型);//[true,12,15]这将删除等于null、undefined、false、0和空字符串(“”)的值。
6.转换元素类型
要将数字元素转换为字符串元素:
const String array=number array . map(字符串);const stringArray=[1,2,3]。地图(字符串);['1 ',' 2 ',' 3']如果数组包含字符串,则字符串保持原样。这也可用于将字符串元素转换为数字类型:
const Number array=StringArray . map(Number);const stringArray=['1 ',' 2 ',' 3']。地图(字符串);//[1, 2, 3] 7.将对象格式化为JSON代码
要以可读格式显示JSON代码:
const formated=JSON . stringify(myObj,null,4);const formated=JSON . stringify({ name : ' Jhon ',age: 18,address: 'sz'},null,4);/* {'name' :' jhon ',' age' : 18,' address ' : ' SZ ' } */这个串线命令有三个参数。第一个是一个Javascript对象。第二个是可选函数,当JSON被序列化时,它可以用来对JSON执行操作。最后一个参数指示要添加多少空格作为缩进来格式化JSON。省略最后一个参数,JSON将返回一个长行。如果myObj中有循环引用,则格式失败。
8.快速创建数字数组
要创建一个数组并用数字填充它,索引为零:
const numArray=Array.from(新数组(10),(x,I)=I);//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 9.随机生成一个六位验证码
const code=math . floor(math . random()* 1000000)。toString()。padStart(6,' 0 ');//942377 10.普通身份证
const idreg=/(^[1-9]d{5}(18|19|([23]d))d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{3}[0-9xx]$)|(^[1-9]d{5}d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{2}[0-9xx]$)/;11.window.location .搜索到JS对象
有时我们会从问号(?转换后开始的网址(查询部分)
const search obj=search=JSON。parse(` { ' $ { DecodeUricomponent(搜索。子字符串(1)).替换(/'/g ',\ ').替换(///g ' ',' ').替换(/=/g,' ' : ' ')} ' } `);//假如请求全球资源定位器(统一资源定位符)为//'https://www.baidu.com?ie=utf-8f=8rsv _ BP=1rsv _ idx=1tn=Baidu wd=jsrsv _ pq=a86b 5 e5f 0007 bcebrsv _ t=1e 1 favan vlnkhjhb 0 bigdl m2s lszytfkmybuzpw 0 ggeuvde 50 rqlang=cnrsv _ enter=0输入TT=1287 RSV _ sug 3=5rsv _ sug 1=3rs v _ sug 7=101 RSV那么窗口。位置。搜索就为:让搜索='?ie=utf-8f=8rsv _ BP=1rsv _ idx=1tn=Baidu wd=jsrsv _ pq=a86b 5 e5f 0007 bcebrsv _ t=1e 1 favan vlnkhjhb 0 bigdl m2s lszytfkmybuzpw 0 ggeuvde 50 rqlang=cnrsv _ enter=0输入TT=1287 RSV _ sug 3=5rsv _ sug 1=3rs v _ sug 7=101 RSV格式化查询字符串得到如下对象:
12.射流研究…对象转全球资源定位器(统一资源定位符)查询字符串
const ObjectToqueryString=(obj)=对象。钥匙.map((key)=` $ { encodeURIComponent(key)}=$ { encodeURIComponent(obj[key])} `).join(' ');objectToQueryString({ name : ' Jhon ',age: 18,address : ' Beijing ' })//name=Jhonage=18 address=Beijing 13 .获取数组交集
常数相似性=(arr,values)=arr。过滤器(v=值。包括(v));相似性([1,2,3],[1,2,4]);//[1,2] 14.检测设备类型
使用正则表达式来检测导航器。用户代理属性判断设备是在移动设备还是在台式机/笔记本电脑打开。
const detectDeviceType=()=/Android | webOS | iPhone | iPad | iPod |黑莓| IEMobile | operamin/I . test(导航器。用户代理)?移动":"桌面;15.将数字转化为千分位格式
const ToDecimalMark=num=num。ToLocalString(' en-US ');toDecimalMark(12305030388.9087);//'12,305,030,388.909' 16 多维数组转一维数组
const Deeplane=arr=[].concat(.arr.map(v=(Array.isArray(v)?深变平(v):v)));deepFlatten([1,[2],[[3],4],5]);//[1,2,3,4,5] 17.过滤对象数组
const reduce筛选器=(数据,键,fn)=data.filter(fn).地图(El=键。reduce)((ACC,key)={ ACC[key]=El[key];返回acc},{ }));const data=[ { id: 1,姓名: '约翰',年龄: 24 },{ id: 2,姓名: '麦克',年龄: 50 }];let a=reducedFilter(数据,['id ',' name'],item=item。24岁);//[{ id: 2,name: 'mike'}] 18 .驼峰字字符串格式化
转换驼峰拼写的字符串为特定格式。
使用String.replace()去除下划线,连字符和空格,并将驼峰拼写格式的单词转换为全小写。省略第二个参数分离器,默认使用_ 分隔符。
const fromCamelCase=(字符串,分隔符=' _ ')=str。替换(/([A-ZD])([A-Z])/g,' $1 '分隔符' $2 ')。替换(/([A-Z] )([A-Z][a-zd] )/g,' $1 '分隔符' $2 ')。toLowerCase();来自camel case(' somdatabasefieldname ',' ');//"来自CamelCase的某个数据库字段名"(“someblabelthattneedstobecameted”,“-”);//"一些需要骆驼化的标签“来自camelcase('某些JavaScript属性',' _ ');//'some_javascript_property' 19 .是否为绝对地址
const isabsoluteurl=str=/^[a-z][a-z0-9。-]*:/.测试;isAbsoluteURL(' https://Google。com’);//true isAbsoluteURL(' FTP ://www。我的服务器。net ');//true isAbsoluteURL('/foo/bar ');//false 20 .获取两个日期相差天数
const getDaysDiffBetweenDates=(日期初始,日期最终)=(日期最终-日期初始)/(1000 * 3600 * 24);getdays介于日期(新日期(' 2017-12-13 ')、新日期(' 2017-12-22 '));//9 21.数组去重
常数重复数据消除=(myArray)=[.新集合(我的数组)];重复数据删除([1,1,2,1,3,3,4])/[1,2,3,4] 22。数组对象去重
const uniqueElementsBy=(arr,fn)=arr.reduce((acc,v)={if(!acc.some(x=fn(v,x)))ACC。push(v);返回acc},[]);uniqueElementsBy([{id: 1,名称: 'Jhon'},id: 2,名称: 'sss'},{id: 1,名称: 'Jhon'}],(a,b)=a . id==b . id)/[{ id : 1,名称: 'Jhon'},id 3: 2,名称: 'sssRGB颜色转16进制颜色
const RGBToHex=(r,g,b)=((r 16) (g 8) b).toString(16).padStart(6,' 0 ');RGBToHex(255,165,1);//'ffa501' 24 .常用密码组合正则
const passwordReg=/(?^(d | |[[emailprotected]#$%^*?] )$)^[[emailprotected]#$%^*?]{8,20}$/;//-长度8~20个字符,支持大小写字母、数字、符号任意两个字符的组合。25.确定dom元素是否有类名。
const hasClass=(el,className)=新regexp(`(^|\s)${classname}(\s|$)`).test(El . class name);以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:开发中常用的25个JavaScript单行代码(总结)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。