随笔分类 -  javascript html 基础

Javascript 中函数的 length 属性
摘要:每个函数都有一个 length属性 (函数名.length), 表示期望接收的函数的个数(而不是实际接收的参数个数)它与arguments不同。 arguments.length 是表示函数实际接收的参数个数。试想一下 利用这个功能 可以不可以实现根据函数参数个数的重载呢。如何解决正常情况下如果定义重名函数则会把前面的覆盖的问题?function addMethod(object, name, fn){ // Save a reference to the old method var old = object[ name ]; // Overwrite the method w... 阅读全文

posted @ 2014-03-16 20:53 dubaokun 阅读(2384) 评论(0) 推荐(0)

javascript 深度克隆
摘要:关键词 :递归主要分为 数组 、对象、以及基本类型 function clone(Obj) { var buf; if (Obj instanceof Array) { //如果是数组类型 则构建一个数组 clone数组的每个元素 buf = []; var i = Obj.length; while (i--) { buf[i] = clone(Obj[i]); } return buf; }else if (Obj instanceof Object){ //如果是对象类型 则创建对象 clone 对象中的属性 buf = {}; //创建一个空对象 for (var k in Ob... 阅读全文

posted @ 2014-02-09 20:54 dubaokun 阅读(226) 评论(0) 推荐(0)

javascript 区分对象类型
摘要:在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种。对于数组、函数、对象来说,其关系错综复杂,使用 typeof 都会统一返回 “object” 字符串。要想区别对象、数组、函数单纯使用 typeof 是不行的。或者你会想到 instanceof 方法,例如下面这样:var a = {};var b = [];var c = function () {};//a b c 都是 Object 的实例console.log(a instanceof Object 阅读全文

posted @ 2014-02-01 19:02 dubaokun 阅读(477) 评论(0) 推荐(0)

Promise实现简易AMD加载器
摘要:在最新的Chrome和FF中已经 实现了Promise。有了Promise我们用数行代码即可实现一个简易AMD模式的加载器var registry = { promises: { }, resolves: { }, getDependencyPromise: function(name) { if (!this.promises[name]) { var resolves = this.resolves; this.promises[name] = new Promise(function(resolve, rejec... 阅读全文

posted @ 2014-01-23 09:34 dubaokun 阅读(369) 评论(0) 推荐(0)

Jquery 欲绑定事件
摘要:有时候,想提前给即将添加的的元素绑定事件,这时候使用on就不行了,利用事件的冒泡机制可以完成这个功能Jquery 提供了delegate方法就是这样实现的。 $("#schemaaccordion2").delegate('.left_add_newclass', 'click', function () { });该方法的第一个参数为 元素的选择器。#schemaaccordion2为该元素父辈元素的选择器 阅读全文

posted @ 2014-01-21 20:51 dubaokun 阅读(171) 评论(0) 推荐(0)

ArcGIS API for Javascript 图层切换渐变效果实现
摘要:在一个WebGIS系统中往往要实现图形的切换,比如业务图层的切换,以及底图的切换等等,可以通过控制图层的可见性来实现。比如通过设置图层的opacity 、visible来控制,前几天有网友聊天的时候提了一个这样的需求如果在地图切换的时候添加一个过渡效果,以至于变化的效果不显得生硬。写面说一下我的实现思路。 先看一下效果吧 Demo链接 如果这个功能在普通的Web开发中,果要对两个html元素 比如div实现渐变性的切换的效果,我们首先会想到使用Jquery或者dojo等框架来解决,这些框架中都有一些动画的方式来实现,可以尝试将这种思想用在地图上。首先应该知道,地图中的图片都是通过htm... 阅读全文

posted @ 2014-01-21 17:24 dubaokun 阅读(3984) 评论(0) 推荐(0)

Javascript 控制 让输入框不能输入 数字
摘要:监听keypress事件。判断如果是数字的话阻止浏览器冒泡 Demo 阅读全文

posted @ 2013-12-27 20:08 dubaokun 阅读(781) 评论(0) 推荐(0)

盒子模型 以及CSS的box-sizing属性。
摘要:盒子模型有两种 一种是 内容盒子模型 一种是边框盒子模型。 内容盒子模型(标准盒子模型)由width和height中指定的元素的尺寸不包括内边距和边框 仅是指的内容的实际尺寸;网上搜索了两张配图不错 很直观。边框盒子模型(IE6 的盒子模型)起源于IE的怪异模式中的一个bug。对元素指定的width和height 包括了内边距和边框的高度。 在CSS3中引进了 box-sizing属性,默认值为content-box(标准盒子模型)如果替换为border-box 浏览器会给该元素应用IE盒子模型。即width属性将包含边框的宽度以及内边距。当想以百分比形式设置元素的总体尺寸,又想以像素... 阅读全文

posted @ 2013-12-27 10:51 dubaokun 阅读(4716) 评论(0) 推荐(2)

javascript 多个frame之间的交互
摘要:主页面Web.html (加载了两个frame 分别为A.html) webbtA.html PageA B.html PageB 阅读全文

posted @ 2013-12-25 09:36 dubaokun 阅读(4043) 评论(1) 推荐(3)

浏览器 线程机制
摘要:浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:javascript引擎线程,GUI渲染线程,浏览器事件触发线程。1.javascript引擎是基于事件驱动单线程执行的,JS引擎一直等待着任务队列中任务的到来,然后加以处理,浏览器无论什么时候都只有一个JS线程在运行JS程序。2.GUI渲染线程负责渲染浏览器界面,当界面需要重绘(Repaint)或由于某种操作引发回流(reflow)时,该线程就会执行。但需要注意GUI渲染线程与JS引擎是互斥的,当JS引擎执行时GUI线程会被挂起,GUI更新会被保存在一个队列中等到JS引擎空闲时立即被执行。3.事件触发 阅读全文

posted @ 2013-12-20 09:15 dubaokun 阅读(366) 评论(0) 推荐(0)

JavaScript中两种类型的全局对象/函数【转】
摘要:SnandyStop, thinking is the essence of progress.JavaScript中两种类型的全局对象/函数这里所说的JavaScript指浏览器环境中的包括宿主环境在内的。第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数。一、核心JavaScript内置对象,即ECMAScript实现提供的不依赖于宿主环境的对象这些对象在程序执行之前就已经(实例化)存在了。ECMAScript称为The Global Object,分为以下几种1, 值属性的全局对象(Value Properties of the Gl 阅读全文

posted @ 2013-11-24 10:59 dubaokun 阅读(222) 评论(0) 推荐(0)

Canvas vs. SVG[转]
摘要:Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的。SVGSVG 是一种使用 XML 描述 2D 图形的语言。SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。CanvasCanvas 通过 JavaScript 来绘制 2D 图形。Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制 阅读全文

posted @ 2013-11-24 10:00 dubaokun 阅读(322) 评论(0) 推荐(0)

常见的MIME
摘要:"css": "text/css", "gif": "image/gif", "html": "text/html", "ico": "image/x-icon", "jpeg": "image/jpeg", "jpg": "image/jpeg", "js": "text/javascript", "jso 阅读全文

posted @ 2013-11-19 17:28 dubaokun 阅读(171) 评论(0) 推荐(0)

javascript Array
摘要:属性:length 设置或者返回数组中元素的个数prototype 原型对象,可以增加属性为之扩展功能方法:contact() 用于连接两个或者多个数组,参数可以是具体的值,也可以是数组对象。可以是任意多个返回连接之后的数组的副本。join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔,默认为逗号。pop() 方法用于删除并返回数组的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。push(newelement1,newelement2,....,newelementX) 可向数组的末尾添 阅读全文

posted @ 2013-11-19 15:32 dubaokun 阅读(194) 评论(0) 推荐(0)

理解Javascript的Prototype
摘要:在Javascript中创建对象主要分为三种方式1、var catA = {name: "Fluffy", color: "White", age: 0};2、var catB = Object.create(new Object());catB.name = "Fluffy";catB.color = "White";catB.age = 0;3、function Cat(name, color) { this.name = name; this.color = color;}Cat.prototype.age 阅读全文

posted @ 2013-11-19 11:09 dubaokun 阅读(242) 评论(0) 推荐(0)

javascript事件坐标
摘要:clientX鼠标在页面显示区域的坐标screenX鼠标在显示屏幕上的坐标layerX鼠标相对于“触发事件的元素的层级关系中离该元素最近的,设置了position的父元素”的边界的位置,从border的左上角开始定位,即如果这个父元素存在border,则坐标原点在border的左上角,而不是内容区域的左上角offsetX鼠标相对于“触发事件的元素”的位置,从内容区域左上角开始定位,不是从border左上角开始!这个属性比较好用,用来判断鼠标点在一个元素中的哪个位置很方便pageX鼠标在页面上的位置,从页面左上角开始定位,这个可以很方便在整个页面上进行定位x跟layerX一个效果,可作为laye 阅读全文

posted @ 2013-11-19 10:31 dubaokun 阅读(205) 评论(0) 推荐(0)

javascript的caller,callee,call,apply[转]
摘要:在提到上述的概念之前,首先想说说javascript中函数的隐含参数:argumentsArguments该对象代表正在执行的函数和调用它的函数的参数。[function.]arguments[n]参数function:选项。当前正在执行的Function对象的名字。n:选项。要传递给Function对象的从0开始的参数值索引。说明Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象。Arguments是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length 阅读全文

posted @ 2013-11-13 23:33 dubaokun 阅读(182) 评论(0) 推荐(0)

Javascript typeof
摘要:typeof是一个一元运算符,它返回的结果 始终是一个字符串,对不同的操作数,它返回不同的结果。具体的规则如下:一、对于数字类型的操作数而言, typeof 返回的值是 number。比如说:typeof(1),返回的值就是number。上面是举的常规数字,对于非常规的数字类型而言,其结果返回的也是number。比如typeof(NaN),NaN在JavaScript中代表的是特殊非数字值,虽然它本身是一个数字类型。在JavaScript中,特殊的数字类型还有几种:Infinity 表示无穷大特殊值NaN 特殊的非数字值Number.MAX_VALUE 可表示的最... 阅读全文

posted @ 2013-11-13 20:05 dubaokun 阅读(259) 评论(0) 推荐(0)

Javascirpt 常见的误区
摘要:var foo = new Object();var bar = new Object();var map = new Object();map[foo] = "foo";map[bar] = "bar";// Alerts "bar", not "foo".alert(map[foo]);当对象作为key的时候,会自动调用对象的 toString 方法,比如map[foo]相当于 map[foo.toString()]即是 map["[object Object]"] 。可以重写toStrin 阅读全文

posted @ 2013-11-12 11:40 dubaokun 阅读(221) 评论(0) 推荐(0)

关于Javascript 那些事
摘要:Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。基本信息 JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功... 阅读全文

posted @ 2013-11-10 07:34 dubaokun 阅读(324) 评论(0) 推荐(0)

导航

新浪微博 新博客 Github