JS基本数据类型,什么是引用数据类型,各个数据类型是如何存储;JS垃圾回收机制;JS性能优化方式;Spread Operator 展开运算符;AJAX 请求数据步骤;传输的数据是用get 还是post

JavaScript中基本数据类型包括Number,String,Boolean等,存储在栈中;引用数据类型如Object、Array存储在堆中,通过引用地址访问。垃圾回收机制主要包括标记清除和引用计数策略。JS性能优化涉及删除未使用的代码、避免全局变量、合理使用缓存等。AJAX请求包括建立XMLHttpRequest、配置请求、发送数据等步骤,GET用于获取数据,POST用于提交数据。

一. Javascript中什么是基本数据类型,什么是引用数据类型?以及各个数据类型是如何存储的?

  1. 基本数据类型有
    1. Number
    2. String
    3. Boolean
    4. Undefined
    5. Symbol(es6新增数据类型)
    6. bigInt

 

  1. 引用数据类型统称为 Object 类型,细分的话有
    1. Object
    2. Arrary
    3. Date
    4. Function
    5. RegExp

 

  1. 基本数据类型的数据直接存储在栈中;而引用数据类型的数据存储在堆中,在栈中保存数据的引用地址,这个引用地址指向的是对应的数据,以便快速查找到堆内存中的对象
  2. 栈内存是自动分配的,而堆内存是动态分配的,不会自动释放,所以每次使用完对象的时候都要把它设置为 null, 从而减少无用内存的消耗

二. Javascript 中的垃圾回收机制?
 按照固定的时间间隔,周期性地寻找那些不再使用的变量,然后将其清楚或释放内存。

1.标记清除:
原理:是当变量进入环境时,将这个变量标记为“进入环境”。当变量离开环境时,则将其标记为“离开环境”。标记“离开环境”的就回收内存。

垃圾回收器,在运行的时候会给存储在内存中的所有变量都加上标记。
去掉环境中的变量以及被环境中的变量引用的变量的标记。
再被加上标记的会被视为准备删除的变量。
垃圾回收器完成内存清除工作,销毁那些带标记的值并回收他们所占用的内存空间。

2.引用计数
原理:跟踪记录每个值被引用的次数。

声明了一个变量并将一个引用类型的值赋值给这个变量,这个引用类型值的引用次数就是1。
同一个值又被赋值给另一个变量,这个引用类型值的引用次数加1。
当包含这个引用类型值的变量又被赋值成另一个值了,那么这个引用类型值的引用次数减1。
当引用次数变成0时,说明没办法访问这个值了。
当垃圾收集器下一次运行时,它就会释放引用次数是0的值所占的内存。
 

三. JS性能优化的方式有哪些? 

1.删除未使用的js代码:
1、未使用的功能性代码以及与之相关的代码
2、多余的依赖库
3、被滥用的npm包
4、公共模版代码
2.数组和对象操作避免使用构造函数
3.尽量避免使用非必要的全局变量
4.合理使用缓存机制(
访问本地的数据很显然比远程数据要快快很多
5.减少循环中的活动
6.减少不必要的变量
7.并不是代码量越少性能就越好
8.最小化语句数(
JS代码中的语句数量也会影响所执行的操作的速度
9.原生方法更快(
最小的顺序组织逻辑,可以得到进一步的优化
10.尽量避免使用闭包(
常驻内存必然增加内存的使用量;使用不当很容易造成内存泄漏。

四、 Spread Operator 展开运算符(...) 

 可以通过展开操作符(Spread operator)...扩展一个数组对象和字符串。展开运算符(spread)是三个点(…),可以将可迭代对象转为用逗号分隔的参数序列。如同rest参数的逆运算。

 

 

 

 

 

 

 

五. AJAX 请求数据步骤是什么?传输的数据是用的 get 还是post? 

 

AJAX请求的五个步骤

1.建立XMLHttpRequest对象;
2.设置回调函数;
3.配置请求信息,(如open,get方法),使用open方法与服务器建立链接;
4.向服务器发送数据;
5.在回调函数中针对不同的响应状态进行处理;

get请求是从指定的资源请求数据,get请求基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。
post请求是向指定的资源提交要处理的数据,post请求也可用于从服务器获取数据。不过,post方法不会缓存数据,并且常用于连同请求一起发送数据。

 如果调用是要检索服务器上的数据则使用GET。如果要检索的值会随时间和更新进程的改变而改变则要在GET调用中添加一个当前时间参数,这样后面的调用才不会使用先前的不正确的缓冲。如果调用是向服务器上发送任意数据,就可以使用POST

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值