1. 全局变量:一种是 ECMAScript 规定的(global)
- global.parseInt
- global.parseFloat
- global.Number
- global.String
- global.Boolean
- global.Object
2. 全局变量:另一种是浏览器自己的全局变量(window)
- window.alert
- window.prompt
- window.comfirm
- window.console.log
3. 上面两种全局变量都是stack(栈内存)里的重要变量
4. Number
JavaScript的作者Brendan Eich被公司要求JS要像Java,所以他模仿java写了var n = new Number(1);
这样n是一个对象,有自己的属性,但太麻烦,于是他又写了一种var n =1;
n是基本类型
但他用了一个方法,使这样声明的也可以用Number对象的属性1
2
3
4
5
6
7
8var n=1;
n.toString(); //n用toString时,本质是下面这两行,实质n是没有属性的
var temp = new Number(n); //声明了一个临时变量temp,并将n作为Number对象赋给它
temp.toString(); //用temp来执行toString,执行完后temp就被抹杀了
n.xxx = 2; //可以的
n.xxx //但undefined,因为xxx是存在temp的,上一句的temp执行完后就被抹杀,所以xxx也被抹杀了
5. String
1 | var s = 'asd'; // 原理和Number一样 |
6. Boolean
6个falsy值,0、NaN、null、undefined、false、””,除了这6个,其他值都是true
所有对象都是true1
2
3
4
5var b = false;
var b1 = new Boolean(false);
if(b){console.log('true')};
if(b1){console.log('true')}; // true
//只会输出b1,因为所有对象都是true!!
7. Object
1 | var o1 = {}; //常用方法 |