美文网首页
js黑科技----之奇淫技巧

js黑科技----之奇淫技巧

作者: 我讲你思 | 来源:发表于2019-10-08 17:04 被阅读0次

1.单行写一个评级系统

"★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);

2.JavaScript错误处理

try {
    something
} catch (e) {
    window.location.href =
        "http://stackoverflow.com/search?q=[js]+" +
        e.message;
}

3.CSS调试黑科技

[].forEach.call($$("*"),function(a){
    a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16)
})

容易理解的形式

Array.prototype.forEach.call(document.querySelectorAll('*'), 
dom => dom.style.outline = `1px solid #${parseInt(Math.random() * 
Math.pow(2,24)).toString(16)}`)

4.获取随机字符串

Math.random().toString(16).substring(2)

5.数字转字符串

(10)["toString"]() === "10"

6.浮点数取整

var a = ~~2.33
var b= 2.33 | 0
var c= 2.33 >> 0

7.实现金钱格式化

正则表达式实现

var test1 = '1234567890'
var format = test1.replace(/\B(?=(\d{3})+(?!\d))/g, ',')
console.log(format) // 1,234,567,890

非正则实现

function formatCash(str) {
       return str.split('').reverse().reduce((prev, next, index) => {
            return ((index % 3) ? next : (next + ',')) + prev
       })
}
console.log(formatCash('1234567890')) // 1,234,567,890
Json的深拷贝
var a = {
    a: 1,
    b: { c: 1, d: 2 }
}
var b=JSON.parse(JSON.stringify(a))

8.字符串转换成数字

var a = '1'
+a

9.数组去重

[...new Set([1, "1", 2, 1, 1, 3])]

10.取出一个数组中的最大值最小值

var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411]; 
var maxInNumbers = Math.max.apply(Math, numbers); 
var minInNumbers = Math.min.apply(Math, numbers);

11.elements对象对象转换成数组

var argArray = Array.prototype.slice.call(arguments);
//或者ES6:
var argArray = Array.from(arguments)

11.布尔值 true、false转为1、0且互换

+!false     //1
+!true     //0

#12.

相关文章

网友评论

      本文标题:js黑科技----之奇淫技巧

      本文链接:https://www.haomeiwen.com/subject/pzndbxtx.html