深浅拷贝,异步加载

深浅拷贝:


js数据存储机制:
数据 内存:
栈:普通类型的数据
堆:引用类型(值-->指针在栈)

浅拷贝、浅copy、浅复制:
var arr = []
var arr2 = arr;

双向绑定:

深拷贝、深copy、深复制:
序列化:将一个对象序列化为特定的字符串
toString()
JSON.stringify()序列化
JSON.pares()反序列化

场景:
 1、document.cookie='key='+JSON.stringify(arr|obj) 存值
 2、解决浅拷贝、实现深拷贝
 3、转化后端返回的数据流
 [{},{}]
 {data"[]} str

js时间线:浏览器用来记录js执行状态(整个页面的流程)
loading: init -loading
创建了document(文档节点),element text节点; 生成dom树结构
document.readyState = loading
--------
interactive: loading-interactive
解析html结构
css
html
js
html 结构解析完毕
document.readyState = interactive

DOMContentLoaded:addEventlistenear() 
异步加载的资源:
img src= 
iframe src=
异步数据

complete: interactive-complete
document.readyState = complete


js 单线程
1、js 执行会导致html页面解析的阻塞

异步处理方式:独立开辟线程 (间接让js实现了的"多线程")
setTimeout()
setInterval()
ajax  (不刷新页面的情况下拿到数据)

优化:
body
<script>
</script>

js的异步加载:
<script async='async'></script> 下载js异步执行->立即执行

<script defer='defer'></script> 下载js异步执行->等interactive后执行

*****
原生ajax:异步通信
 XMLHttpRequest
服务器交互?
form  表单 数据提交 发送数据
<a href='11.jsp?id=xxx'></a>  发送数据

获取服务器传递到客户端的数据:
XMLHttpRequest: 原生ajax 对象
var xhr = new XMLHttpRequest();
// 设置请求头的类型post传参
// post 请求、传值到服务器
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
    xhr.open(method,url,true)  // 设置请求的参数  false同步 | true 异步
    请求的状态码:
    200 成功
    300
    400 找后端 服务器问题
    401
    500 找后端 服务器问题
    xhr.oneradystatechange = function(){
        if(this.status == 200 && this.readyState ==4 ){
            this.response :  服务器响应的数据
        }
    }
    str = 'key=value&key2=value2'
    xhr.send(str)

异步:独立一个线程

get:数据 附着在地址栏上
post: 数据存储在requestHeader()

异步通信:与服务器做数据交互
无刷新请求 :页面的局部刷新
1、异步的表单提交
2、接口调用
3、部分无刷新请求数据的特效


节流防抖:解决js事件高频触发的问题
请求太过频繁 对服务器造成的压力过大
click 事件 :2000ms 50次 1次

节流:在一个时间周期内,如果事件频繁的触发只允许1次  
2000ms 50次 1次
1000ms 某个click只能触发一次?

防抖:在一个事件周期内,如果事件频发的触发只允许上一个事件周期允许的某一次执行 
2000ms 50次 每2秒这个周期执行一次


?js 中 如何判断数组真的是数组
typeof(arr)    //object
typeof(object) //object
typeof(null)   //object

Array.isArray(arr)    返回true 就是数组

es6 类: 面向对象
class Person(){
    
}

es5 构造函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值