1.a, b 交换值
a = a + b;
b = a - b ;
a = a - b;
2. 字符串对比,比的是ASCII
‘10’> '8' : false,先对比第一位
3.逻辑运算符 &&
var a = 1 && 2 + 2; // 4
var a= 0 && 2 + 2; // 0
var a= 0 && 1 && 1; // 0
var a = 1 && false && 1; //false
var a = 1 + 1 && 1 - 1; //0
先看第一个表达式转换为布尔值,如果为真,会看第二个表达式转换为布尔值的结果。
然后如果只有两个表达式的话,只看第二个表达式,就可以返回该表达式的值了。
4. 短路语句 a > b && document.write('aaa'); // aaa
等价于
if(a>b){document.write('aaa');}
5. ||
var a = !123; // false
var a = !""; // true
6. for
for (var i = 0; i < 10; i++){}
等同于
var i = 0;
for( ; i < 10; ){ i++}
switch(n){
case 1: console.log(1); break;
case 2: consoloe.log(2); break;
case 3 :
case 4: console.log('3,4'); break;
}
8. break 、continue
break: 终止总循环
continue: 终止本次循环,进行下次循环
9.编程形式的区别
面向过程
面向对象
10.typeof (num) 、 typeof num
// number string boolean object undefined function
typeof(null); // object null是为对象占位的
11. 类型转换
显示类型转换:Number(mix)、parseInt(string,radix)、parseFloat(string)、toString(radix)、String(mix)、Boolean()
Number
var num = Number('123'); //123
Number(true); // 1 Number(false); // 0
Number('a'); // NaN(not a number)
Number(Null); // 0
parseInt
parseInt(true); // NaN parseInt(false); // NaN
parseInt(10, radix); // radix(2~36) (将 radix 进制的10数字,转换为10进制)
parseInt("123abc"); // 123 从数字位看到非数字位
parseInt("10px"); // 10
parseFloat
parseFloat("123.1ac") ; //123.1
toString
undefined、Null 不能用toString
var demo = 10;
var num demo.toString(8); //12
隐式类型转换:isNaN、++
isNaN -->Number
console.log(isNaN("abc")); // true
console.log(isNaN(123)); // false
++/-- +/- --> Number
var a = "123"; a ++; // 124
+
"ab" + "c" // "abc"
"12" + "3"; // 123
"12" + 3 // 15
-*/% --> Number
&& || !
==
1 == "1"; //true
2 > 3 < 1; //true
10>100>0; //false
NaN == NaN; // false
12. 不发生类型转换 === !==
NaN === NaN; // false
typeof(typeof(a)); // string