![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
海绵泡泡
专注前端,努力为大家带来优质内容的海绵泡泡。
展开
-
面试大概率被问到:ajax是什么...
先来看看什么是HTTP超文本传输协议(HTTP,HyperText Transfer Protocal ),是简单、可靠的互联网文件传输协议。HTTP的传输,不是一个文件整体传输,而是把一个大的文件,分成一个个报文(message),然后传输的。所以我们的浏览器渲染页面,一块一块加载的,图片是一条一条显示的。的确,一个jpg图片,也是通过多个报文回来的。每个报文都会进行校验,保证这个报文里面的内容是准确的、和服务器一致的。所以HTTP是可靠的,文件不会发生任何偏差。HTTP是无连接的,就是你访问一个原创 2021-08-16 17:47:21 · 88 阅读 · 0 评论 -
ES6模块和CommonJS区别,终于搞懂了
ESMES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。因为ESM是静态化的,所以在运行前的编译阶段就可以确定模块关系,从而进行一些模块之间的操作,比如treeshaking等等CMDCommonJS 只能在运行时确定这些东西。比如,CommonJS 模块就是对象,输入时必须查找对象属性。比如const a = 'func'; const func = require('./test/'+a+'.js'), 这个括号里面是可以放表达式的!!表达式 只原创 2021-07-15 15:01:52 · 2311 阅读 · 0 评论 -
生成器和迭代器,和可迭代对象
什么是生成器它允许你定义一个包含自有迭代算法的函数, 同时它可以自动维护自己的状态。生成器函数使用 function*语法编写。 最初调用时,生成器函数不执行任何代码,而是返回一种称为Generator的迭代器。 通过调用生成器的next() 方法消耗值时,Generator函数将执行,直到遇到 yield关键字。可以根据需要多次调用该函数,并且每次都返回一个新的Generator迭代器,但每个Generator只能迭代一次。Generator迭代器对象可以通过重复调用next()显式地迭代。 在原创 2021-04-21 11:40:27 · 77 阅读 · 0 评论 -
async/await中返回promise遇到reject报错问题
先看代码成功的function test(params) { return new Promise((resolve, reject) => { if (params.flag) { resolve(params.info); } else { reject("err"); } });}let data = { flag: true, info: 1 };async func原创 2021-04-03 10:42:42 · 2588 阅读 · 0 评论 -
promise封装函数
简易封装没有传参数的情况时,可以像这样let sleep100 = new Promise((resolve,reject) => { setTimeout(() => resolve(true), 100)})resolve(true) 相当于return,直接把状态改成fullfilled并结束掉有参数传入时,可以再包一层传入参数await后面接一个会return new promise的函数并执行它await只能放在async函数里(async function(原创 2021-03-05 14:15:03 · 856 阅读 · 0 评论 -
js关于二叉树的算法题大全
js关于二叉树的算法题大全创建二叉搜索树插入节点中序遍历、后序遍历DFS、BFS最大值,最小值寻找指定值 并返回路径寻找二叉树是否有一条路径 其和为指定值二叉树深度之字形打印二叉树层次打印二叉树**树的节点的定义**class Node { constructor(key){ this.key = key; this.left = null; this.right = null };}//////////////原创 2020-09-06 15:32:39 · 302 阅读 · 0 评论 -
js二分查找
递归法递归的时候是一层一层的return出来 最后一次是限定条件 不再调用函数如果这里的fn 前面不写return 则到最后一层一层返回到最上层时 没有return函数fn结束掉 它还会继续往下执行 即return -1所以只要不是 num == arr[mid] 都会返回-1function searchNum(num) { var fn = (arr,end,start)=&...原创 2020-03-05 20:24:22 · 295 阅读 · 0 评论 -
快速&&冒泡&&插入排序
快速排序function swift(arr) { if (arr.length <= 1) { return arr; } var middle = parseInt(arr.length / 2); var arrleft = [], arrright = []; for (let i = 0; i < ar...原创 2020-03-02 15:33:38 · 112 阅读 · 0 评论 -
原生js实现表单序列化
var $form= document.getElementById("biaodan"); var btn = document.getElementById("btn"); btn.onclick = function(){ //得到表单中的所有控件 var elems = $form.elements; //结果数组 var arr = []; //...原创 2020-02-22 13:14:11 · 170 阅读 · 0 评论 -
原生js实现数组扁平化
利用Array.prototype.some()解决some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。some() 方法会依次执行数组的每个元素: 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。注意: some() 不会对空数组进行检测。注意: some() 不会改变原始数组。比如[1,2,...原创 2020-02-19 12:58:44 · 156 阅读 · 0 评论 -
原生JS实现图片懒加载效果
原生JS实现图片防抖:未加入函数节流 以后补上涉及知识点: Node.children:返回指定节点的所有element子节点,即返回节点元素 Node.childNodes:返回指定节点的所有子节点,包括节点元素和文本元素可以用getBoundingClientRect() 它可以获得矩形四条边框,对于当前视口左上角的left right top ...原创 2020-02-18 14:00:33 · 150 阅读 · 0 评论 -
jquery实现图片懒加载
<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maxi...原创 2020-02-18 11:16:29 · 119 阅读 · 0 评论 -
js中apply、call、bind的区别,以及对应的小技巧
首先,这三者有一定的相似之处:1、接收两个参数2、第一个,改变this指向,第一个参数即是改变后的this3、第二个,需要传递的参数然后这三者的主要区别 如下:1、call,apply会直接运行,而bind只是改变指向,并不会运行函数var personWang = { name : "小王", sex : "男", age : 24, say : ...原创 2020-02-11 16:41:09 · 154 阅读 · 0 评论