1、NaN
NaN不等于它本身
任何数除以0返回NaN
NaN/10返回NaN
alert(isNaN(NaN));返回true,因为NaN本身不是一个数值,isNaN(),里面是一个参数,任何不能被转换为数值的值都会返回true。
var obj = {age:19}; isNaN(obj); // 等同于 if (typeof obj.valueOf() === 'object') { alert(isNaN(obj.toString())); } else { alert(isNaN(obj.valueOf())); } //var obj = {}; //当你把obj丢进isNaN(obj)时 // 做了两件事 // 1. 首先调用obj的valueOf()方法, 假设返回了一个 valueOfResult // 判断valueOfResult是否可以转换为数值, 如果不能, // 再 valueOfResult.toString() 看是否能转化为数值。
2、数值转换
有三个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()
Number()转换空字符串返回0
3、parseInt()如果第一个字符不是数字字符或者负号,返回NaN
parseInt()转换空字符串会返回NaN,
4、string类型
字符串可以有双引号跟单引号表示,在ECMAScript没有区别
字符字面量
任何字符串的长度都可以通过访问其length属性取得
5、数值,布尔值,对象和字符串值都有toString方法。但是null喝undefined值没有这个方法
6、在不知道要转换的值是null或者undefined的情况下,可以使用转型函数String()。能够将任何类型的值转换为字符串
7、object
var o = new Object();
8、如果不给构造函数传递参数,可以省略圆括号;但是不推荐这个方法
var o = new Object;
9、hasOwnProperty()。检查给定的属性在当前的对象实例中(不是在实例的原型中)是否存在。属性名必须以字符串形式指定,如o.hasPwnProperty("name");
10、isPrototypeOf(object),检查传入的对象是否是另一个对象的原型
11、valueOf()返回对象的字符串。数值或布尔值表示
12、do{}while()
var i = 0; do{ i += 2; } while(i < 10); alert(i); //10
13、while语句属于前测试循环语句,在循环体内的代码被执行之前,就会对出口条件求值
var i = 0; while(i < 10) { i += 2; } alert(i);//10
14、for语句是前测试循环语句
var count = 0; for(var i = 10;i > count;--i) { alert(i);//9 } alert(i);//10 --i是放在执行语句后面
15、for-in用来美剧对象的属性
16、break和continue
break语句会立即退出循环,强制继续执行循环后面的语句
continue语句立即退出循环,退出循环后会从循环的顶部继续执行
var num = 0; for(var i=1; i<10; i++) { if(i % 5 == 0) { break; } num++; } alert(num);//4
var num = 0; for(var i=1; i<10; i++) { if(i % 5 == 0) { continue; } num++; } alert(num);//8
17、width语句
with语句的目的是为了建华多次编写同一个对象的工作