随笔分类 - js笔记
1
摘要:reduce()会循环数组,侧重于滚雪球的操作,上一次的结果是下一次的输入,例如实现累加 实现数组累加: 法一: let arr = [1, 2, 3, 4, 5, 6] let sum=0 arr.forEach(item => { sum=sum+item }) console.log(sum)
阅读全文
摘要:同源策略 同源是指资源地址的 "协议 + 域名 + 端⼝" 三者都相同 下面是一些地址的同源判断示例: 以下不同地址的页面, 去请求一个接口: http://store.company.com/getInfo 同源策略是 浏览器 的一种⽤于隔离潜在恶意⽂件的重要安全保护机制 !!! (服务器没有这个
阅读全文
摘要:重排 重排是指部分或整个渲染树需要重新分析,并且节点的尺⼨需要重新计算。 表现为 重新⽣成布局,重新排列元素。 重绘 重绘是由于节点的⼏何属性发⽣改变(重排导致的重绘),或由于样式发⽣改变(例如:改变元素背景⾊)。 表现为某些元素的外观被改变。或者重排后, 进行重新绘制!
阅读全文
摘要:TCP 三次握手理解 (双方确认) TCP是一个端到端的 可靠 面相连接的协议, HTTP基于传输层TCP协议不用担心数据传输的各种问题(当发生错误时,可以重传) 根据这个IP,找到对应的服务器,发起TCP的三次握手 为什么要3次握手 我们假定第一次发送的请求, 因为网络延迟很慢才到达服务端, 然后
阅读全文
摘要:HTTPS 在传输数据的过程中会对数据进行加密处理,保证安全性。 目前常见的加密算法可以分成三类,对称加密算法,非对称加密算法 和 Hash算法。 对称加密算法 相同密钥加密解密(加密和解密使用同一把钥匙), 可逆的! 可以用于加密解密传输数据 想使用对称加密算法, 一定要保证密钥不被泄漏 (且进行
阅读全文
摘要:继承 - 原型继承 什么是原型链??? function child(){ this.xx = 'xx'; //子类自己的定义 } child.prototype = new parent(); //这里new parent()父类对象并没有constructor属性,需要后面加上 child.pr
阅读全文
摘要:JS中内存的分配和回收都是自动完成的,内存在不使用的时候会被垃圾回收器自动回收。 内存的生命周期 JS环境中分配的内存, 一般有如下生命周期: 内存分配:当我们声明变量、函数、对象的时候,系统会自动为他们分配内存 内存使用:即读写内存,也就是使用变量、函数等 内存回收:使用完毕,由垃圾回收自动回收不
阅读全文
摘要:####cookie 当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。这个特点很重要,因为这关系到“什么样的数据适合存储在cookie中”。
阅读全文
摘要:一. 单线程 单线程,是指在JS引擎中负责解释和执行JavaScript代码的线程只有一个 ,不妨叫它主线程 但是实际上还存在其他的线程。例如:处理AJAX请求的线程、处理DOM事件的线程、定时器线程、读写文件的线程(例如在Node.js中)等等。这些线程可能存在于JS引擎之内,也可能存在于JS引擎
阅读全文
摘要:async function fun(){ return 1 } let a=fun() console.log(a); 返回的是promise对象,那么如何拿到结果1了? a.then(data=>{ console.log(data); }) //输出1 其实以上代码相当于 function f
阅读全文
摘要:页面的加载和渲染过程 1.浏览器通过HTTP协议请求服务器,获取HMTL文档并开始从上到下解析,构建DOM; 2.在构建DOM过程中,如果遇到外联的样式声明和脚本声明,则暂停文档解析,创建新的网络连接,并开始下载样式文件和脚本文件; 3.样式文件下载完成后,构建CSSDOM;脚本文件下载完成后,解释
阅读全文
摘要:1.数据类型 - 1.原始数据类型 数值,字符串,布尔,null,undefined 直接存储在栈(stack)中的数据 - 2.引用数据类型 对象 存储的是该对象在栈中引用,真实的数据存放在堆内存里 2.对象拷贝 浅拷贝只拷贝第一层,深拷贝递归遍历拷贝每一层 1.浅拷贝 浅拷贝是按位拷贝对象,它会
阅读全文
摘要:call方法 call是函数中的方法.. 1.call:可以调用函数,并改变this指向 let dog={ name:"wang", sayHi:function(){ console.log(this.name); } } let cat={ name:'miao' } dog.sayHi()
阅读全文
摘要:1.对象方法里的this,指向调用方法的对象 2.事件中的this指向触发事件的DOM对象 3.构造函数中的this指向new创建的对象(new关键字做了什么?) new会创建一个对象,并将构造函数中的this指向创建中的对象 4.箭头函数中没有this(箭头函数外指向谁,箭头函数里的this指向谁
阅读全文
摘要:1.es6继承 // 定义一个普通用户 class User{ constructor(name,password){ this.name=name this.password=password } login(){ console.log('登录'); } } // 定义一个管理员类,可以继承普通
阅读全文
摘要:1.原型对象:每个对象都有一个原型,他能调用原型的方法和属性 例:定义一个猫对象 let cat={ name:'miaomiao' } 如何获取它的原型对象__proto__。并给原型添加吃鱼的方法 cat.__proto__.eat=function(){ console.log('吃鱼') }
阅读全文
摘要:如何理解回调地狱? 假如有一天,天气非常好,我出去玩,我想喝奶茶又想吃火锅,奶茶和火锅得等到做好才能吃,他们两为异步操作 我们定义一个获取奶茶和火锅的函数 <script> //获取奶茶的方法 function getTea(fn){ //5秒后获得奶茶 setTimeout(()=>{ //ret
阅读全文
摘要:节流:控制事件执行次数 事件高频触发,控制执行次数(平A) 案例:滚动就触发 <style> body{ height:2000px } </style> </head> <body> <script> window.onscroll=function(){ console.log('hello')
阅读全文
摘要:1.闭包的概念 1.闭包:就是函数内部嵌套函数 function outer(){ function inner(){ } } 以上就构成了闭包 经典案例: function outer(){ let a=10 function inner(){ console.log(a); } return i
阅读全文
摘要:1、防抖 防抖:用户连续多次触发事件,只有最后一次触发执行操作 例如:输入框输入触发,输入时不触发打印,只有等最后一次输入完才触发打印操作 let inp=document.querySelector('input') inp.oninput=function(){ console.log(thhi
阅读全文
1