var getRandomColor = function(){
return '#' + 
(function(color){
return  (color += '0123456789abcdef'[Math.floor(Math.random() * 16)]) && (color.length===6) ? color : arguments.callee(color);
}(''))
}请问这里的&&有什么作用?JavaScript

解决方案 »

  1.   

    逻辑与操作符。当前面条件为true才执行后面的操作。只有当前面跟后面都围true的时候整体返回true。翻译成中文就是并且的意思他这里的意思,&&前面是赋值语句肯定是true,只要判断length是不是6来决定问号后面的值拆分一下就是
    color += '0123456789abcdef'[Math.floor(Math.random() * 16)]
    if(color.length===6){
        return color;
    else{
        arguments.callee(color);
    }color是传进来的,首次传'',length为0,第一次执行color随即取了个值,length等于1,不满足等于6,arguments.callee(color),如此循环到color满6位