JavaScript学习
kittyjie
这个作者很懒,什么都没留下…
展开
-
js全排列函数
function permutate(arr) { let result = []; if(arr.length > 1) { let left = [arr[0]], rest = arr.slice(1, arr.length), preResult = permutate(rest); for(let i=0; i...原创 2019-10-26 14:37:25 · 542 阅读 · 0 评论 -
正则表达式匹配N的倍数
来源:https://jex.im/programming/triple-regex.htmlRegex Golf上有一道题名为 Triples,即要求用正则表达式匹配3的倍数,还有一道匹配7的倍数的练习题。这种问题如果人肉解决的话,相当于做一道包含几十个数的四则运算题,不管你怎么想,反正我小时候遇到五个数以上的四则运算题都是直接略过。小时候不好好学习,现在该怎么办呢?——现在我会写代码了转载 2017-02-07 11:17:17 · 7481 阅读 · 0 评论 -
RequireJS 动态加载依赖文件插件
在使用requirejs的define时候,有时候需要根据一些条件判断去加载某些文件,比如在移动版下加载某个插件,在PC版下加载另一个插件,网上常见的方法一般是的define里面再去用require方法加载,但这样有个问题,就是如果后面还有文件依赖这个插件,require方法是不能保证在下面的文件使用时保证这个插件加载完毕的。参考了angularAMD的ngload插件和requirejs-p原创 2016-09-22 16:33:23 · 4103 阅读 · 0 评论 -
你真得懂Javascript中的==等于运算符吗?
var i = 2;Number.prototype.valueOf = function() {return i++;};var a = new Number( 42 );if (a == 2 && a == 3) {console.log( "Yep, this happened." );}============================"0原创 2015-06-12 08:42:14 · 954 阅读 · 0 评论 -
WIN7 财经日历Gadget
解压附件到 C:\Program Files\Windows Sidebar\Gadgets,就可以在桌面添加了! 下载地址一(CSDN)下载地址二(百度网盘) 右下角支持拖拽,改变大小 支持财经事件。点击左上角人物小图片,再次点击可以隐藏 支持全球假期。点击左上角第二个小图片,再次点击可以隐藏原创 2013-05-13 14:59:05 · 1292 阅读 · 0 评论 -
Javascript Date 常用处理函数
//计算两个日期相差几天几小时Date.diffDayHourString = function(date1,date2){ var date3; if(typeof date1 == "object"){ date3=date2.getTime()-date1.getTime(); //时间差的毫秒数 } else{ date3=date2-date1; //时间差的毫秒数原创 2012-11-05 21:38:33 · 2316 阅读 · 0 评论 -
简单的微博转发工具 Chome插件
项目地址:http://code.google.com/p/weibo-zhuanfa/downloads/list下载地址:http://download.csdn.net/detail/kittyjie/4076845原创 2012-02-20 20:46:00 · 2095 阅读 · 0 评论 -
浅谈javascript函数劫持
创建时间:2007-12-02文章属性:原创文章提交:hkluoluo (luoluonet_at_hotmail.com)by luoluo on 2007-11-30luoluonet_at_yahoo.cnhttp://www.ph4nt0m.org一、转载 2011-07-04 16:59:57 · 887 阅读 · 0 评论 -
Javascript JSON转XML (change JSON to xml)
/** * Change JSON object to XML string. * The JSON object value must be a string,an array or object. * If the value is an integer or a float value,you must add " or to the value. * @author b原创 2011-06-11 12:34:00 · 6171 阅读 · 3 评论 -
Prototype 学习——Function对象
这个对象就是对function的一些扩充,最重要的当属bind方法,prototype的帮助文档上特意说了一句话:Prototype takes issue with only one aspect of functions: binding.其中wrap方法也很重要,在类继承机制里面就是利用wrap方法来调用父类的同名方法。 argumentNames bind bindAsE原创 2009-07-12 16:29:00 · 1108 阅读 · 0 评论 -
Prototype 学习——Object对象
Object is used by Prototype as a namespace; that is, it just keeps a few new methods together, which are intended for namespaced access (i.e. starting with “Object.”).上面说的namespace个人理解就相当于C#中的静态类,提供原创 2009-07-12 10:05:00 · 907 阅读 · 0 评论 -
JS中多继承的几种实现方法
先了模拟一下new操作符的作用:function Person(name){ this.name = name;}Person.prototype.say = function(){ console.log(this.name);}var p = new Person("KD");p.say();var obj = {}Object.setPrototypeOf(o原创 2017-06-16 09:12:35 · 9432 阅读 · 1 评论 -
focusin&focusout 与click事件冲突问题
具体问题见:https://stackoverflow.com/questions/53773661/not-able-to-detect-button-press-when-using-focusout-and-focusin-along-with-click遇到的问题是用jquery on监听element ui dropdown menu里面的button click事件,做一些统计。但...原创 2019-09-19 13:32:54 · 963 阅读 · 0 评论 -
js canvas图片添加重复背景水印
/** * 给图片添加水印 * @memberof DomUtils. * @param {string} dataUrl - png图片的data url * @param {string} text - 水印文字 */ watermarkImage (dataUrl, text, style = {opacity: 0.5, font: '14px serif'...原创 2019-09-11 10:53:29 · 1418 阅读 · 0 评论 -
typescript枚举类型编译后代码技巧
var Tristate;(function(Tristate) { Tristate[(Tristate['False'] = 0)] = 'False'; Tristate[(Tristate['True'] = 1)] = 'True'; Tristate[(Tristate['Unknown'] = 2)] = 'Unknown';})(Tristate || (Tris...原创 2019-09-09 18:08:57 · 678 阅读 · 0 评论 -
Vue项目中使用mockjs
mockjs功能还是挺强大的,网上好多文章介绍有的说在dev-server.js中导入,这样的问题是build中掺入了业务逻辑层的文件。有的是在main.js中导入,还有的在组件中导入,但问题是,同一套代码在构建dev版和prod版的时候还需要手工改代码,才能自动build。现在要达到一个目的,就是自动区分dev和prod,可以自动化build,并且mock的代码单独放在业务逻辑层里。首先...原创 2019-07-17 17:16:01 · 1904 阅读 · 0 评论 -
Array.prototype.reduce使用技巧
先看一下规范对这个方法的几个说明:Array.prototype.reduce ( callbackfn [ , initialValue ] )NOTE 1:callbackfnshould be a function that takes four arguments.reducecalls the callback, as a function, once for each e...原创 2019-07-16 11:16:57 · 521 阅读 · 0 评论 -
ES2018: RegExp named capture groups
ES2018: RegExp named capture groups[2017-05-15] dev, javascript, esnext, es2018, regexpThe proposal “RegExp Named Capture Groups” by Gorkem Yakin, Daniel Ehrenberg is at stage 4. This blog post explai...转载 2018-07-04 11:27:30 · 424 阅读 · 0 评论 -
Froala Editor 2.8.1破解过程
这个编辑器功能很强大,文档也很规范,但会有版权问题,下面破解过程仅供个人学习使用,请购买正版版权。以froala_editor.pkgd.min.js这个文件为例,版本是2.8.1,去官网自己下载。用sublime text的JsFormat插件格式化以后一共大概13309行代码。<!DOCTYPE html><html><head> <meta...原创 2018-06-13 10:03:56 · 10861 阅读 · 7 评论 -
Vue2在实际项目中的应用
1,项目目录结构概览2,命名规范概览3,前端工具,js框架以及库介绍4,模块划分以及路由配置5,程序入口启动6,公共组件介绍7,服务层介绍8,打包发布9,表格组件功能介绍...原创 2019-05-08 14:13:44 · 440 阅读 · 0 评论 -
细数Javascript技术栈中的四种依赖注入
https://www.cnblogs.com/front-end-ralph/p/5208045.html作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency Injection,下文称DI)可谓在OOP编程中大行其道经久不衰。比如在J2EE中,就有大名鼎鼎的执牛耳者Spring。Javascript社区中自...转载 2018-02-22 07:54:41 · 765 阅读 · 0 评论 -
Vue中实现简单的AOP
有个简单的需求,需要在前端记录用户的一些行为,联想到Java中可以用annotation加拦截函数调用实现,试着在JS中看看能不能也这样实现。annotation或者decorator的功能在JS中还处在草稿阶段,但是通过Babel的转换,已经可以使用了,例如React中的mobx状态管理,就可以通过decorator实现。下面是简单的实现过程:先通过npm安装babel-原创 2018-01-25 11:10:56 · 4638 阅读 · 0 评论 -
Prototype 学习——工具函数学习($w,$F方法)
$w方法 Splits a string into an Array, treating all whitespace as delimiters. Equivalent to Rubys %w{foo bar} or Perls qw(foo bar).function $w(string) {if (!Object.isString(string)) return [原创 2009-07-11 20:35:00 · 881 阅读 · 0 评论 -
Prototype 学习——工具函数学习($A方法)
$A方法:Accepts an array-like collection (anything with numeric indices) and returns its equivalent as an actual Array object. This method is a convenience alias of Array.from, but is the preferred w原创 2009-07-11 20:13:00 · 798 阅读 · 0 评论 -
Prototype 学习——工具函数学习($方法)
$ $$ $A $F $H $R $w Try.these document.getElementsByClassName $方法——被成为瑞士军刀(Swiss Army knife)If provided with a string, returns the element in the document with matching ID;原创 2009-07-11 19:36:00 · 944 阅读 · 0 评论 -
Prototype 学习——Hash对象
这个对象相当于Java中的HashMap,当然了功能没HashMap那么强大。提供一直基本的方法,简单的方法就不在源码中注释了。 //Hash对象的工具函数function $H(object) { return new Hash(object);};var Hash = Class.create(Enumerable, (function() { //初原创 2009-07-18 21:07:00 · 1203 阅读 · 0 评论 -
Prototype学习——工具函数($H,$R,Try.these,document.getElementsByClassName)
$H就是建立Hash对象的便捷方法,关于Hash对象具体参考【Prototype 学习——Hash对象 】$R就是简历ObjectRange对象的便捷方法,关于ObjectRange对象具体参考【Prototype 学习——ObjectRange对象 】 Try.these:Accepts an arbitrary number of functions and returns t原创 2009-07-19 20:15:00 · 1289 阅读 · 0 评论 -
Prototype 学习——String对象
这个对象里面的方法就是提供了一些字符串操作的工具方法,比较重要的gsub方法,下面做了详细的注释,简单的方法就不说了,一看就明白了。 //String对象的静态方法Object.extend(String, { interpret: function(value) { return value == null ? : String(value); },原创 2009-07-18 19:56:00 · 1124 阅读 · 0 评论 -
Prototype 学习——Enumerable对象
Enumerable provides a large set of useful methods for enumerations, that is, objects that act as collections of values. It is a cornerstone of Prototype. Enumerable is what we like to call a mo原创 2009-07-17 14:50:00 · 941 阅读 · 0 评论 -
Prototype 学习——PeriodicalExecuter对象
This is a simple facility for periodical execution of a function. This essentially encapsulates the native clearInterval/setInterval mechanism found in native Window objects.This is especially usefu原创 2009-07-18 20:22:00 · 870 阅读 · 0 评论 -
Prototype 学习——Template对象
这里的Template对象其实就是格式化字符串的工具,就像java中的String.format方法。这个对象只提供一个方法evaluate。 var Template = Class.create({ //初始化方法 initialize: function(template, pattern) { this.template = template.toString原创 2009-07-18 16:11:00 · 790 阅读 · 0 评论 -
Prototype 学习——Number对象
这个对象提供一些操作数值类型的工具函数 Object.extend(Number.prototype, (function() { //返回十六进制颜色之 function toColorPart() { return this.toPaddedString(2, 16); } //返回连续的下一个数值 function suc原创 2009-07-15 22:08:00 · 845 阅读 · 0 评论 -
Prototype 学习——ObjectRange对象
Ranges represent an interval of values. The value type just needs to be “compatible,” that is, to implement a succ method letting us step from one value to the next (its successor).Prototype provide原创 2009-07-15 21:17:00 · 869 阅读 · 0 评论 -
Prototype 学习——RegExp对象
帮助文档上没有这个对象,实际上源代码中这个对象还是有方法的,就1静态方法,作用也不是很大,这里简单说一下,因为以后介绍别的对象时会用到这个RegExp RegExp.prototype.match = RegExp.prototype.test;RegExp.escape = function(str) { return String(str).replace(/([.*+?原创 2009-07-13 21:35:00 · 807 阅读 · 0 评论 -
Prototype 学习——Class对象
Prototype’s object for class-based OOP. prototype OOP编程的基础,详细说明一下源码:/* Based on Alex Arnells inheritance implementation. */var Class = (function() { //临时存储parent的prototype function s原创 2009-07-13 21:10:00 · 2525 阅读 · 0 评论 -
Prototype学习——Selector对象
这个对象在帮助文档上并没有,但是这个对象确是整个DOM操作的核心类,工具函数$$,其实就是调用这个类的方法:function $$() {return Selector.findChildElements(document, $A(arguments));} 这个类可以分成三个部分:第一个部分就是根据不同的浏览器,判断使用什么DOM操作方法。其中操作IE就是用普通的getEl原创 2009-07-23 18:46:00 · 1579 阅读 · 0 评论 -
Prototype框架源码分析汇总
Prototype 学习——Prototype对象Prototype 学习——工具函数学习($方法)Prototype 学习——工具函数学习($A方法)Prototype 学习——工具函数学习($w,$F方法) Prototype学习——工具函数($H,$R,Try.these,document.getElemen原创 2009-07-27 13:55:00 · 2546 阅读 · 0 评论 -
JavaScript设计模式学习——Factory
/* DisplayModule interface. */var DisplayModule = new Interface(DisplayModule, [append, remove, clear]);/* ListDisplay class. *///通过接口实现工厂,这是通过List方式显示RSSvar ListDisplay = function原创 2009-07-28 10:24:00 · 1022 阅读 · 0 评论 -
Prototype 学习——Prototype对象
环境:Prototype Version: 1.6.1_rc3 Aptana Studio, build: 1.2.5.023247 IE7FF2.0.0.4Opera 10 beta =============================================================var Prototype = { Ver原创 2009-07-11 18:40:00 · 1312 阅读 · 0 评论 -
JavaScript设计模式学习——Command
/* Command, Composite and MenuObject interfaces. */var Command = new Interface(Command, [execute]);var Composite = new Interface(Composite, [add, remove, getChild, getElement])原创 2009-07-29 14:24:00 · 1395 阅读 · 0 评论