- 博客(25)
- 收藏
- 关注
原创 (promise-polyfill)手动实现一个符合Promises/A+规范的promise, 并添加Promise的常用方法
/* Promises/A+ specification */// 1. Terminology// 1.1. “promise” is an object or function with a then method whose behavior conforms to this specification.// 1.2. “thenable” is an object or functi...
2019-01-15 11:02:48
892
原创 物理像素、CSS像素、dip、dpr、ppi、dpi
物理像素(physical pixel)物理像素又被称为设备像素(dp),他是显示设备中一个最微小的物理部件。一个设备的物理像素是固定不变的。每个像素可以根据操作系统设置自己的颜色和亮度。所谓的一倍屏、二倍屏(Retina)、三倍屏,指的是设备以多少物理像素来显示一个CSS像素,也就是说,多倍屏以更多更精细的物理像素点来显示一个CSS像素点,在普通屏幕下1个CSS像素对应1个物理像素,而在Ret...
2018-10-08 18:38:53
2225
原创 层叠水平(stacking level)与层叠上下文(stacking context)
层叠水平顺序(W3C):形成堆叠上下文环境的元素的背景与边框.拥有负 z-index 的子堆叠上下文元素 (z-index的值越小层级越低).正常流式布局,非 inline-block,无 position 定位(除了static)的子元素.无 position 定位(static除外)的 float 浮动元素.正常流式布局, inline-block元素,无 position 定位...
2018-09-19 21:24:02
563
原创 JS中的原型应用(继承与扩展)
JS中的原型原型机制(prototype)是JavaScript中非常重要的机制,通过[[prototype]],我们可以轻易地实现构造函数与其实例的继承与扩展。原型的概念大致如下图展示,详情可以参考MDN,本文主要讲原型在实际中的应用。 参考jQuery与zepto中的原型机制,原型的应用大致分为以下几个部分:定义构造函数定义生成实例接口定义初始化函数提供扩展接口(插件...
2018-08-05 12:56:57
1313
1
原创 使用Echarts快速绘图-根据数据实时渲染直方图与折线图
EchartsECharts,一个使用 JavaScript实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。通过使用ECharts,可以快速实现数据可视化,下面简单演示一下直方图与折线图的...
2018-07-25 17:48:00
7228
原创 JS对象-不可扩展对象、密封对象、冻结对象
JS中的不可扩展对象、密封对象、冻结对象在JavaScript 中,可以对对象的权限进行配置,通过配置,可将对象设置为不可扩展对象、密封对象、冻结对象等,以达到保护对象属性的目的。不可扩展对象如果一个对象可以添加新的属性,则这个对象是可扩展的。Object.preventExtensions()将对象标记为不再可扩展,因此它将永远不会具有超出它被标记为不可扩展的属性。注意,一般来说,不...
2018-07-20 18:24:59
2050
原创 使用Echarts快速绘图-饼图
EchartsECharts,一个使用 JavaScript实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。通过使用ECharts,可以快速实现数据可视化,下面简单演示一下饼图的简单使用 ...
2018-07-17 18:48:10
888
原创 js-将整数字符串解析成对应的数字
不要过分依赖API,如果可以的话,多想想如何手动解决问题。在面试时遇到这么个问题,大致描述如下:现有如下需求,需要将字符串类型的数字转换为数字类型,不适用parseInt函数实现?例如: 输入:"12345", 输出:12345/** * @param {string} str * @return {number} */ function parseStrToInt(...
2018-07-14 00:25:14
1002
原创 CSS-外边距折叠问题
外边距折叠块级元素的上外边距和下外边距有时会合并(或折叠)为一个外边距,其大小取其中的最大者,这种行为称为外边距折叠(margin collapsing),有时也翻译为外边距合并。 <!-- 外边距折叠演示 --> <div class="collapesd-test"> <div id="top-div"></div> ...
2018-07-09 23:10:11
1305
原创 简易的JS日期格式化小工具
/** * 日期格式化工具 * @param {string} fmt 目标字符串格式,默认:yyyy-MM-dd HH:mm:ss * @returns {string} 返回格式化后的日期字符串 * * 支持参数 * yyyy:年 * q: 季度 * MM:月 * dd:日 * hh: 时 * mm:分 * ss:秒 * S:毫秒 */Date.prototy...
2018-07-05 02:04:17
1091
原创 JavaScript中常用的数组方法总结(含ES6)
Array (数组)在JavaScript中是最重要的数据结构之一,是类似列表的高阶对象。Array对象用于构造数组的全局对象。数组中的每个元素对应一个索引(从0开始),同时每个数组有自己的length 属性(等于该数组的元素个数(0~2^32-1)),每个数组都指向Array构造函数的原型(Array.prototype),即每个数组可以调用原型上定义的方法。以下是数组常用方法的总结。...
2018-07-02 23:41:18
1778
原创 HTML语义化
HTML语义化HTML语义化,顾名思义,就是让HTML标签富有语义,让HTML结构更加清晰易懂,便于开发者阅读和书写,让浏览器的爬虫和机器很好的解析。HTML语义化优点,为什么要语义化增加页面可读性在去掉CSS样式的情况下,HTML页面仍然能呈现良好的内容结构与代码结构提高用户体验,比如:title,alt用于解释名词和图片信息、方便其他设备解析(屏幕阅读器、盲人阅读器、移动...
2018-06-30 21:44:06
406
原创 JavaScript中的this关键字的绑定
this 关键字在 JavaScript中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别。this的绑定对象的判定规则总结由new调用?绑定到新创建的对象。由call或者apply(或者bind)调用?绑定到指定的对象。由上下文对象调用?绑定到那个上下文对象。默认:在严格模式下绑定到undefined,否则绑定到全局对象。一定要注意,有些调用可能在无意中使...
2018-06-29 22:45:51
361
原创 计算机网络相关知识点整理-HTTP
什么是HTTP协议?HTTP(超文本传输协议,HyperText Transfer Protocol)定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及定义了怎样把文档传送给浏览器,是面向事务的应用层协议。默认使用80端口。HTTP协议的特点使用面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP协议本身是无连接的。 通信双方在交换HTTP报文之前...
2018-06-29 03:26:49
1445
原创 Webpack V4安装使用与常用配置总结
webpackWebpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。 Webpack可以将多种静态资源js、css、less转换成一个静态文件,减少了页面的请求。Webpack 的安装webpack在打包过程中会使用node内置的一些模块。 在安装Webpack前,你本地环境需要支持 node.js...
2018-06-25 22:43:41
1151
原创 js做算法题-Score of Parentheses
字母移位题目来源:LeetCode No.856题目描述:给定一个平衡的括号字符串S,根据以下规则计算字符串的得分:()有1分AB有得分A + B,其中A和B是平衡的括号字符串。(A)有得分2 * A,其中A是一个平衡的括号字符串。例1: 输入:"()" 输出:1例2: 输入:"(())" 输出:2例3: 输入:"()()" 输出:2例4:...
2018-06-24 22:21:49
461
原创 js做算法题-一手顺子
字母移位题目来源:LeetCode No.846题目描述:爱丽丝有一手(hand)由整数数组给定的牌。 现在她想把牌重新排列成组,使得每个组的大小都是W,且由W 张连续的牌组成。 如果她可以完成分组就返回 true,否则返回 false。示例 1: 输入:hand = [1,2,3,6,2,3,4,7,8], W = 3 输出:true 解释:爱丽丝的手牌可以被...
2018-06-22 21:32:26
1015
原创 js做算法题-字母移位
字母移位题目来源:LeetCode No.848题目描述:有一个由小写字母组成的字符串 S,和一个整数数组shifts。 我们将字母表中的下一个字母称为原字母的 移位(由于字母表是环绕的,'z'将会变成'a')。 例如·,shift('a') = 'b', shift('t') = 'u', 以及 shift('z') = 'a'。 对于每个shifts[i] = x, 我们会将...
2018-06-21 12:54:03
1741
转载 转-前端技术选型
1. 背景及现状随着前端开发复杂度的日益增加,各种优秀的组件框架也遍地开花。同时,我们面临业务规模的快速发展和工程师团队的不断扩张,如何解决资源整合、模块开发、项目部署、性能优化等问题势在必行。2. 目标根据背景和现状的分析,我们现制订一个规范化的前端工作流,很好地规范统一项目的模块化开发和前端资源,让代码的维护和互相协作更加容易更加方便,令前端开发自动化成为一种习惯。同时...
2018-06-21 01:20:04
1328
原创 js做算法题-Car Fleet
车队题目来源:LeetCode No.853题目描述:N 辆车沿着一条车道驶向位于target英里之外的共同目的地。每辆车i 以恒定的速度speed[i](英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着行驶。此时,我们会忽略这两辆车之间的距离,也就是说,它们被假定处...
2018-06-20 13:52:56
475
原创 js做算法题-无重复字符的最长子串
无重复字符的最长子串题目来源:LeetCode No.3题目描述:无重复字符的最长子串 给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是"abc",那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b",长度是1。给定 "pwwkew",最长子串是"wke",长度是3。请注意答案必
2018-06-19 01:32:56
7345
5
原创 js做算法题-K-Similar Strings
K-Similar Strings题目来源:LeetCode No.854题目描述:K-similar字符串的定义:对于任意两个字符串A和B,若对其中一个字符串中的字符交换了K次后(K>=0),使得A与B完全相等,则称A和B为K-similar字符串。现给定两个字谜A和B为K-similar字符串,返回最小的K。例1:输入: A = "ab",B = "ba" ...
2018-06-18 03:07:57
973
原创 js做算法题-递增的三元子序列
递增的三元子序列题目来源:LeetCode No.334给定一个未排序的数组,请判断这个数组中是否存在长度为3的递增的子序列。正式的数学表达如下:如果存在这样的i, j, k, 且满足 0 ≤ i &amp;amp;amp;amp;lt; j &amp;amp;amp;amp;lt; k ≤ n-1, 使得arr[i] &amp;amp;amp;amp;lt; arr[j] &amp;amp;amp;amp;lt; ar
2018-06-17 02:47:31
1224
原创 mongoose操作数据库时添加新属性失败的问题
在调用了mongoose插件操作MongoDB数据库时,已成功获取到查询出来的数据对象doc,但是在为doc添加新的属性doc.productNum和doc.checked发现doc并没有发生更改,但是却能获取到对应的新属性。测试代码如下:if (doc) { console.log(&quot;doc before: &quot; + doc) doc.productNum = 1; doc.c...
2018-06-14 22:20:58
2356
原创 两道简单的前端开发面试题
爬楼梯问题:一次只能走1阶或2阶台阶,求到第n阶有几种走法?典型的斐波那契数列问题,到第n阶的走法等于最后一步走1阶和走2阶的走法之和,即f(n) = f(n-1) + f(n-2);与传统斐波那契数列(f(0) = 0, f(1) = 1, f(2) = f(0) + f(1) = 1)不同的是:其中当n = 1时,f(1) = 1;当n = 2时,f(2) = 2。因此:function Fi...
2018-06-13 04:42:18
1017
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人