JS高级一

34 阅读2分钟

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引擎的内存管理?

内存生命周期:分配小内存空间,得到使用权,储存数据反复操作,释放小内存空间。 释放内存:局部变量函数执行完自动释放,对象是成为垃圾对象,垃圾回收机制回收。

对象

对象是一个可以保存多个数据(属性和方法)用来统一管理的。所有属性名都是字符串。

image.png

函数

实现特定功能的n条语句的封装体。

函数声明:

function fn1(){
....
}```
表达式:

```js
let fn2 = function (){
...
}

函数的调用:

  • fn()
  • obj.fn()
  • new fn()
  • fn.call/apply(obj)临时的让函数作为对象的方法来进行调用

回调函数

1.自己定义的 2.自己没有调用 3.最终执行了

常见的回调函数:dom事件回调函数 定时器回调函数 ajax回调函数 生命周期回调函数