JavaScript
Sojourn2017
前端开发,JavaScript,Node.js
展开
-
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 · 1605 阅读 · 0 评论 -
JS中的原型应用(继承与扩展)
JS中的原型原型机制(prototype)是JavaScript中非常重要的机制,通过[[prototype]],我们可以轻易地实现构造函数与其实例的继承与扩展。原型的概念大致如下图展示,详情可以参考MDN,本文主要讲原型在实际中的应用。 参考jQuery与zepto中的原型机制,原型的应用大致分为以下几个部分:定义构造函数定义生成实例接口定义初始化函数提供扩展接口(插件...原创 2018-08-05 12:56:57 · 1217 阅读 · 1 评论 -
JS对象-不可扩展对象、密封对象、冻结对象
JS中的不可扩展对象、密封对象、冻结对象在JavaScript 中,可以对对象的权限进行配置,通过配置,可将对象设置为不可扩展对象、密封对象、冻结对象等,以达到保护对象属性的目的。不可扩展对象如果一个对象可以添加新的属性,则这个对象是可扩展的。Object.preventExtensions()将对象标记为不再可扩展,因此它将永远不会具有超出它被标记为不可扩展的属性。注意,一般来说,不...原创 2018-07-20 18:24:59 · 1871 阅读 · 0 评论 -
使用Echarts快速绘图-根据数据实时渲染直方图与折线图
EchartsECharts,一个使用 JavaScript实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。通过使用ECharts,可以快速实现数据可视化,下面简单演示一下直方图与折线图的...原创 2018-07-25 17:48:00 · 6873 阅读 · 0 评论 -
js-将整数字符串解析成对应的数字
不要过分依赖API,如果可以的话,多想想如何手动解决问题。在面试时遇到这么个问题,大致描述如下:现有如下需求,需要将字符串类型的数字转换为数字类型,不适用parseInt函数实现?例如: 输入:"12345", 输出:12345/** * @param {string} str * @return {number} */ function parseStrToInt(...原创 2018-07-14 00:25:14 · 915 阅读 · 0 评论 -
使用Echarts快速绘图-饼图
EchartsECharts,一个使用 JavaScript实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。通过使用ECharts,可以快速实现数据可视化,下面简单演示一下饼图的简单使用 ...原创 2018-07-17 18:48:10 · 769 阅读 · 0 评论 -
简易的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 · 999 阅读 · 0 评论 -
JavaScript中常用的数组方法总结(含ES6)
Array (数组)在JavaScript中是最重要的数据结构之一,是类似列表的高阶对象。Array对象用于构造数组的全局对象。数组中的每个元素对应一个索引(从0开始),同时每个数组有自己的length 属性(等于该数组的元素个数(0~2^32-1)),每个数组都指向Array构造函数的原型(Array.prototype),即每个数组可以调用原型上定义的方法。以下是数组常用方法的总结。...原创 2018-07-02 23:41:18 · 1564 阅读 · 0 评论 -
js做算法题-Car Fleet
车队题目来源:LeetCode No.853题目描述:N 辆车沿着一条车道驶向位于target英里之外的共同目的地。每辆车i 以恒定的速度speed[i](英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着行驶。此时,我们会忽略这两辆车之间的距离,也就是说,它们被假定处...原创 2018-06-20 13:52:56 · 420 阅读 · 0 评论 -
js做算法题-无重复字符的最长子串
无重复字符的最长子串题目来源:LeetCode No.3题目描述:无重复字符的最长子串 给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是"abc",那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b",长度是1。给定 "pwwkew",最长子串是"wke",长度是3。请注意答案必原创 2018-06-19 01:32:56 · 7127 阅读 · 5 评论 -
JavaScript中的this关键字的绑定
this 关键字在 JavaScript中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别。this的绑定对象的判定规则总结由new调用?绑定到新创建的对象。由call或者apply(或者bind)调用?绑定到指定的对象。由上下文对象调用?绑定到那个上下文对象。默认:在严格模式下绑定到undefined,否则绑定到全局对象。一定要注意,有些调用可能在无意中使...原创 2018-06-29 22:45:51 · 311 阅读 · 0 评论 -
两道简单的前端开发面试题
爬楼梯问题:一次只能走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 · 962 阅读 · 0 评论 -
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 · 890 阅读 · 0 评论 -
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 · 390 阅读 · 0 评论 -
js做算法题-递增的三元子序列
递增的三元子序列题目来源:LeetCode No.334给定一个未排序的数组,请判断这个数组中是否存在长度为3的递增的子序列。正式的数学表达如下:如果存在这样的i, j, k, 且满足 0 ≤ i < j < k ≤ n-1, 使得arr[i] < arr[j] < ar原创 2018-06-17 02:47:31 · 1151 阅读 · 0 评论 -
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 · 907 阅读 · 0 评论 -
(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 · 788 阅读 · 0 评论