上一页 1 ··· 14 15 16 17 18

返回两个数组中非相同的元素

摘要: CSDN上又有个网友提这样的问题,看来这个问题很多时候都会碰到。如下var a=['1','2','3','4'] var b=['1','2']如何比较才能得到数组c=['3','4']基本的算法就是挨个比较两个数组的元素,把不同的跳出来单独放到一个数组里,最后返回该数组。其实数组元素如果是基本类型(Number,String,Boolean)的很好比较,但如果是对象类型就麻烦一些,js对象的比较见:http://www.cnblogs.com/snandy/arc 阅读全文
posted @ 2011-03-02 13:38 snandy 阅读(2040) 评论(3) 推荐(0) 编辑

利用JS的动态语言特性对数组排序

摘要: 首先,看看JS和Java中关系运算符的区别。这里拿大于号做示例(>)。1、Java中的大于号不能用于两个字符串的比较String s1 = "11", s2 = "12";System.out.println(s1>s2); //编译报错,不能通过2、JS中的则可以,比较的字符串中各个字符ASCII大小var s1="11",s2="12";console.log(s1>s2); //输出false.逐次比较字符的ASCII顺序嗯,利用js这个特性可以很好的对数据进行排序。这个是当时做abcc项目 阅读全文
posted @ 2011-03-02 10:58 snandy 阅读(3969) 评论(5) 推荐(0) 编辑

Javascript变量作用域

摘要: 变量的作用域指的是变量的可见性,而生命周期则(存活期)则是从另一个角度考察变量。JS中变量的作用域分为全局变量和局部变量,函数内定义的称为局部变量,函数外的称为全局变量。(“函数外的称为全局变量”是相对的,另此处讨论的前提是用var显式声明的变量,函数内不用var定义的变量默认是全局变量,当然忽略var声明变量是不赞成的)。var glob = 4;//函数外声明全局变量function fun() { var height = 20; //函数内用var声明的是局部变量 weight = 50; //函数内不用var声明的是全局变量}fun();alert(weight);JS中没有块级作用 阅读全文
posted @ 2011-03-02 08:28 snandy 阅读(3453) 评论(5) 推荐(9) 编辑

变量声明时命名与变量作为对象属性时命名区别

摘要: 这个标题实在拗口,Javascript命名变量所遵循的规则1、第一个字符必须是字母、汉字字符、 下划线(_)或美元符号($)2、剩下的可以是下划线、汉字字符、 美元符号和任何字母、数字以下声明变量是正确的var p,$p,_p;var 长,宽;以下是错误的var .p;//只能是字母、数字、下划线或美元符号var -p;//只能是字母、数字、下划线或美元符号var p*;//只能是字母、数字、下划线或美元符号var 4p,4长;//不能以数字开头var 长 度;//中间不能有空格作为对象属性时,有两种方式存取。一是点号(.)运算符,一是中括号([])运算符。var p = {name:&quo 阅读全文
posted @ 2011-03-01 21:25 snandy 阅读(2316) 评论(4) 推荐(3) 编辑

绑定/约束

摘要: 绑定/约束 (binding)指两个东西之间的关联。如 名字 与它所代表的事物。又如属性与实体之间的关联,又或者符号与操作之间的关联。早期的书翻译成约束,后期的多数称绑定。后续都称绑定。绑定发生的时间称为 绑定时间 (binding time)。绑定 和 绑定时间 是程序设计语言中了个非常重要的概念。绑定可以发生在语言设计时、语言实现时、编译时、连接时、载入时和运行时。 一、语言设计时多数语言中运算符、流程控制结构、内部类型、对象的构造形式等都是在语言设计时决定的。如星号(*)在语言设计时与乘法操作绑定。 二、语言实现时多数语言手册都留下了许多问题,要求语言的实现者去仔细考虑和决定如何实现?如 阅读全文
posted @ 2011-03-01 17:56 snandy 阅读(1760) 评论(2) 推荐(2) 编辑

变量的六个属性

摘要: 变量 是机器存储单元在语言中的抽象。它是编程语言最重要的概念之一。变量有6个属性(或者说从6个方面去描述变量)名字/别名地址/左值值/右值类型作用域生存期/生命期1 名字/别名名字的概念在 名字/标识符 已经提到。当多个名字访问的都是同一个存储地址时(或者说多个名字都 绑定/约束 于同一个存储地址)... 阅读全文
posted @ 2011-03-01 14:40 snandy 阅读(9180) 评论(7) 推荐(7) 编辑

名字/标识符

摘要: 名字 是指代表某些东西的有助于记忆的字符序列。名字可以使我们采用符号形式标识符引用变量、常量、子程序、形参而不用采用更低级的如地址一类的概念。从低级语言到高级语言的发展过程中,名字 是抽象出来的最重要的概念之一。名字不只是用于变量,也常用于常量、子程序、形参等。标识符一词常常与名字概念互换使用。一、名字的长度早期的程序设计主要用来解决数学问题,数学中常用的就是单个字符的变量。如x,y,z。Fortran1 打破了使用单个字符名字的传统,它最多允许使用6个字符。直至到Fortran77。Fortran95 中变量名字最多允许31个字符。C89/Java/JavaScript/Ada/C# 对名字 阅读全文
posted @ 2011-03-01 11:42 snandy 阅读(6497) 评论(5) 推荐(3) 编辑

