内容归纳总结自《JavaScript高级程序设计》
一、JS的组成
1.ECMAScript 核心 解释器
2.DOM 给JS操作HTML的能力
3.BOM window 浏览器
二、变量的数据类型 ATTENTION_LIST
String Number Boolean Null Undefined Object
1、 函数是一种对象而不是数据类型
var a = function(){
//
}
alert(typeof(a));
->function
因为函数有一些特殊的属性,所以用typeof来区分函数和其他对象是有必要的
2、 NULL表示一个空对象指针
var a = null;
alert(typeof(a));
->object
3、 undefined是派生自NULL的值
alert(null==undefined);
->true
无论在什么情况下 都没有必要把一个变量的值显式地设置为 undefined,可是同样的规则对 null 却不适用。换句话说,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存 null 值。这样做不仅可以 体现 null 作为空对象指针的惯例,而且也有助于进一步区分 null 和 undefined。
4、 不要测定某个特定的浮点数值
0.1+0.2!=0.3
5、 NAN
Not a Number
1. 任何数除以0都会返回NaN
2. 涉及NaN的计算都会返回NaN
3. (NaN==NaN)->falese
4. isNaN()支队不能转换的值返回true
isNaN('10');//true 可以被转换成10
isNaN(true);//true 可以被转换成1
6、 转换成数字
①. 强制转换(显示转换)
a.parseInt()
b.number()
和parseInt的区别:
第一个字符不是数字或者符号就会返回NaN
```
alert(parseInt(''));//NaN
alert(Number(''));//0
```
c.parseFloat()
不确定是整数还是小数的时候可以用
②. 隐式转换
var a = 5;
var b = 5;
alert(a==b);//先转换类型再比较,比较后ab的数据原有类型不改变
alert(a===b);//直接比较
7、 转换成字符串
①. 利用toString()函数
var a = 10;
var ageAsString = a.toString();//'10'
var ageAsString2 = a.toString(2);//'1010' 可以传递一个参数:输出数值的原有数制
②. 利用String()函数
alert(typeof(String(true)));//'true' string类型
alert(typeof(String(undefined)));//'undefined'
8、 Object
通过执行new操作符创建新对象
var o = new Object();