![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
文章平均质量分 71
lizzvia
这个作者很懒,什么都没留下…
展开
-
javascript学习——节点层次
总结了dom的集中节点类型原创 2016-05-23 11:15:36 · 343 阅读 · 0 评论 -
javascript学习——js版快排
QuickSort:function(array){ if(array.length <=1) return array; var pivotIndex = Math.floor(array.length / 2); var pivot = array.splice(pivotIndex,1)[0]; var left = [],right = [];原创 2016-10-14 10:06:21 · 312 阅读 · 0 评论 -
jQuery源码——extend()函数
jQuery.extend = jQuery.fn.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, //传来的第一个参数是要合并的对象 i = 1, length = arguments.length, //要合并的对象个数 d原创 2016-10-25 16:17:32 · 216 阅读 · 0 评论 -
javascript组件——按thead排序的table
/** * options need table title,thead,rowData,$root * generated by dx */var TableGenerator = (function(global,$){ var testIntNum = / ^[0-9]*$/g, testFloatNum = /^[1-9]\d*.\d*|0.\d*[1-原创 2016-10-28 16:38:45 · 612 阅读 · 0 评论 -
javascript学习——高阶函数的几种常见应用
1、curring:部分求值。一个curring的函数会接收一些参数,接受了参数之后的该函数并不会立即求值,而是继续返回一个函数,并把之前传入的参数保存在闭包里面。等到函数真正需要求值的时候,之前传入的所有参数会一次性的用于求值。var curring = function(fn){ var args = []; return function(){ if(argument原创 2016-10-30 18:58:02 · 838 阅读 · 0 评论 -
jQuery源码学习——event.special用于执行异步任务的实践
该内容翻译自http://benalman.com/news/2010/03/jquery-special-events/ 在页面执行任务的一个确切的时间点上,所有绑定的click事件需要暂时的disabled掉。这种技术在执行异步任务的时候非常管用。比如说当提交表单的时候,不希望用户在任务完成之前意外的再次提交任务。 有一种优雅的做法,是使用special的add方法,这个方法将在每原创 2016-11-11 18:57:39 · 402 阅读 · 0 评论 -
jQuery学习——clickoutside应用
自定义clickoutside事件,使得点击绑定元素之外的位置可以执行handler。这个方法可以用event.special来实现,方法如下 (function($){ var elems = $([]); $.event.special.clickoutside = { setup: function(){ var elem = $(this);原创 2016-11-11 19:41:58 · 2222 阅读 · 0 评论 -
javascript学习——constructor、prototype、_proto_的区别
constructor:始终指向当前对象的构造函数var arr = [1,2,3];alert(arr.constructor); // function Array()function A(){};var a = new A();alert(a.constructor); // function A()prototype: 是函数对象具有的属性,叫做原型对象。一旦原型对象赋予了原创 2016-12-15 16:38:56 · 384 阅读 · 0 评论 -
javascript学习——浏览器嗅探优化技术
思路一:延时加载在使用的时候再判断该用哪个方法,并且在判断完了之后改写函数。之后再调用的时候,可以按照检测之后得结果进行操作。var addHandler = function(target,eventType,handle){ if(target.addEventListener){ addHandler = function(target,eventType,han原创 2017-01-12 10:25:32 · 760 阅读 · 0 评论 -
javascript组件——lazyload
前言:lazyload是一个懒加载的基于jquery的懒加载的库。实现原理:实现原理是在当图片不在视图区域内时,用一个class lazy标识图片,先将该图片的src置为空,把真正的url放到一个自定义属性里面。当检测到该图片需要被展示时,获取自定义属性里真正的url,修改到src里面,实现图片的懒加载。基于lazyload的实现原理,写了一个demo。以下为代码分析:缺省配置原创 2017-03-28 11:32:41 · 589 阅读 · 0 评论 -
模块化学习——AMD
模块化的由来: 随着前端业务越来越庞大,javascript代码的体量和职责也越来越大。由于javascript语言本身的特性没有继承和封装的概念,因此需要一种规范来约束js代码块的功能职责,使之完成自己的职责,同时不会对其他的部分造成污染。前端模块化的想法应运而生。模块化的定义: 模块就是实现特定功能的相互独立的一组方法。模块化的意义: 开发者能够随心所原创 2017-04-07 18:27:27 · 818 阅读 · 0 评论 -
javascript事件监听机制(二)——jquery的Event对象
jQuery封装了浏览器的事件监听方法,兼容了各个浏览器的区别,对外提供一套适合于jquery对象的事件监听接口。Event对象的核心方法主要有三个,add,remove和trigger。elem对于事件的维护,是通过在elem的内部空间里(_data访问的),用一个events对象来实现的{ events:{'click':handleObj, 'focusin':handleObj原创 2017-04-08 12:19:14 · 5391 阅读 · 0 评论 -
underscore.js源码学习——_.template()
前言:随着前端业务量的增长,页面的需求量越来越大。但是很多时候,页面的结构很多时候大同小异,区别在于数据量不同。因此借用mvc的思想,渲染模版和数据分离,即为前端的模版话。因此前端的模版在于,定义模版结构,和数据源。解析模版,把数据昂儒需要的地方,生成正常的html文档,然后插入到页面之中。一句话就是:模版+数据 ——(模版引擎) = html文档。引擎原理: 引擎要原创 2017-03-30 10:47:46 · 1344 阅读 · 0 评论 -
jquery源码——buildFragment
buildFragment是在context上,根据args创建一个div区域。核心部分是调用了clean部分。但是buildFragment添加了cache的部分。如果能cache的话,则直接返回创建好的。具体情况加下:jQuery.buildFragment = function( args, context, scripts ) { //传入的html代码段(好几段),上下文,是否有原创 2016-10-24 19:23:07 · 271 阅读 · 0 评论 -
jQuery源码——find函数
jQuery的全局方法find()作用是对调用的jquery对象中,查找是否有满足selector的节点.代码如下find: function( selector ) { //在已生成的DOM中按照selector查找对应元素 var i, l, length, n, r, ret, self = this; if ( typeof selector !== "string"原创 2016-10-24 18:57:39 · 2945 阅读 · 0 评论 -
javascript学习——使用javascript
在html文件中使用javascript主要是通过添加标签实现。 定义了6个属性: async:可选。表示应该立即下载js文件,该属性只适用于外部脚本文件。并不保证多个js文件执行的先后顺序。因此在引用的时候,需要保证几个js文件之间的独立性。async属性设计的初衷是为了不让页面等到脚本下载再执行,从而异步加载页面和内容。因此不应该在加载期间修改dom结构。async脚本原创 2016-05-10 11:17:49 · 272 阅读 · 0 评论 -
javascript学习——DOM扩展
主要的两个扩展对象是Selector API和HTML5,添加了一些使用的方法和属性。 Selector API:可以根据CSS选择符选择与某个模式匹配的DOM元素,核心是通过CSS选择符查询DOM文档取得元素的引用。主要方法有querySelector()和querySelectorAll()方法。 querySelector():返回与模式匹配的第一个元素。可以支持元素,类原创 2016-05-26 10:24:24 · 301 阅读 · 0 评论 -
javascript学习——引用类型总结
该文总结了除基本包装类型以外的基本引用类型。包括类型的定义,创建,属性,方法等。原创 2016-05-12 16:06:32 · 233 阅读 · 0 评论 -
javascript学习——基本包装类型总结
三种基本包装类型:Boolean,Number,String,分别对应三种基本类型,Boolean,Number,String 在声明一个基本类型的时候,往往会在后台自动生成一个对应类型的包装类。但是该包装类只存在一行代码的执行瞬间,然后立即被销毁。也就是说不能在运行时为基本类型添加属性和方法。 例: var s1 = "text";//相当于var s1 = new Stri原创 2016-05-16 10:59:11 · 527 阅读 · 1 评论 -
javascript学习——创建对象
总结了创造实例时的几种方法,没有记录寄生构造函数模式和稳妥构造函数模式原创 2016-05-17 10:30:10 · 208 阅读 · 0 评论 -
javascript学习——继承
原型链:利用原型让一个引用类型继承另一个引用类型的属性和方法。具体的操作是将子引用类型的原型变为父引用类型原型的一个实例。function SuperType(){ this.age = 20;}SuperType.prototype.getSuperAge = function(){ return this.age;}function SubType(){ th原创 2016-05-17 16:19:28 · 196 阅读 · 0 评论 -
javascript学习——闭包
闭包:指的是有权访问另一个函数作用域中的变量的函数。常见的方法是在函数体内创建另一个函数。 function createCompareFunction(propertyName){ return function(object1,object2){ var value1 = object1[propertyName]; var value2 = ob原创 2016-05-18 10:33:42 · 292 阅读 · 0 评论 -
javascript学习——块作用域和私有变量
javascript没有块作用域的概念,只要是在块语句中定义的变量,实际上都是包含在函数中的。因此想要使用块作用域,需要再嵌套在一个函数中。例:function alertDate(){ (function(){ var date = new Date(); if(date.getMonth == 0 && date.getDate() ==1){原创 2016-05-18 15:19:55 · 273 阅读 · 0 评论 -
javascript学习——样式
本文包括样式的各种属性和创建样式,获取样式和操作样式的各种方法。 1、样式: 定义样式:1、可以通过在里面引用。 2、可以通过包含外部样式表 3、可以通过特性定义针对特定元素的样式。 属性:style有各种属性。原创 2016-06-08 10:57:05 · 391 阅读 · 0 评论 -
JavaScript学习——web通信长连接
ajax实现长连接: $(function () { (function longPolling() {转载 2016-07-05 15:54:16 · 6676 阅读 · 0 评论 -
javascript问题——ajax动态生成table
问题描述: 需要通过ajax请求json文件,并将json中的Rows域动态生成一个table使用插件:jquery的DataTables。外部文件引用:http://cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css http://cdn.datatables.net/原创 2016-06-20 09:00:45 · 500 阅读 · 0 评论 -
jquery源码——jquery.fn.access()函数
这个函数是一个抽象的方法,很多对外暴露的方法,最终都调用这个方法。access: function( elems, fn, key, value, chainable, emptyGet, pass ) { var exec, bulk = key == null, //是不是传了key进来 i = 0, length = elems.length; // Sets原创 2016-10-21 19:40:18 · 344 阅读 · 0 评论 -
javascript学习——订阅发布抽象类
var Event = (function(){ var global = this, Event, _default = 'defalut'; Event = function(){ var _listen, _trigger, _remove, _slice原创 2016-10-13 17:31:21 · 253 阅读 · 0 评论 -
javascript组件——可拖拽模态框
可拖拽模态框,根据项目需求在模态框中生成一个map。后续将抽象出contentArea部分var Shamen = (function(global,$,echarts){ var defaults = { dragHandle:null, } var html = { ovl : '' + '' + '', title原创 2016-10-13 17:33:47 · 545 阅读 · 0 评论 -
javascript学习——数据表示和内存
引言:大家都知道在js语言中,只有基本数据类型boolean,Number,String,Null和Undefined,其他的都是对象。v8 和JavascriptCore数据管理的思路相似,都是通过使用句柄Handle来操作数据。句柄是大小固定的指向空间。在32位平台中是4 Byte。其中基本类型,直接把数据存放在句柄中即可,而对于引用类型,句柄中存放的是指针,具体的内容存放在堆中。句柄原创 2017-09-13 17:26:46 · 287 阅读 · 0 评论