//5 2 3 var a =1; var b = ++a + ++a; console.log(b) //4 1 3 var a =1; var b = a++ + ++a; console.log(b) //3 1 2 var a =1; var b = a++ + a++; console.log(b) //4 2 2 var a =1; var b = ++a + a++; console.log(b) var a =1; ++a; //先a=a+1 表达式返回a的值。 a++; //先返回表达式的值a, 再a= a+1;
&& //有一个false,返回false //短路运算符,当前面的为false,直接返回false,这叫短路。 var a = true && false; var b = "abc" && "bcd"; var c = undefined && null; //undefined console.log(b); || //有一个true,返回true var d = "abc" || "bcd" //返回abc,短路运算符。 var e = undefined || null; //null ! //取反
若是两个操做数都不是Boolean类型,若是两个值转换成Boolean类型都是true,返回第二个操做数,若是有一个操做数转换成,布尔类型是false,返回这个数。code
若是两个数都是false,返回第一个操做数。io
sum(undefined,5); function sum(n1,n2){ n1= n1 || 0; n2= n2 || 0; console.log(n1+n2); //5 } function sum(n3,n4){ console.log(n3+n4); //NaN }
== 内容(值)相等console
=== 值和类型都相等function