js基础知识汇总
累了你就写会代码吧
越自律,越自由
展开
-
什么是JWT?
介绍JWT(json web token):前端鉴权JWT的构成第一部分头部(header)第二部分载荷(payload)第三部分签证(signature)总结优点json的通用性,JWT是可以进行跨语言支持的。有了payload部分,JWT可以在自身存储一些其他业务逻辑所必要的非敏感信息。便于传输,jwt的构成非常简单,字节占用很小,所以它是非常便于传输的。不需要在服务端保存会话信息, 所以它易于应用的扩展。...原创 2021-09-22 10:51:58 · 101 阅读 · 0 评论 -
简述什么是mvvm模式
含义:MVVM:Model-View-ViewModel缩写就是把MVC中的Controller演变成ViewModel。Model层代表数据模型,View代表UI组件,ViewModel是View和Model层连接的桥梁,数据会绑定到viewModel层并自动将数据渲染到页面中,视图变化的时候会通知viewModel层更新数据,数据变化后也会通知视图...原创 2021-07-28 10:31:22 · 838 阅读 · 0 评论 -
浏览器的渲染过程有哪些?
创建 DOM 树。用 HTML 解析器分析 HTML 元素,创建一棵 DOM 树。创建 CSS 规则树(CSS rule tree)。用 CSS 解析器解析 CSS 文件和 inline 样式,生成页面的样式表。创建 Render 树。将 DOM 树和 CSS 规则树关联起来,构建 Render 树。布局 Layout。根据 Render 树,浏览器开始布局,为每个 Render 树上的节点确定一个在显示器上出现的精确坐标。绘制 Painting。在 Render 树和节点显示坐标的基础上,调用每.原创 2021-07-01 16:06:29 · 52 阅读 · 0 评论 -
什么是js纯函数
概念:不依赖外部状态(无状态):函数的运行结果不依赖全局变量,this 指针,IO 操作等。没有副作用(数据不变):不修改全局变量,不修改入参。优点:便于测试和优化可缓存性自文档化更少 Bug...原创 2021-06-25 18:15:20 · 47 阅读 · 0 评论 -
函数式编程
特点:函数是一等公民。可以利用这点让它支持抽取到外部。声明做某件时间。函数式编程大多数声明某个函数需要做什么,而不是它怎么做的。便于垃圾回收。函数内部的变量方便垃圾回收,不会产生太多的变量,用户不需要大量的定义。数据不可变。函数式编程要求所有的数据都是不可变的,如果需要修改某个对象,应该新建后再修改,而不是污染原本的数据。无状态。不管什么时候运行,同一个函数对相同的输入返回相同的输出,而不依赖外部状态的变化。无副作用。功能 A 应该仅仅为了完成它的实现,而不会随着外部的改变而改变,这样当它执行原创 2021-06-25 18:14:25 · 54 阅读 · 0 评论 -
渐进式网络应用-(PWA)
概念:渐进式网络应用(PWA)是谷歌在 2015 年底提出的概念。基本上算是 Web 应用程序,但在外观和感觉上与原生 App 类似。支持 PWA 的网站可以提供脱机工作、推送通知和设备硬件访问等功能。优点:更小更快: 渐进式的 Web 应用程序比原生应用程序小得多。他们甚至不需要安装。这是他们没有浪费磁盘空间和加载速度非常快。响应式界面: PWA 支持的网页能够自动适应各种屏幕大小。它可以是手机、平板、台式机或笔记本。无需更新: 大多数移动应用程序需要每周定期更新。与普通网站一样,每当用户交互发原创 2021-06-25 18:13:25 · 497 阅读 · 0 评论 -
babel 编译原理
babylon 将 ES6/ES7 代码解析成 ASTbabel-traverse 对 AST 进行遍历转译,得到新的 AST新 AST 通过 babel-generator 转换成 ES5原创 2021-06-25 18:11:57 · 274 阅读 · 0 评论 -
js的异步
概念:JavaScript 是一个单线程的语言。单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行。好处:是实现起来比较简单,执行环境相对单纯。坏处:是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段 JavaScript 代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法执行。所以,JavaScript 将任务的执行模式分为两种:同步和异步。Js为什么需要异步:如果调原创 2021-06-25 18:11:12 · 62 阅读 · 0 评论 -
什么是Event Loop
概念:JavaScript 从 script 开始读取,然后不断循环,从 “任务队列” 中读取执行事件的过程,就是 事件循环(Event Loop)Event Loop 执行过程:一开始整个脚本 script 作为一个宏任务执行执行过程中,同步代码 直接执行,宏任务 进入宏任务队列,微任务 进入微任务队列。当前宏任务执行完出队,检查微任务列表,有则依次执行,直到全部执行完毕。执行浏览器 UI 线程的渲染工作。检查是否有 Web Worker 任务,有则执行。执行完本轮的宏任务,回到步骤 2原创 2021-06-25 18:09:05 · 74 阅读 · 0 评论 -
前端代码遵循的规范化
CommonJS 规范优点:所有代码在模块作用域内运行,不会污染其他文件require 得到的值是值的拷贝,即你引用其他 JS 文件的变量,修改操作了也不会影响其他文件缺点:应用层面。在 index.html 中做 var index = require(’./index.js’) 操作报错,因为它最终是后台执行的,只能是 index.js 引用 index2.js 这种方式。同步加载问题。CommonJS 规范中模块是同步加载的,即在 index.js 中加载 index2.js,如果 in原创 2021-06-24 16:27:50 · 79 阅读 · 0 评论 -
js获取屏幕位置
clientHeight:表示可视区域的高度,不包含 border 和滚动条offsetHeight:表示可视区域的高度,包含了 border 和滚动条scrollHeight:表示了所有区域的高度,包含了因为滚动被隐藏的部分clientTop:表示边框 border 的厚度,在未指定的情况下一般为0scrollTop:滚动后被隐藏的高度,获取对象相对于由 offsetParent 属性指定的父坐标(CSS 定位的元素或 body 元素)距离顶端的高度。...原创 2021-06-22 16:27:21 · 495 阅读 · 0 评论 -
什么是this
什么是this?对于函数而言,指向最后调用函数的那个对象,是函数运行时内部自动生成的一个内部对象,只能在函数内部使用;对于全局而言,this 指向 window。对于严格模式下,this 指向 undefined...转载 2021-06-22 16:24:25 · 202 阅读 · 0 评论 -
JS的事件流
什么是事件流:事件流描述的是从页面中接收事件的顺序,事件流包括下面几个阶段。事件捕获阶段处于目标阶段事件冒泡阶段如何让事件先冒泡后捕获:在 DOM 标准事件模型中,是先捕获后冒泡。但是如果要实现先冒泡后捕获的效果,对于同一个事件,监听捕获和冒泡,分别对应相应的处理函数,监听到捕获事件,先暂缓执行,直到冒泡事件被捕获后再执行捕获之间。addEventListeneraddEventListener 方法将指定的监听器注册到 EventTarget 上,当该对象触发指定的事件时,指定的回调函数原创 2021-06-22 16:18:00 · 71 阅读 · 0 评论 -
null 和 undefined 的区别
nullNumber(null) 得到 0作为函数的参数,表示该函数的参数不是对象作为对象原型链的终点。Object.prototype.proto === nullundefinedNumber(undefined) 得到 undefined变量被声明但是没有赋值,等于 undefined调用函数时,对应的参数没有提供,也是 undefined对象没有赋值,这个属性的值为 undefined函数没有返回值,默认返回 undefined...原创 2021-06-22 16:11:44 · 57 阅读 · 0 评论 -
DOM 常用 API
DOM的增删改查// 获取元素const node = document.getElementById(id); // 或者 querySelector(".class|#id|name");// 创建元素const heading = document.createElement(name); // name: p、div、h1...heading.innerHTML = '';// 添加元素document.body.appendChild(heading);// 删除元素doc原创 2021-06-22 16:09:01 · 65 阅读 · 0 评论