在循环中正确找到对应DOM元素的索引

摘要: 有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4。闭包演示 产品 0 产品 1 产品 2 产品 3 产品 4 以上场景是初学者经常碰到的。即获取HTML元素集合,循环给元素添加事件。在事件响应函数中(event handler... 阅读全文
posted @ 2011-03-01 08:48 snandy 阅读(17029) 评论(34) 推荐(25) 编辑

IE浏览器中js使用中文标识符的bug

摘要: 今天在一个网站看到了作者使用中文命名。我们知道js中可以使用中文标识符,如变量,类名,参数名,方法名等。如下代码:function 学生(姓名,年龄){//类名:学生,参数:姓名,年龄 this.姓名=姓名; this.年龄=年龄;}学生.prototype.获取姓名=function(){//方法名:获取姓名 return this.姓名;}学生.prototype.设置姓名=function(名字){//方法名:设置姓名 this.姓名=名字;}var student1 = new 学生("张三",18);alert(student1.获取姓名());student1. 阅读全文
posted @ 2011-02-28 18:36 snandy 阅读(1799) 评论(2) 推荐(0) 编辑

Javascript中大括号“{}”的多义性

摘要: JS中大括号有四种语义作用语义1,组织复合语句,这是最常见的if( condition ) { //...}else { //...}for() { //...}语义2,对象直接量声明var obj = { name : 'jack', age : 23};整个是个赋值语句,其中的{name:... 阅读全文
posted @ 2011-02-28 13:40 snandy 阅读(18639) 评论(11) 推荐(18) 编辑

Javascript中匿名函数的多种调用方式

摘要: Javascript中定义函数的方式有多种,函数直接量就是其中一种。如var fun = function(){},这里function如果不赋值给fun那么它就是一个匿名函数。好,看看匿名函数的如何被调用。方式1,调用函数,得到返回值。强制运算符使函数调用执行(function(x,y){ alert(x+y); return x+y;}(3,4)); 方式2,调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行(function(x,y){ alert(x+y); return x+y;})(3,4);这种方式也是很多库爱用的调用方式,如jQue... 阅读全文
posted @ 2011-02-28 08:48 snandy 阅读(24461) 评论(13) 推荐(12) 编辑

Javascript动态方法调用与参数修改的问题

摘要: Javascript中可以对所传参数在函数内进行修改,如下function func1(name) { name = 'lily'; alert(name);}func1('jack');//输出lily再看一个例子function fun1(n) { this.name = n;}function fun2(name) { fun1.call(this,'lily'); alert(name);}fun2("jack");//输出"jack"fun1函数想把fun2调用时的参数修改为“lily”,但没有成 阅读全文
posted @ 2011-02-27 17:03 snandy 阅读(3707) 评论(7) 推荐(1) 编辑

定义对象或数组直接量时不同引擎对多余逗号的处理

摘要: 这种错误已经多次犯了,一次用Ext做abcc的demo,一次是abcc查询模块。js报错分为两种:语法错误和运行错误1、js引擎在代码载入时进行语法分析,如果js写的不规范则语法分析通不过。这时候的错误称为语法错误2、语法分析通过了,js引擎会执行代码。执行期间发生的错误称为运行错误不同引擎处理这2种错误的提示不太一样。如下:var p = {name:"Jack",age:33,};//注意33后有个逗号 p.toString = function() {return "姓名:" +this.name + ",年龄:" + this 阅读全文
posted @ 2011-02-27 13:37 snandy 阅读(1769) 评论(2) 推荐(2) 编辑

索引数组、关联数组和静态数组、动态数组

摘要: 数组分类:1、从数组的下标分为索引数组、关联数组/* 索引数组,即通常情况下所说的数组 */var ary1 = [1,3,5,8];//按索引去取数组元素,从0开始(当然某些语言实现从1开始)//索引实际上就是序数,一个整型数字alert(ary1[0]);alert(ary1[1]);alert(ary1[2]);alert(ary1[3]);/* 关联数组,指以非序数类型为下标来存取的数组 python中称为字典 */var ary2 = {};//存取时,以非序数(数字),这里是字符串ary2["one"] = 1;ary2["two"] = 2 阅读全文
posted @ 2011-02-27 08:56 snandy 阅读(13659) 评论(1) 推荐(9) 编辑

Javascript中各种trim的实现

摘要: 這是lgzx公司的一道面試題,要求給js的String添加一個方法,去除字符串兩邊的空白字符(包括空格、製錶符、換頁符等)。String.prototype.trim = function() { //return this.replace(/[(^\s+)(\s+$)]/g,"");//會把字符串中間的空白符也去掉 //return this.replace(/^\s+|\s+$/g,""); // return this.replace(/^\s+/g,"").replace(/\s+$/g,"");}JQue 阅读全文
posted @ 2011-02-26 18:00 snandy 阅读(6779) 评论(4) 推荐(2) 编辑

js對象的比較

摘要: 項目中需要比較兩個對象是否相等,給Object對象開展了(別緊張,別說我把它污染了),一個實現而已,象java一樣可以只給自己想要的類重寫equals方法。Object.prototype.equals = function(obj){ if(this == obj) return true; if(typeof(obj)=="undefined"||obj==null||typeof(obj)!="object") return false; var length = 0; var length1=0; for(var ele in this) { l 阅读全文
posted @ 2011-02-26 09:34 snandy 阅读(2702) 评论(1) 推荐(4) 编辑

Eclipse设定文件的打开方式

摘要: 刚刚安装了apnata的eclipse插件,但打开.js文件仍然是默认的myeclipse js editor。这样设置:菜单:Window -> Preferences -> General -> Editors -> File Associations File types: *.jsAssociated editors: Text Editor -> Default 选择apnata js editor,并且作为默认编辑器。下次再双击js文件的时候就ok了。 阅读全文
posted @ 2011-02-25 16:04 snandy 阅读(2023) 评论(0) 推荐(0) 编辑

jspx中輸出文檔類型(DOCTYPE)

摘要: 在網上找了半天沒找到,甚是郁悶。還是墨墨厲害,貼在此處。以備后用。瀏覽器有不同的模式,標準模式、怪異模式(寬松模式)。不同的模式下對css的支持也不一樣,如在標準模式下,瀏覽器根據規范表現頁面;在怪異模式下則以比較寬松的向后兼容的方式展現頁面。即怪異模式經常模擬老式瀏覽器(MS IE4,NetScape Navigator4)的行為以防止老站點無法工作。多數情況下要在每個頁面包含完整的DOCTYPE,并且使用HTML時選用嚴格的DTD,如下<jsp:directive.page language="java" contentType="text/html; 阅读全文
posted @ 2011-02-25 11:59 snandy 阅读(462) 评论(0) 推荐(0) 编辑

用jquery循环map

摘要: 前些天记录了java中for循环取map,发现用jquery的each一样可以取map(我称之为js的map,不要较劲),且顺序和map中顺序一致。废话少说,看代码var map = { 地名: ["北京","天津","上海"], 民族: ["汉族","藏族","维吾尔族"]};$.each(map,function(key,values){ console.log(key); $(values).each(function(){ console.log("\t&q 阅读全文
posted @ 2011-02-25 11:56 snandy 阅读(12548) 评论(5) 推荐(2) 编辑

Java用for循環Map

摘要: 根据JDK5的新特性,用For循环Map,例如循环Map的Keyfor(String dataKey : paraMap.keySet()) { System.out.println(dataKey ); }注意的是,paraMap 是怎么样定义的,如果是简单的Map paraMap = new HashMap ();那前面的String就只能换成Object了.循環整個map的key和valueMap<Integer,String> map = new LinkedHashMap<Integer,String>();map.put(1, "星期一" 阅读全文
posted @ 2011-02-25 11:34 snandy 阅读(52827) 评论(0) 推荐(4) 编辑

数组的平衡点

摘要: 2007年5月去一个中小型外企的上机题,笔试全是英文的。没戏了。package myAction;public class Balence {/** * 求数组index左边的和 * @param a * @param index * @return */public static int left(int[] a, int index){ int left = 0; if(index==0) { left = a[0]; return left; } for(int i=0;i<index;i++) { left = left + a[index-1-i]; } return left 阅读全文
posted @ 2011-02-25 10:08 snandy 阅读(1753) 评论(0) 推荐(0) 编辑

java中漢字按拼音排序

摘要: 最近項目中需要對繁體字按拼音進行排序public static void main(String[] args) { Comparator cmp = Collator.getInstance(java.util.Locale.CHINA); String[] arr ... 阅读全文
posted @ 2011-02-24 14:57 snandy 阅读(3858) 评论(2) 推荐(2) 编辑

获取事件对象的全家

摘要: 事件对象的获取很简单,很久前我们就知道IE中事件对象是作为全局对象( window.event )存在的,Firefox中则是做为句柄( handler )的第一个参数传入内的。所以一行代码就可以搞定,var evt = window.event || arguments[0];下面分三种添加事件的方式讨论1,第一种添加事件的方式,直接在html的属性中写JS代码<div onclick="alert(4);">Div1 Element</div>大概这是上世纪90年代的写法,那时候直接把js代码写在网页中很普遍,也许那时候的js并不太重要,只是用来 阅读全文
posted @ 2010-04-25 11:53 snandy 阅读(1039) 评论(2) 推荐(3) 编辑
上一页 1 ··· 14 15 16 17 18