1. 在条件判断中

&&:所有条件都为真,整体才为真
||:只要有一个条件为真,整体就为真

2.在赋值操作中

||:A||B 首先看A的真假,A为真返回的是A的值,A为假返回的是B的值(不论B是什么)

  1. 1||2=>1
  2. 0||false=>false

&&:A&&B 首先看A的真假,A为假返回A的值,A为真返回B的值

  1. 1&&2=>2
  2. 0&&false =>0

逻辑与的优先级高于逻辑或的优先级

  1. //=>变量提升:var foo;
  2. var foo = 'hello';
  3. (function (foo) {
  4. //=>私有作用域:foo='hello' (我们的foo和外面的foo是不同的变量)
  5. console.log(foo);
  6. var foo = foo || 'world';
  7. console.log(foo);
  8. })(foo);//=>把全局FOO的值当做实参传递给私有作用域中的形参
  9. console.log(foo);