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

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值