js

161 阅读1分钟

时间格式转换

 var now = new Date();
         console.log(date.toLocaleString('zh')); // 2019/5/12 14:29:34                                  console.log(date.toLocaleString('en')); // 5/12/2019, 2:29:34 PM
        console.log(now.toLocaleString()); //2019/3/1 下午3:47:46
        console.log(now.toString()); //Fri Mar 01 2019 15:47:46 GMT+0800 (中国标准时间)
        console.log(now.valueOf()); //1551426466220
        console.log(now.toDateString()); //Fri Mar 01 2019
        console.log(now.toTimeString()); //15:47:46 GMT+0800 (中国标准时间)
        console.log(now.toLocaleDateString()); //2019/3/1
        console.log(now.toLocaleTimeString()); //下午3:47:46
        console.log(now.toUTCString()); //Fri, 01 Mar 2019 07:47:46 GMT
        

获取光标在字符串中的索引

const index = (inputRef.value?.$refs.textareaElRef as HTMLInputElement).selectionStart!;

对象变成二维数组

image.png

伪数组转换成数组

1.Array.prototype.slice.apply(arr) 2. ...a(展开运算符可以将伪数组转换成真正的数组)

判断不同类型的数据空

对象 JSON.stringify(obj)==='{}'

字符串排序

String(row1.cfieldname).localeCompare(String(row2.cfieldname))

截取第一个,前/后数据

前:str.split(',')[0] 后:str.split(',')[1]

先导入在导出

image.png(上面一行相当于下面两行)

减少if else 的使用

image.png

浏览器位置问题

const getRatio = () => { var ratio = 0; var screen = window.screen; var ua = navigator.userAgent.toLowerCase(); if (~ua.indexOf('msie')) { if (screen.deviceXDPI && screen.logicalXDPI) { ratio = screen.deviceXDPI / screen.logicalXDPI; } } else if (window.outerWidth !== undefined && window.innerWidth !== undefined) { ratio = window.outerWidth / window.innerWidth; } if (ratio) { ratio = Math.round(ratio * 100); } return ratio / 100; } const ratio = window.devicePixelRatio;(//不忽略显示设置的缩放) const ratio = getRatio();(//忽略显示设置的缩放,只关注浏览器左上角的缩放) const

screenX:浏览器左上角相对于屏幕距离 window.outerWidth:浏览器高度包括自带头部 window.innerWidth:浏览器高度不包括自带头部

解决缩放位置不准的问题(firefox75 只有鼠标screen属性) // 浏览器缩放比例 const ratio = getRatio(); const x = Math.abs(event.screenX - screenX) / ratio; const y = Math.abs(event.screenY - screenY) / ratio - window.outerHeight / ratio + window.innerHeight;