用javascript获取地 址栏参数//本页地址为: alert(document.location); 方法一:<script type="text/javascript"> <!-- String.prototype.getQuery = function(name) {var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");var r = this.substr(this.indexOf("\?")+1).match(reg);if (r!=null) return unescape(r[2]); return null; }var strHref = "www.ceshi.org/index.htm?a=aaa&b=bbb&c=ccc"; alert(strHref.getQuery("a...
类构造函数JavaScript的函数同时作为类的构造函数,因此只要声明一个函数就可以使用new关键字创建类的实例。 function Person(name) { this.name = name; this.toString = function() { return Hello, + this.name + !; }; } var p = new Person(Ghostheaven); alert(p); // Hello, Ghostheaven!在以上实例中Person函数作为类的构造函数使用,此时this指向新创建的实例对象,可以为实例增加属性和方法,关于详细的面向对象的JavaS...
动态判断源代码中的字符串是一种很强大的语言特性,几乎没有必要在实际中应用。如果你使用了eval(),你应当仔细考虑是否真的需要使用它。一、eval()是一个函数还是一个运算符eval()是一个函数,但由于它已经被当成运算符来对待了。。JavaScript语言的早期版本定义了eval函数,现代JavaScript解释器进行了大量的代码分析和优化。而eval的问题在于,用于动态执行的代码通常来讲不能分析,换句话说,如果一个函数调用了eval,那么解释...
创建对象 首先我们理解一下面向对象编程(Object-Oriented Programming,OOP),使用OOP技术,常常要使用许多 代码模块,每个模块都提供特定的功能,每个模块都是孤立的,甚至与其它模块完全独立 。这种模块化编程方法提供了非常大的多样性,大大增加了代码的重用机会。可以举例进一步说明这个问 题,假定计算机上的一个高性能应用程序是一辆一流赛车。如果使用传统的编程技巧,这辆赛车就是 一个单元。如果要改进该车,就必须替换整...
在Node.js中我们可以通过underscore的extend或者lodash的merge来合并两个对象,但是对于像下面这种复杂的对象,要如何来应对呢?Node.js合并两个复杂对象例如有以下两个object:var obj1 = {"name" : "myname","status" : 0,"profile": { "sex":"m", "isactive" : true},"strarr":["one", "three"],"objarray": [{"id": 1,"email": "a1@me.com","isactive":true},{"id": 2,"email": "a2@me.com","isactive":false}] };var obj2 = {...
享元(flyweight)模式是一种用于性能优化的模式,核心是运用共享技术来有效支持大量细刻度的对象。 在JavaScript中,浏览器特别是移动端的浏览器分配的内存并不算多,如何节省内存就成了一个非常有意义的事情。 享元模式是一种用时间换空间的优化模式什么场景下使用享元模式?(1)程序中使用大量的相似对象,造成很大的内存开销 (2)对象的大多数状态都可以变为外部状态,剥离外部状态之后,可以用相对较少的共享对象取代大量对...
回溯(非递归)<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Full Permutation(Non-recursive Backtrack) - Mengliao Software</title> </head> <body> <p> Full Permutation(Non-recursive Backtrack)<br /> Mengliao Software Studio - Bosun Network Co., Ltd.<br /> 2012.03.29</p> <script type="text/javascript">...
在写程序过程中,经常会遇到去除数组中重复元素的需求。我们可以用一个两重循环来实现,对于小的数组。 但如果我们的数组比较大,里面的元素有上万个。那么用两重循环,效率是极为低下。 下面我们就用js的特性,编写一个高效去除数组重复元素的方法。 <script> function unique(data){ data = data || []; var a = {}; for (var i=0; i<data.length; i++) { var v = data[i]; if (typeof(a[v]) == undefined){ a[v] = 1; }...
Node.js扩展Init方法为了创建一个Node.js扩展,我们需要编写一个继承node::ObjectWrap的C++类。 ObjectWrap 实现了让我们更容易与Javascript交互的公共方法我们先来编写类的基本框架:#include <v8.h> // v8 is the Javascript engine used by QNode #include <node.h> // We will need the following libraries for our GTK+ notification #include <string> #include <gtkmm.h> #include <libnotifymm.h>using namespace v8;clas...
很多登录功能上都有个“记住密码”的功能,其实无非就是对cookie的读取。下面展示这个功能的代码,测试方法:直接输入账号密码,提交后,刷新页面,再输入同样的账号,就可以显示<!DOCTYPE HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js COOKIE 记住帐号或密码</title> <script type="text/javascript">window.onload=function onLoginLoaded() {if (isPostBack == "False") {Ge...
js选中服务器控件select与dropdownlist1. js操作服务器控件select<select id="selectID" onchange="return showMessage()"><option value="0">==请选择==</option><option value="1">是</option><option value="2">否</option> </select><script type="text/javascript" language="javascript">function showMessage() {if (document.getElementById("selectID").options[document.getElementById("selectID").selectedIndex].valu...
javascript数组对象的3个属性1、length 属性 Length属性表示数组的长度,即其中元素的个数。因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。和其他大多数语言不同的是,JavaScript数组的length属性是可变的,这一点需要特别注意。当length属性被设置得更大时,整个数组的状态事实上不会发生变化,仅仅是length属性变大;当length属性被设置得比原来小时,则原先数组中索引大于或等于length的元素的值全部...
我们可以自定义事件来实现更灵活的开发,事件用好了可以是一件很强大的工具,基于事件的开发有很多优势(后面介绍)。与自定义事件的函数有 Event、CustomEvent 和 dispatchEvent。直接自定义事件,使用 Event 构造函数:var event = new Event(build); // Listen for the event. elem.addEventListener(build, function (e) { ... }, false); // Dispatch the event. elem.dispatchEvent(event);CustomEvent 可以创建一个更高度自...
一、事件模型冒泡型事件(Bubbling):事件由叶子节点沿祖先节点一直向上传递到根节点捕获型事件(Capturing):由DOM树最顶元素一直到最精确的元素,与冒泡型事件相反DOM标准事件模型:DOM标准既支持冒泡型事件,也支持捕获型事件,可以说是两者的结合体,首先是捕获型,接着冒泡传递二、事件对象在IE浏览器中事件对象是window的一个属性,在DOM标准中,event必须作为唯一的参数传给事件处理函数获得兼容的event 对象:function(e...
数组去掉重复简单方法去掉重复:先声明一个空的数组,将重复的数组 for 循环插入,重复的跳过 不重复的插入var arr = []; for(var i=0;i<20;i++){ arr.push(parseInt(Math.random()*10)); } Array.prototype.indexOf = function(n){ for(var i=0;i<this.length;i++){ if(this[i] == n){ return i; } } return -1; } function removeDup(arr){ var result = []; for(var i=0;i<arr.length;i++){ if(result.inde...