返回
首页

beautifulCode cheatsheet

max(a, b)

(b & (a - b >> 31) | a & ~(a - b >> 31))

html随机颜色边框

// 命令行中 $$ 等同于 document.querySelectorAll
[].forEach.call($$("*"), function (a) { a.style.outline = "1px solid #" + (~~(Math.random() * (1 << 24))).toString(16) })

评分

let rating = 3;
"★★★★★☆☆☆☆☆".substring(5 - rating, 10 - rating);

值交换

a = a ^ b
b = a ^ b
a = a ^ b

正则表达式简单解析器

字符含义
c匹配任意的字母c
.匹配任意单个字符
^匹配输入字符串的开头
$匹配输入字符串的结尾
*匹配前一个字符的零个或多个
const match = function (regexp, text) {
    if (regexp[0] === '^') {
        return matchHere(regexp.slice(1), text);
    }

    do {
        if (matchHere(regexp, text)) {
            return 1;
        }

    } while (text = text.slice(1))
    return 0;
}

const matchHere = function (regexp, text) {
    if (!regexp) {
        return 1;
    }
    if (regexp[1] === '*') {
        return matchStar(regexp[0], regexp.slice(2), text)
    }
    if (regexp[0] === '$' && !regexp[1]) {
        return text === ''
    }
    if (text !== '' && (regexp[0] === '.' || regexp[0] === text[0])) {
        return matchHere(regexp.slice(1), text.slice(1))
    }
    return 0;
}

const matchStar = function (c, regexp, text) {
    do {
        if (matchHere(regexp, text)) {
            return 1;
        }
    } while (text && ((text = text.slice(1))[0] === c || c === '.' ));
    return 0;
}

js简写

//取整
parseInt(a,10); //Before
Math.floor(a); //Before
a>>0; //Before
~~a; //After
a|0; //After

//四舍五入
Math.round(a); //Before
a+.5|0; //After

//内置值
undefined; //Before
void 0; //After, 快
0[0]; //After, 略慢

//内置值
Infinity;
1/0;

//布尔值短写法
true; //Before
!0; //After

//布尔值短写法
false; //Before
!1; //After