1:undefined与null的区别?
undefined表示定义了,没有赋值,null表示定义了,并且赋值是null。
2:什么时候给变量赋值为null呢?
在声明变量的时候赋值为null表示将要赋值一个对象,一个对象如果不需要使用的话,通过将这个变量赋值一个null(垃圾回收器就会进行垃圾回收)。
3:严格区别变量类型与数据类型?
数据类型:
基本类型和对象类型
变量类型:
基本类型:保存基本类型的数据
应用类型:保存地址值
4:什么是数据?
存储在内存中代表特定信息的东西,本质上是010
据有可读和传递的基本特性
数据的特点:可传递,可运算
所有操作的目标:数据
5:什么是内存?
用来存储数据的空间,但是是临时的在断电了以后数据就会丢失了。
一块内存中有两个数据:内部存储的数据和地址值
内存的分类:堆:对象 栈:全局变量/局部变量
6:什么是变量?
可以变化的量,由变量名和变量值组成
没一个变量对映一块内存空间,可以通过变量名去内存中找对应的内存,变量值就是存在内存中的数据
7:内存,数据,变量之间的关系?
用来存储数据的空间,但是是临时的在断电了以后数据就会丢失了。
变量是内存的标识
8:关于赋值和内存的数据
var a=+++;
+++是基本数据保存的是数据,如果是对象保存的是对象的地址值。如果是变量,就看这个变量保存的数据(可以是数据也可以是对象)
9:关于引用变量赋值问题?
1:两个引用变量指向同一个对象,通过一个变量修改对象的内部数据,另一个变量看到的是修改之后的数据。
2:两个引用变量指向同一个对象,让其中一个变量指向另一个对象。而另外一个变量指向的还是之前的对象。
10:js中调用函数传递变量参数时,是值传递还是引用传递
1:理解1:可能是值(基本/地址值)传递
2:理解2:可能是地址传递也可能是值传递
11:js引擎如何管理内存?
1:内存生命周期:
分配小的内存空间,获取使用权
存储 数据,可以反复操作
释放小的内存空间
2:释放内存
局部变量:函数执行完了自动释放(空间小)
对象:由垃圾回收器回收(空间大)
12:什么是对象?
用来保存多个数据的容器,一个对象代表现实生活中的事物
13:为什么要用对象?
管理多个数据
14:对象的组成
属性和函数
15:什么是函数?
实现特定功能的多条语句封装体,只有函数可以执行
16:为什么要用函数?
提高了代码的复用,便于阅读和浏览
17:如何定义函数?
1:函数 声明
2:表达式
18:如何执行函数?
函数名()直接调用
obj.test() 对象调用
new test() new调用
test.call/apply(obj) 临时的让test成为obj对象的方法进行调用(obj.test())
19:什么函数是回调函数?
你定义了,没有调用却执行了
20:常见的回调函数?
dom事件的回调函数,定时器回调函数,ajax请求回调函数,生命周期的回调函数
21:IIFE
隐藏实现,不会影响外部命名空间,用它来编写js模块
22:this
函数必须通过对象来调用,如果没有指定就是window,所有函数内部都有this变量,他的值是调用函数的当前对象.
23:this的值
test():window
p.test():p
new test() :新创建的对象
p.call(obj):obj
24:js中加不加分号的讨论
1:可以不加分号
2:下面两种情况必须加分号.
小括号开头的前一条语句
中括号开头的前一条语句
解决:
在行首加分号
25:复习