05 2020 档案
摘要:Js捕获异常的方法 JavaScript的异常主要使用try catch finally语句以及窗口对象window的onerror事件来捕获。 try catch finally try catch finally只能捕获运行时的错误,无法捕获语法错误,可以拿到出错的信息,堆栈,出错的文件、行号、
阅读全文
摘要:Object对象 Object对象是JavaScript中两个顶层对象之一,提供方法供直接调用以及原型链继承调用。 Object.assign Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象,本文认为只有引用类型才有浅拷贝与深拷贝的概念,
阅读全文
摘要:SSO单点登录 SSO单点登录是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 实例 最初的时候,服务的提供者只做了一个单系统,所有的功能都在单系统上,此时不需要SSO,一次登录就可以访问所有功能,后来用户量越来越大且功能服务越来越多,为了合理利用资源和降低耦合性,服务商将
阅读全文
摘要:Set与WeakSet Set对象允许存储任何类型的唯一值,无论是原始值或者是对象引用,Set对象中的值不会重复。 WeakSet对象允许存储对象弱引用的唯一值,WeakSet对象中的值同样不会重复,且只能保存对象的弱引用。 Set 描述 Set对象是值的集合,可以按照插入的顺序迭代它的元素,Set
阅读全文
摘要:Web Worker JavaScript是单线程语言,如果在Js主线程上进行比较耗时的操作,那么不仅异步的事件回调无法正常完成,浏览器的渲染线程也将被阻塞,无法正常渲染页面。Web Worker能够把JavaScript计算委托给后台线程,线程可以执行任务而不干扰用户界面。 描述 worker是使
阅读全文
摘要:Map与WeakMap Map对象用来保存键值对,并且能够记住键的原始插入顺序,任何对象或者原始值都可以作为键或者是值。 WeakMap对象同样用来保存键值对,对于键是弱引用的而且必须为一个对象,而值可以是任意的对象或者原始值。 Map 描述 Map对象类似于一个普通的键值对的Object对象,也是
阅读全文
摘要:OAUTH开放授权 开放授权为用户资源的授权提供了一个安全的、开放而又简易的标准。 的授权不会使第三方触及到用户的帐号信息例如用户名与密码等,即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 授权是安全的,目前 的版本为 。 实例 假如此时有一个网站提供照片的冲印服务并且提供邮
阅读全文
摘要:实现浅拷贝与深拷贝 包含基本数据类型与引用数据类型两种不同的数据类型的值,深拷贝与浅拷贝的概念只存在于引用数据类型。对于引用类型,浅拷贝是拷贝了指向这个对象堆内存的指针,是拷贝了对原对象引用,深拷贝是拷贝了该对象的所有属性到一个新的对象,若是原对象的某属性依然引用了其他对象,那么需要将原对象引用的其
阅读全文
摘要:Float浮动 中`float`属性会使元素浮动,使元素向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。 实例 元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。 使用 意味着使用块布局,其会在 非块级元素情况下修改 值的计算值。 一个浮动元素会尽量向左或向右移动,直到它的
阅读全文
摘要:Position定位 中`position position static relative absolute fixed sticky inherit`。 static 属性是 元素的默认值,即没有定位,遵循正常的文档流对象,对于 、`bottom left right z index`属性的设置
阅读全文
摘要:实现图片懒加载 图片懒加载就是当页面需要展示较多图片时,首先只加载显示在当前屏幕位置的图片,在页面向下滚动时,再加载其他需要显示在当前屏幕位置的图片,这样可以防止一次性对服务器发送大量请求,并可以在用户不需要完整浏览页面的情况下减少服务器资源消耗。 实例 每日一题
阅读全文
摘要:Js的GC机制 在 七种基本类型中的引用类型 的变量其占据内存空间大且大小不固定,在堆内存中实际存储对象,在栈内存中存储对象的指针,对于对象的访问是按引用访问的。在栈区中执行的变量等是通过值访问,当其作用域销毁后变量也就随之销毁,而使用引用访问的堆区变量,在一个作用域消失后还可能在外层作用域或者其他
阅读全文
摘要:防抖与节流 防抖 与节流 都是控制事件处理函数执行频率的方法,当函数会进行 操作或者具有请求服务器等行为并且作为高频事件例如 触发的事件处理函数时,就需要进行事件处理函数执行频率的控制,否则会造成大量的资源浪费致使性能下降,当然无论是防抖与节流实质上并没有减少事件触发次数,而是通过减少事件处理函数的
阅读全文
摘要:Js中的堆栈 堆 是动态分配的内存,大小不定也不会自动释放,栈 为自动分配的内存空间,在代码执行过程中自动释放。 栈区 在栈内存中提供一个供 代码执行的环境,关于作用域以及函数的调用都是栈内存中执行的。 中基本数据类型 、`Number Boolean Null Undefined Symbol O
阅读全文
摘要:浏览器窗口间通信 浏览器多个标签页窗口间通信,主要是指的同源的多个页面间的通信,主要方法有本地存储通信、 通信、 通信。 本地存储通信 通过浏览器对于同源页面本地存储是共享的策略实现通信,主要可以使用 、`cookie indexDB sessionStroage MDN window.open s
阅读全文
摘要:块级格式化上下文 块级格式化上下文 ,是 页面的可视 渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域,是用于布局块级盒子的一块渲染区域,并且与这个区域的外部毫无关系,是一个独立的区域,是一个环境。 触发BFC 根元素``。 浮动元素,元素的 不是 。 绝对定位元素,元素
阅读全文
摘要:实现瀑布流布局 瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部,瀑布流的主要特性便是错落有致,定宽而不定高的设计让页面区别于传统的矩阵式图片布局模式。 实例 主体思路是记录每一列的高度,父容器相
阅读全文
摘要:getter与setter 是一个获取某个属性的值的方法, 是一个设定某个属性的值的方法。 描述 通过 与`setter getter setter`即可实现监听,而不需要找到并修改每一个操作这个值的代码。 有时需要允许访问返回动态计算值的属性,或者需要反映内部变量的状态,而不需要使用显式方法调用,
阅读全文
摘要:Js实现链表操作 实现链表主要操作,包括创建链表、遍历链表、获取链表长度、获取第 个元素值、获取倒数第 个元素值、插入节点、删除节点、有序链表合并、有序链表交集。 创建链表 遍历链表 获取链表长度 获取第i个元素值 每日一题
阅读全文
摘要:defineProperty 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象,也就是说,该方法允许精确地添加或修改对象的属性。 语法 : 要定义属性的对象。 : 要定义或修改的属性的名称或 。 : 要定义或修改的属性描述符。 属性描述符 对象里目前存在的属性描述符有两
阅读全文
摘要:Js实现数组排序 常用排序的 实现方案,包括原型链方法调用、简单选择排序、冒泡排序、插入排序、快速排序、希尔排序、堆排序、归并排序。 原型链方法调用 简单选择排序 插入排序 快速排序 希尔排序 堆排序 归并排序 每日一题
阅读全文
摘要:OSI七层模型 OSI七层模型包括物理层、数据链路层、网络层、运输层、会话层、表示层、应用层,其中会话层、表示层、应用层一般统称为应用层,在TCP/IP四层模型中物理层与数据链路层归为网络接口层,网络层与运输层是单独的层级,会话层、表示层、应用层归为应用层。 物理层 物理层的主要任务描述为确定与传输
阅读全文
摘要:图片等比例缩放方案 在 开发时无可避免的需要将图片进行缩放,缩放时需要保证图片不变形,也就是需要等比例缩放。 设定宽度或高度 引入图片时,仅设置图片的 或者是 就可以使另一边自适应,从而实现等比例缩放。 设定最大宽度或最大高度 引入图片时,仅设置图片的 或者是 就可以使另一边自适应,从而实现等比例缩
阅读全文
摘要:手动实现Promise 是单线程的语言,通过维护执行栈与任务队列而实现了异步操作, 与`Ajax Promise`就是异步操作的一个解决方案,用于表示一个异步操作的最终完成或失败, 及其结果值。 语法 是带有 和`reject Promise executor resolve reject exec
阅读全文
摘要:Window对象 window作为全局变量,代表了脚本正在运行的窗口,将属性与方法暴露给JavaScript。 Window对象属性 closed: 表示所引用的窗口是否关闭。 console: 提供了向浏览器控制台输出日志信息的方法。 crypto: 此对象允许网页访问某些加密相关服务。 cust
阅读全文
摘要:Js获取数据类型 有着七种基本类型 、`Number Boolean Null Undefined Symbol Object Object`为引用类型。 typeof 或`typeof operand operand`是一个表示对象或原始值的表达式,其类型将被返回。 规则 : : : : : :
阅读全文
摘要:响应式布局的实现 响应式布局指的是同一页面在不同屏幕尺寸或者在不同的设备下有不同的布局,能够在大屏设备以及小屏设备获得更好的浏览体验,简单来说就是页面适应终端而无需为每个终端制作单独的页面。 媒体查询 通过使用 媒体查询来实现响应式布局,针对不同的媒体类型设置不同的样式规则,可以根据视窗、设备高度与
阅读全文
摘要:PHP验证码识别实例 验证码识别实例,识别的过程包括对图像的二值化、降噪、补偿、切割、倾斜矫正、建库、匹配,最后会提供实例代码,能够直接运行识别。 简述 要识别的验证码相对比较简单,没有粘连字符,但是会有几种不同程度的字体加粗,以及大约 度的倾斜,还有字符的个数会在 个之间变化,相对来说还是使用 进
阅读全文
摘要:行内元素和块级元素 可以将元素种类分为行内元素、块级元素和行内块级元素三种,在使用过程中可以通过 的`display`属性相互转换。 行内元素 行内元素对应的 样式设置为 。 特点 元素排在一行 封闭后不会自动换行 不能指定高度与宽度 可以使用 来指定高度 外边距对于水平方向有效,垂直方向无效 内边
阅读全文
摘要:Js遍历对象总结 Js遍历对象的方法主要有for in、Object.keys()、Object.getOwnPropertyNames()、Reflect.ownKeys()、Object.getOwnPropertySymbols()。 for in for in语句以任意顺序迭代对象的可枚举属
阅读全文
摘要:微信小程序实现原理 微信小程序采用 、`wxss javascript MVVM UI Webview AppService Webview AppService JSBridge UI`的渲染与事件的处理。 目录结构 打包前 打包后 架构方案 微信小程序的框架包含两部分 视图层与 逻辑层, 层用来
阅读全文
摘要:手动实现apply、call、bind 每个 对象都存在 、`call() bind() this`对象的值,以扩充函数赖以运行的作用域。 apply : 必选,在 函数运行时使用的 值, 可能不是该方法看到的实际值,如果这个函数处于非严格模式下,则指定为 或`undefined`时会自动替换为指向
阅读全文