function and(a, b) {
    return !!(a && b)
    //如果a为true,b为非Boolean就会返回非Boolean值,所以加一步转换
}

且运算符"&&"的运算规则是:如果第一个运算子的布尔值为true,则返回第二个运算子的值(注意是值,不是布尔值);如果第一个运算子的布尔值为false,则直接返回第一个运算子的值,且不再对第二个运算子求值。