js数据类型
- 基本类型【原始类型】(number,string,boolean,undefined,null)
- 引用类型(对象)
1 | var func=xx(); |
变量提升
- 局部变量存在变量提升
- 全局变量不会变量提升
![](file://C:\Personal\Temp\WeChat Files\d72619285c133316b2f7627a4b86d2b.png)
js对象
方式一:
1 | var person=new Objent(); |
var person=new Object();等价于:var person={};
{}又叫对象直接量
方式二:
1 | var person={ |
方式三:
1 | class Person{ |
方式四:
ES5的时候创建对象的方式
1 | function Person(){ |
js内存机制堆栈原理
- 基本数据类型放进栈里
- 引用类型放进堆里(变量在栈里,对象在堆里,对象的位置以指针[0xabd12e]十六进制数字的形式放进栈里)
在栈里指针移动很快,非常适合查找的操作
对象里面的属性和方法相对很大,所以放进堆里,不必灵活创建消耗内存
this
- this是一个变量,指向当前对象(只能写在函数的方法里面)
- 如果方法未指定对象,则默认是全局方法,包含在window中
- 如果在全局方法中则this指向window对象
- 如果是在定时器setTimeOut中,则this指向window,因为setTimeOut就是window.setTimeOut(function,time);
in
1 | var o1={}; |
数组
[]又叫数组直接量
1 | var arr=[1,2,3,4]; |