
JavaScript
VisionBiry
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HTML 标签分类
标签分类 块级元素{block} 行内元素{inline} 行级块元素(也称块级行元素){inline-block} 块级元素 可以设置宽高、内、外边距; 独占一行(即前后均有换行); 块级元素如果不设置宽度和高度,则宽度默认为父级元素的宽度。高度则根据内容大小自动填充。 常见的块级元素: div、p、h1、h2…hn,ol、ul、dl、li、form、table 行内元素 不可设置...原创 2020-02-11 16:16:03 · 377 阅读 · 0 评论 -
防抖、节流与回流、重绘
防抖:任务频繁触发的情况下,只有任务触发的间隔超过指定间隔的时候,任务才会执行。 /** * 防抖函数 * @author vision * @param {执行函数} fn * @param {延迟} delay */ export function debounce(fn, delay) { let timer = null; return function() { ...原创 2020-02-11 16:13:20 · 992 阅读 · 0 评论 -
浏览器解析文档资源、渲染页面的流程
浏览器通过 HTMLParser 根据深度遍历的原则把 HTML 解析成 DOM Tree。 浏览器通过 CSSParser 将 CSS 解析成 CSS Rule Tree(CSSOM Tree)。 浏览器将 JavaScript 通过 DOM API 或者 CSSOM API 将 JS 代码解析并应用到布局中,按要求呈现响应的结果。 根据 DOM 树和 CSSOM 树来构造 render Tr...原创 2020-02-11 16:06:00 · 418 阅读 · 0 评论 -
什么是闭包?(以防抖函数作为示例)
什么是闭包? 简单来说,就是能够读取其他函数内部变量的函数就是闭包。例如:防抖和节流函数就是很好的闭包例子 闭包的产生其实来自于js的变量作用域。在js中,变量的作用域属于函数作用域,当函数执行完成之后,作用域就会被清理,内存也就随之被回收。但是由于闭包函数是建立在函数内部的子函数,闭包函数又能够访问父函数的变量,所以就会导致当父函数执行完成时,其作用域不会销毁,该变量永久的保存在内存中直到闭包...原创 2020-02-11 16:04:32 · 1828 阅读 · 0 评论 -
JavaScript基础类型
1. 七种基础类型 null undefined boolean Number String Symbol(较新标准) BigInt(新标准) NaN 也属于 number 类型,并且 NaN 不等于自身 2. 基础类型的特性 基本类型的值是保存在栈内存中的简单数据段 基础类型是不可变的 即不能强行修改:Array.prototype.sort.call(‘abc’);(会报错) ...原创 2020-02-11 16:02:58 · 226 阅读 · 0 评论 -
离开回调地狱,进入Promise时代
简介 在JavaScript的世界中,所有代码都是单线程执行的。由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行,所以所期望的结果往往就会不一样,由于JS灵活性,便产生了callback回调函数,将函数作为参数,以获得期望结果,这在简单的异步操作中有很好的表现,但在复杂/多层异步中就会变得恐怖起来,代码将会看起来非常臃肿,且不易维护,这就是“回调地狱”。为了解...原创 2020-02-11 15:59:35 · 204 阅读 · 0 评论 -
5道JavaScript面试题解析,理解变量提升、闭包、事件循环和微任务
问题1:下面这段代码,浏览器控制台上会打印什么? var a = 10; function foo(){ console.log(a); var a = 20; } foo(); 答案:undefind 解析: 使用var关键字声明的变量在JavaScript中会被提升,并在内存中开辟空间,由于没有赋值,无法定义数值类型,所以分配默认值undefined。var声明的变量,真正的数值...原创 2019-08-10 10:53:32 · 338 阅读 · 0 评论 -
算法的时间复杂度计算方式
基础 我们假设计算机运行一行基础代码需要执行一次运算。 function foo(num) { console.log("Hello, World!"); // 需要执行 1 次 return 0; // 需要执行 1 次 } 那么上面这个方法需要执行 2 次运算 function foo(num) { for(let i = 0; i<nu...原创 2019-08-13 22:27:21 · 1227 阅读 · 0 评论 -
JavaScript 经典算法面试题 - 移动零
题目 给定一个数组nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序。例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, 12, 0, 0]。 注意事项: 必须在原数组上操作,不要为一个新数组分配额外空间。尽量减少操作总数。 解法一: 思路:查找出数组中所有的0,从数组中移除后立刻push到数组末尾。其中参数...原创 2019-08-07 09:08:00 · 397 阅读 · 0 评论 -
JavaScript 经典算法面试题 - 无重复字符的最长子串的长度
题目 给定一个字符串,请你找出其中不含有重复字符的 **最长子串 **的长度。 示例 **输入: **“abcabcbb”**输出: **3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 解题思路: 滑动窗口思想{个人本身不知道这个词,但解题思路是一样,利用队列思想进行解题} 什么是滑动窗口? 其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 a...原创 2019-08-08 00:02:21 · 564 阅读 · 1 评论