阅读 179

前端- JavaScript的那些知识点(二)

怎么改变this的指向呢?

1、使用es6箭头函数

2、在函数内部定义引用that = this

3、apply、call、bind

4、new实例化一个对象

call、apply、bind的区别?

call、apply他们两个的第一个参数都是一样的表示要改变指向的对象,第二个参数call是以逗号隔开,apply是数组的形式

bind是返回一个函数

深浅拷贝之数据类型

基本类型: undefined、null、Boolean、String、Number、Symbol、在内存中大小固定、保存在栈内存中、基本数据类型的复制就是创建了一个新的副本,改变值旧对象不会改变。

引用类型: Object、Array、Date、Function等引用类型的值是对象,保存在堆内存中, 而栈内存存储的是对象的变量标识符和对象的储存地址

深浅拷贝之实现方式

浅拷贝:仅仅复制了引用,会影响原来的值,只能拷贝一层,slice、concat、obj.assign。

深拷贝:在堆中重新创建内存,不同的地址,不同的值,互不影响,可以层层拷贝,json.string、json.parse

settimeout和setinterval的区别

js是单线程的、浏览器遇到settimeout和setinterval会先把他们推入浏览器的待执行时间队列里边,然后向下执行代码,代码执行完之后去看事件队列里边有没有任务,有的话就执行

前端跨域问题

同源策略:协议、域名、端口号要相同

1、jsonp:只能解决get。原理:动态创建一个script标签,利用script的src和herf都不受同源策略的限制去请求第三方度服务器的资源内容。地址后边问号然后生命一个函数用来本地接受

2、document.domain基础域名相同,子域名不同

3、window.name利用在一个浏览器窗口内,载入所有的域名都是共享一个window.name

4、服务端设置HTTP响应头Access-Control-Allow-Origin

5、H5新特性window.postMessage(data,url)

函数的防抖和节流:都是为解决高频事件而来

防抖:短时间内多次触发同一个事件,只执行开头或者最后的一次

节流:节流是连续触发事件的过程中在一定的时间内间隔执行函数,会稀释频率,比如每隔一秒执行一次,无论这一秒钟触发了多少次


作者:盖了帽了
链接:https://juejin.cn/post/7027747682059812901


文章分类
前端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