1.undefined和null的区别
区别
undefined是指声明了变量但是为赋值。 null是指声明了变量但是赋值为null。 null 的type类型是Object。
什么情况下才会使用null呢?
- 1.当赋值的变量为对象事但是又没有数据可以赋值,先将变量赋值为null。
- 2.垃圾对象需要赋值为null。(垃圾回收机制GC)
严格区别变量类型和数据类型?
数据类型:基本类型 对象类型 变量类型(变量内存值得类型):基本类型(保存的基本类型的值) 引用类型(栈地址中保存的堆地址的值)
什么是数据
存储子啊内存中待变内定信息的数据二进制。
什么是内存
内存条通电之后产生的可存储数据的空间。(临时的)
JS在调用 函数时传递的变量参数是值传递还是引用传递?
值传递(基本值,地址值) ,只有赋值操作还可以改变变量的值,其他都是读操作。
let a = 3
function fn(a){
a = a + 1
}
fn(a)//这里有两个操作,一个是将全局的变量a的值传递给a,然后再进行操作,这是两个变量。
console.log(a)//3
JS引擎的内存管理?
内存生命周期:分配小内存空间,得到使用权,储存数据反复操作,释放小内存空间。 释放内存:局部变量函数执行完自动释放,对象是成为垃圾对象,垃圾回收机制回收。
对象
对象是一个可以保存多个数据(属性和方法)用来统一管理的。所有属性名都是字符串。
函数
实现特定功能的n条语句的封装体。
函数声明:
function fn1(){
....
}```
表达式:
```js
let fn2 = function (){
...
}
函数的调用:
- fn()
- obj.fn()
- new fn()
- fn.call/apply(obj)临时的让函数作为对象的方法来进行调用
回调函数
1.自己定义的 2.自己没有调用 3.最终执行了
常见的回调函数:dom事件回调函数 定时器回调函数 ajax回调函数 生命周期回调函数