Appearance
工具函数
数值转换千分位
javascript
// 函数接受参数类型为字符串格式
function transform(str) {
let newstr = str.replace(/\d{1,3}(?=(\d{3})+$)/g, function (s) {
return s + ','
})
return newstr
}
javascript
let num = 123.4567
let formatNum = num.toLocaleString(
'en-US',
{ minimumFractionDigits: 4 } // 控制小数显示 默认为3
)
多维数组展平
javascript
let arr = [1, 2, 3, [4, [5, 6, true], '大西瓜']]
function flatten(arr) {
return [].concat(...arr.map(x => (Array.isArray(x) ? flatten(x) : x)))
}
let newarr = flatten(arr)
console.log(newarr)
css 去掉 input[type="number"] 上下箭头
css
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type='“number”'] {
-moz-appearance: textfield;
}
数据类型判断
javascript
function typeOf(obj) {
let res = Object.prototype.toString.call(obj).split(' ')[1].slice(0, -1).toLowerCase()
console.log(res)
}
typeOf([])
typeOf({})
typeOf(new Date())
typeOf(123)
typeOf('冰冻大西瓜')
typeOf(undefined)
检验空对象或空数组的方法
javascript
if (JSON.stringify(obj) === '{}') {
return true
}
if (JSON.stringify(obj) === '[]') {
return true
}
img 标签多出几像素的解决方案
父元素中:font-size:0
父元素中:line-height:0
自身:display:block(推荐)
自身:vertical-align:middle/top/bottom(推荐)
知道首尾数字,生成连续数组
javascript
return Array(end - start)
.fill(start)
.map((el, i) => start + i)
知道起始数字与数组长度,生成连续数组
javascript
return Array.from({ length: continuse }, (v, k) => start + k)
数组清洗
javascript
// 移除null false undefined 0 等值
let arr = [1, 2, '大西瓜', '7', false, '', undefined, null, 0]
let res = arr.filter(Boolean)
console.log(res) // output: [1, 2, '大西瓜', '7']
进制转换
javascript
// 十进制转二进制
let num = 10
console.log(num.toString(2)) // 1010
// 二进制转十进制
let num2 = 1010101
console.log(parseInt(num2, 2)) // 85
console.log(num2.toString()) //85
// 十进制转十六进制
console.log(parseInt(num, 16)) // 16
// 十六进制转十进制
let num3 = 0xffff
console.log(parseInt(num3, 10)) // 65535
伪数组转数组
伪数组有哪些?
函数参数
arguments,
DOM 对象列表
javascript