??xml version="1.0" encoding="utf-8" standalone="yes"?>精品国产成人在线影院,在线日韩中文,综合136福利视频在线http://www.aygfsteel.com/hefang/category/45426.htmlzh-cnFri, 25 Jun 2010 09:57:43 GMTFri, 25 Jun 2010 09:57:43 GMT60Schema的优化和索引 - 高性能的烦引策?- 索引和锁(?http://www.aygfsteel.com/hefang/articles/324488.html何方何方Fri, 25 Jun 2010 09:54:00 GMThttp://www.aygfsteel.com/hefang/articles/324488.htmlhttp://www.aygfsteel.com/hefang/comments/324488.htmlhttp://www.aygfsteel.com/hefang/articles/324488.html#Feedback0http://www.aygfsteel.com/hefang/comments/commentRss/324488.htmlhttp://www.aygfsteel.com/hefang/services/trackbacks/324488.htmlInnoDB中,索引所扮演的角色是非常重要的。因为它们可以能让语句锁定更的行。这是个要考虑的事情,因ؓ在MySQL5.0 InnoDB中一个事物提前之前,是不会释N的?/p>

如果查询语句不会索它们不需要的行。它们将锁定更少的行。ƈ且对于性能有提高,原因有二Q首先,即InnoDB行锁是非常有效率的ƈ且用更的内存Q但是行锁也会消耗一定的资源。其ơ,锁定很多的行提高了锁的竞争q且降低了ƈ发?/p>

仅当InnoDB讉K行的时候,才对它们加锁Qƈ且一个烦引可以降低InnoDB所要访问的行,因此也会降低锁。然而,q种情况只适用于在存储引擎U别中,InnoDBqo了不期望的行。如果烦引不允许InnoDB那么做,MySQL服务?/a>׃在InnoDB取到q些值ƈ且返回服务层之后Q应用WHERE条g了。这U情况下Q避免行的锁定就太晚了:InnoDB已经锁定了它们,q且服务器是不可能解锁的?/p>

Z更好的理解我们看个例子,我们q是用以前的数据库Sakila

mysql> SET AUTOCOMMIT=0;
mysql> BEGIN;
mysql> SELECT actor_id FROM sakila.actor WHERE actor_id < 5
    -> AND actor_id <> 1 FOR UPDATE;
+----------+
| actor_id |
+----------+
|        2 |
|        3 |
|        4 |
+----------+

q个查询q回??行,但是实际上它已经获得??行的独占锁。InnoDB锁定了第一行,因ؓq个语句是个索引范围dQ?/p>

mysql> EXPLAIN SELECT actor_id FROM sakila.actor
    -> WHERE actor_id < 5 AND actor_id <> 1 FOR UPDATE;
+----+-------------+-------+-------+---------+--------------------------+
| id | select_type | table | type  | key     | Extra                    |
+----+-------------+-------+-------+---------+--------------------------+
|  1 | SIMPLE      | actor | range | PRIMARY | Using where; Using index |
+----+-------------+-------+-------+---------+--------------------------+

换句话说Q这个低U别的存储引擎操作是“从烦引开始ƈ且获取所有的行直到actor_id<5为false”。服务器是不会告诉InnoDB,WHERE actor_id <>1的条件。来看下EXTRA列的Using where。这p明了在存储引擎返回行之后QMySQL服务器用WHEREq行了过滤?/p>

下面的语句证明了W一行已l被锁了Q即使它不会出现在第一个查询结果之中。丢掉第一个连接,开始第二个q接执行下列语句?/p>

mysql> SET AUTOCOMMIT=0;
mysql> BEGIN;
mysql> SELECT actor_id FROM sakila.actor WHERE actor_id = 1 FOR UPDATE;

q个查询会被挂v。等待第一个事物是否第一行的锁。这个行为是Z保证Z语句U的复制是正的。(在复制的一节会说道。)

像q个例子所昄的,即使用了烦引,InnoDBq回会锁定它q不是真正需要的行。当不用烦引去查找和锁定行Q这L问题会更严重Q如果这个语句没有烦引,不管需不需要,MySQL都会扫描整张表ƈ且锁定每个行?/p>

下面谈一下InnoDBQ烦引和锁的一些鲜Zh知的l节QInnoDB会把׃n锁放|在ơ要索引上,但是独占锁需要访问主键。这降低了使用覆盖索引的可能性ƈ且会DSELECT FOR UPDATE 慢于LOCK IN SHARE MODE 或者没有锁的查询?/p>

何方 2010-06-25 17:54 发表评论
]]>
办公软g的一些操?copyq来的,啥也没改http://www.aygfsteel.com/hefang/articles/324487.html何方何方Fri, 25 Jun 2010 09:53:00 GMThttp://www.aygfsteel.com/hefang/articles/324487.htmlhttp://www.aygfsteel.com/hefang/comments/324487.htmlhttp://www.aygfsteel.com/hefang/articles/324487.html#Feedback0http://www.aygfsteel.com/hefang/comments/commentRss/324487.htmlhttp://www.aygfsteel.com/hefang/services/trackbacks/324487.htmlWordl招:
一?输入三个“=”Q回车,得到一条双直线Q?br /> 二?输入三个“~”Q回车,得到一条L线Q?br /> 三?输入三个“*”?“-”?“#”Q回车,惊喜多多Q?br /> 在单元格内输?nowQ)   昄日期
在单元格内输?CHOOSE(WEEKDAY(I3,2),"星期一","星期?,"星期?,"星期?,"星期?,"星期?,"星期?)         昄星期?/span>
Excel常用函数大全

 1、ABS函数
  函数名称QABS
  主要功能Q求出相应数字的l对倹{?
  使用格式QABS(number)
  参数说明Qnumber代表需要求l对值的数值或引用的单元格?
  应用举例Q如果在B2单元g输入公式Q?ABS(A2)Q则在A2单元g无论输入正数Q如100Q还是负敎ͼ?100Q,B2中均昄出正敎ͼ?00Q?
  特别提醒Q如果number参数不是数|而是一些字W(如A{)Q则B2中返回错误?#8220;#VALUEQ?#8221;?/span>
  2、AND函数
  函数名称QAND
  主要功能Q返回逻辑|如果所有参数值均为逻辑“真(TRUEQ?#8221;Q则q回逻辑“真(TRUEQ?#8221;Q反之返回逻辑“假(FALSEQ?#8221;?
  使用格式QAND(logical1,logical2, ...)
  参数说明QLogical1,Logical2,Logical3……Q表C待试的条件值或表达式,最多这30个?
  应用举例Q在C5单元D入公式:=AND(A5>=60,B5>=60)Q确认。如果C5中返回TRUEQ说明A5和B5中的数值均大于{于60Q如果返回FALSEQ说明A5和B5中的数D有一个小?0?
  特别提醒Q如果指定的逻辑条g参数中包含非逻辑值时Q则函数q回错误?#8220;#VALUE!”?#8220;#NAME”?/span>
  3、AVERAGE函数
  函数名称QAVERAGE
  主要功能Q求出所有参数的术q_倹{?
  使用格式QAVERAGE(number1,number2,……)
  参数说明Qnumber1,number2,……Q需要求q_值的数值或引用单元|区域Q,参数不超q?0个?
  应用举例Q在B8单元g输入公式Q?AVERAGE(B7:D7,F7:H7,7,8)Q确认后Q即可求出B7至D7区域、F7至H7区域中的数值和7?的^均倹{?
  特别提醒Q如果引用区域中包含“0”值单元格Q则计算在内Q如果引用区域中包含I白或字W单元格Q则不计在内?/span>
  4、COLUMN 函数
  函数名称QCOLUMN
  主要功能Q显C所引用单元格的列标号倹{?
  使用格式QCOLUMN(reference)
  参数说明Qreference为引用的单元根{?
  应用举例Q在C11单元g输入公式Q?COLUMN(B11)Q确认后昄?Q即B列)?
  特别提醒Q如果在B11单元g输入公式Q?COLUMN()Q也昄?Q与之相对应的还有一个返回行标号值的函数——ROW(reference)?/span>
  5、CONCATENATE函数
  函数名称QCONCATENATE
  主要功能Q将多个字符文本或单元格中的数据q接在一P昄在一个单元格中?
  使用格式QCONCATENATE(Text1QText……)
  参数说明QText1、Text2……为需要连接的字符文本或引用的单元根{?
  应用举例Q在C14单元g输入公式Q?CONCATENATE(A14,"@",B14,".com")Q确认后Q即可将A14单元g字符、@、B14单元g的字W和.comq接成一个整体,昄在C14单元g?
  特别提醒Q如果参C是引用的单元|且ؓ文本格式的,L参数加上英文状态下的双引号Q如果将上述公式改ؓQ?A14&"@"&B14&".com"Q也能达到相同的目的?/span>
  6、COUNTIF函数
  函数名称QCOUNTIF
  主要功能Q统计某个单元格区域中符合指定条件的单元格数目?
  使用格式QCOUNTIF(Range,Criteria)
  参数说明QRange代表要统计的单元格区域;Criteria表示指定的条件表辑ּ。  
  应用举例Q在C17单元g输入公式Q?COUNTIF(B1:B13,">=80")Q确认后Q即可统计出B1至B13单元格区域中Q数值大于等?0的单元格数目?
  特别提醒Q允许引用的单元格区域中有空白单元格出现?/span>
  7、DATE函数
  函数名称QDATE
  主要功能Q给出指定数值的日期?
  使用格式QDATE(year,month,day)
  参数说明Qyear为指定的q䆾数|于9999Q;month为指定的月䆾数|可以大于12Q;day为指定的天数?
  应用举例Q在C20单元g输入公式Q?DATE(2003,13,35)Q确认后Q显C出2004-2-4?
  特别提醒Q由于上q公式中Q月份ؓ13Q多了一个月Q顺延至2004q?月;天数?5Q比2004q?月的实际天数又多?天,故又g?004q??日?/span>
  8、函数名UͼDATEDIF
  主要功能Q计返回两个日期参数的差倹{?br />   使用格式Q?DATEDIF(date1,date2,"y")?DATEDIF(date1,date2,"m")?DATEDIF(date1,date2,"d")
  参数说明Qdate1代表前面一个日期,date2代表后面一个日期;yQm、dQ要求返回两个日期相差的q_月、天Q数?br />   应用举例Q在C23单元g输入公式Q?DATEDIF(A23,TODAY(),"y")Q确认后q回pȝ当前日期[用TODAY()表示Q与A23单元g日期的差|q返回相差的q数?br />   特别提醒Q这是Excel中的一个隐藏函敎ͼ在函数向g是找不到的,可以直接输入使用Q对于计年龄、工龄等非常有效?/span>
  9、DAY函数
  函数名称QDAY
  主要功能Q求出指定日期或引用单元g的日期的天数?br />   使用格式QDAY(serial_number)
  参数说明Qserial_number代表指定的日期或引用的单元格?br />   应用举例Q输入公式:=DAY("2003-12-18")Q确认后Q显C出18?br />   特别提醒Q如果是l定的日期,请包含在英文双引号中?/span>
  10、DCOUNT函数
  函数名称QDCOUNT
  主要功能Q返回数据库或列表的列中满指定条gq且包含数字的单元格数目?br />   使用格式QDCOUNT(database,field,criteria)
  参数说明QDatabase表示需要统计的单元格区域;Field表示函数所使用的数据列Q在W一行必要有标志项Q;Criteria包含条g的单元格区域?br />   应用举例Q如?所C,在F4单元g输入公式Q?DCOUNT(A1:D11,"语文",F1:G2)Q确认后卛_求出“语文”列中Q成l大于等?0Q而小?0的数值单元格数目Q相当于分数Dh敎ͼ?/span>
 
特别提醒Q如果将上述公式修改为:=DCOUNT(A1:D11,,F1:G2)Q也可以辑ֈ相同目的?/span>
  11、FREQUENCY函数
  函数名称QFREQUENCY
  主要功能Q以一列垂直数l返回某个区域中数据的频率分布?br />   使用格式QFREQUENCY(data_array,bins_array)
  参数说明QData_array表示用来计算频率的一l数据或单元格区域;Bins_array表示为前面数l进行分隔一列数倹{  
  应用举例Q如?所C,同时选中B32至B36单元格区域,输入公式Q?FREQUENCY(B2:B31,D2:D36)Q输入完成后按下“Ctrl+Shift+Enter”l合键进行确认,卛_求出B2至B31区域中,按D2至D36区域q行分隔的各D|值的出现频率数目Q相当于l计各分数段人数Q?/span>
 
  特别提醒Q上q输入的是一个数l公式,输入完成后,需要通过?#8220;Ctrl+Shift+Enter”l合键进行确认,认后公式两端出C对大括号Q{}Q,此大括号不能直接输入?/span>
  12、IF函数
  函数名称QIF
  主要功能Q根据对指定条g的逻辑判断的真假结果,q回相对应的内容?br />   使用格式Q?IF(Logical,Value_if_true,Value_if_false)
  参数说明QLogical代表逻辑判断表达式;Value_if_true表示当判断条件ؓ逻辑“真(TRUEQ?#8221;时的昄内容Q如果忽略返?#8220;TRUE”QValue_if_false表示当判断条件ؓ逻辑“假(FALSEQ?#8221;时的昄内容Q如果忽略返?#8220;FALSE”?br />   应用举例Q在C29单元g输入公式Q?IF(C26>=18,"W合要求","不符合要?)Q确信以后,如果C26单元g的数值大于或{于18Q则C29单元格显C?#8220;W合要求”字样Q反之显C?#8220;不符合要?#8221;字样?br />   特别提醒Q本文中cM“在C29单元g输入公式”中指定的单元|读者在使用Ӟq不需要受其约束,此处只是配合本文所附的实例需要而给出的相应单元|具体请大家参考所附的实例文g?/span>
  13、INDEX函数
  函数名称QINDEX
  主要功能Q返回列表或数组中的元素|此元素由行序号和列序L索引D行确定?br />   使用格式QINDEX(array,row_num,column_num)
  参数说明QArray代表单元格区域或数组帔RQRow_num表示指定的行序号Q如果省略row_numQ则必须?column_numQ;Column_num表示指定的列序号Q如果省略column_numQ则必须?row_numQ?br />   应用举例Q如?所C,在F8单元g输入公式Q?INDEX(A1:D11,4,3)Q确认后则显C出A1至D11单元格区域中Q第4行和W?列交叉处的单元格Q即C4Q中的内宏V?/span>

  特别提醒Q此处的行序号参敎ͼrow_numQ和列序号参敎ͼcolumn_numQ是相对于所引用的单元格区域而言的,不是Excel工作表中的行或列序号?/span>
    14、INT函数
  函数名称QINT
  主要功能Q将数值向下取整ؓ最接近的整数?br />   使用格式QINT(number)
  参数说明Qnumber表示需要取整的数值或包含数值的引用单元根{  
  应用举例Q输入公式:=INT(18.89)Q确认后昄?8?br />   特别提醒Q在取整Ӟ不进行四舍五入;如果输入的公式ؓ=INT(-18.89)Q则q回l果?19?br />   
    15、ISERROR函数
  函数名称QISERROR
  主要功能Q用于测试函数式q回的数值是否有错。如果有错,该函数返回TRUEQ反之返回FALSE?br />   使用格式QISERROR(value)
  参数说明QValue表示需要测试的值或表达式?br />   应用举例Q输入公式:=ISERROR(A35/B35)Q确认以后,如果B35单元gؓI或“0”Q则A35/B35出现错误Q此时前q函数返回TRUEl果Q反之返回FALSE?br />   特别提醒Q此函数通常与IF函数配套使用Q如果将上述公式修改为:=IF(ISERROR(A35/B35),"",A35/B35)Q如果B35为空?#8220;0”Q则相应的单元格昄为空Q反之显CA35/B35
的结果?/span>
  16、LEFT函数
  函数名称QLEFT
  主要功能Q从一个文本字W串的第一个字W开始,截取指定数目的字W?br />   使用格式QLEFT(text,num_chars)
  参数说明Qtext代表要截字符的字W串Qnum_chars代表l定的截取数目。  
  应用举例Q假定A38单元g保存?#8220;我喜Ƣ天极网”的字W串Q我们在C38单元g输入公式Q?LEFT(A38,3)Q确认后xC出“我喜?#8221;的字W?br />   特别提醒Q此函数名的英文意思ؓ“?#8221;Q即从左Ҏ取,Excel很多函数都取其英文的意思?/span>
  17、LEN函数
  函数名称QLEN
  主要功能Q统计文本字W串中字W数目?br />   使用格式QLEN(text)
  参数说明Qtext表示要统计的文本字符丌Ӏ  
  应用举例Q假定A41单元g保存?#8220;我今q?8?#8221;的字W串Q我们在C40单元g输入公式Q?LEN(A40)Q确认后xC出l计l果“6”?br />   特别提醒QLEN要统计时Q无Z全角字符Q还是半角字W,每个字符均计?#8220;1”Q与之相对应的一个函数——LENBQ在l计时半角字W计?#8220;1”Q全角字W计?#8220;2”?/span>
  18、MATCH函数
  函数名称QMATCH
  主要功能Q返回在指定方式下与指定数值匹配的数组中元素的相应位置?br />   使用格式QMATCH(lookup_value,lookup_array,match_type)
  参数说明QLookup_value代表需要在数据表中查找的数|
  Lookup_array表示可能包含所要查扄数值的q箋单元格区域;
  Match_type表示查找方式的|-1??Q?br />   如果match_type?1Q查扑֤于或{于 lookup_value的最数|Lookup_array 必须按降序排列;
  如果match_type?Q查扑ְ于或{于 lookup_value 的最大数|Lookup_array 必须按升序排列;
  如果match_type?Q查扄于lookup_value 的第一个数|Lookup_array 可以按Q何顺序排列;如果省略match_typeQ则默认??br />   应用举例Q如?所C,在F2单元g输入公式Q?MATCH(E2,B1:B11,0)Q确认后则返回查扄l果“9”?/span>

特别提醒QLookup_array只能Z列或一行?/span>
  19、MAX函数
  函数名称QMAX
  主要功能Q求Zl数中的最大倹{?br />   使用格式QMAX(number1,number2……)
  参数说明Qnumber1,number2……代表需要求最大值的数值或引用单元|区域Q,参数不超q?0个?br />   应用举例Q输入公式:=MAX(E44:J44,7,8,9,10)Q确认后卛_昄出E44至J44单元和区域和数?Q?Q?Q?0中的最大倹{?br />   特别提醒Q如果参C有文本或逻辑|则忽略?/span>
  20、MID函数
  函数名称QMID
  主要功能Q从一个文本字W串的指定位|开始,截取指定数目的字W?br />   使用格式QMID(text,start_num,num_chars)
  参数说明Qtext代表一个文本字W串Qstart_num表示指定的v始位|;num_chars表示要截取的数目?br />   应用举例Q假定A47单元g保存?#8220;我喜Ƣ天极网”的字W串Q我们在C47单元g输入公式Q?MID(A47,4,3)Q确认后xC出“天极|?#8221;的字W?br />   特别提醒Q公式中各参数间Q要用英文状态下的逗号“,”隔开?/span>
  21、MIN函数
  函数名称QMIN
  主要功能Q求Zl数中的最倹{?br />   使用格式QMIN(number1,number2……)
  参数说明Qnumber1,number2……代表需要求最值的数值或引用单元|区域Q,参数不超q?0个?br />   应用举例Q输入公式:=MIN(E44:J44,7,8,9,10)Q确认后卛_昄出E44至J44单元和区域和数?Q?Q?Q?0中的最倹{?br />   特别提醒Q如果参C有文本或逻辑|则忽略?/span>
  22、MOD函数
  函数名称QMOD
  主要功能Q求Z数相除的余数?br />   使用格式QMOD(number,divisor)
  参数说明Qnumber代表被除敎ͼdivisor代表除数?br />   应用举例Q输入公式:=MOD(13,4)Q确认后昄出结?#8220;1”?br />   特别提醒Q如果divisor参数为零Q则昄错误?#8220;#DIV/0!”QMOD函数可以借用函数INT来表C:上述公式可以修改为:=13-4*INT(13/4)?/span>
  23、MONTH函数
  函数名称QMONTH
  主要功能Q求出指定日期或引用单元g的日期的月䆾?br />   使用格式QMONTH(serial_number)
  参数说明Qserial_number代表指定的日期或引用的单元格?br />   应用举例Q输入公式:=MONTH("2003-12-18")Q确认后Q显C出11?br />   特别提醒Q如果是l定的日期,请包含在英文双引号中Q如果将上述公式修改为:=YEAR("2003-12-18")Q则q回q䆾对应的?#8220;2003”?/span>
  24、NOW函数
  函数名称QNOW
  主要功能Q给出当前系l日期和旉?br />   使用格式QNOW()
  参数说明Q该函数不需要参数。  
  应用举例Q输入公式:=NOW()Q确认后卛_昄出当前系l日期和旉。如果系l日期和旉发生了改变,只要按一下F9功能键,卛_让其随之改变?br />   特别提醒Q显C出来的日期和时间格式,可以通过单元格格式进行重新设|?/span>
  25、OR函数
  函数名称QOR
  主要功能Q返回逻辑|仅当所有参数值均为逻辑“假(FALSEQ?#8221;时返回函数结果逻辑“假(FALSEQ?#8221;Q否则都q回逻辑“真(TRUEQ?#8221;?br />   使用格式QOR(logical1,logical2, ...)
  参数说明QLogical1,Logical2,Logical3……Q表C待试的条件值或表达式,最多这30个?br />   应用举例Q在C62单元D入公式:=OR(A62>=60,B62>=60)Q确认。如果C62中返回TRUEQ说明A62和B62中的数D有一个大于或{于60Q如果返回FALSEQ说明A62和B62中的数值都于60?br />   特别提醒Q如果指定的逻辑条g参数中包含非逻辑值时Q则函数q回错误?#8220;#VALUE!”?#8220;#NAME”?/span>
  26、RANK函数
  函数名称QRANK
  主要功能Q返回某一数值在一列数g的相对于其他数值的排位?br />   使用格式QRANKQNumber,ref,orderQ?br />   参数说明QNumber代表需要排序的数|ref代表排序数值所处的单元格区域;order代表排序方式参数Q如果ؓ“0”或者忽略,则按降序排名Q即数D大,排名l果数D;如果为非“0”|则按升序排名Q即数D大,排名l果数D大;Q。  
  应用举例Q如在C2单元g输入公式Q?RANK(B2,$B$2:$B$31,0)Q确认后卛_得出?同学的语文成l在全班成W中的排名l果?br />   特别提醒Q在上述公式中,我们让Number参数采取了相对引用Ş式,而让ref参数采取了绝对引用Ş式(增加了一?#8220;$”W号Q,q样讄后,选中C2单元|鼠标移臌单元格右下角Q成l十字线状时Q通常UC?#8220;填充?#8221;Q,按住左键向下拖拉Q即可将上述公式快速复制到C列下面的单元gQ完成其他同学语文成l的排名l计?/span>
  27、RIGHT函数
  函数名称QRIGHT
  主要功能Q从一个文本字W串的最后一个字W开始,截取指定数目的字W?br />   使用格式QRIGHT(text,num_chars)
  参数说明Qtext代表要截字符的字W串Qnum_chars代表l定的截取数目。  
  应用举例Q假定A65单元g保存?#8220;我喜Ƣ天极网”的字W串Q我们在C65单元g输入公式Q?RIGHT(A65,3)Q确认后xC出“天极|?#8221;的字W?br />   特别提醒QNum_chars参数必须大于或等?Q如果忽略,则默认其?Q如果num_chars参数大于文本长度Q则函数q回整个文本?/span>
  28、SUBTOTAL函数
  函数名称QSUBTOTAL
  主要功能Q返回列表或数据库中的分cL怅R?br />   使用格式QSUBTOTAL(function_num, ref1, ref2, ...)
  参数说明QFunction_num??1Q包含隐藏|?01?11Q忽略隐藏|之间的数字,用来指定使用什么函数在列表中进行分cL总计(如图6Q;ref1, ref2,……代表要进行分cLd域或引用Q不过29个?br />   应用举例Q如?所C,在B64和C64单元g分别输入公式Q?SUBTOTAL(3,C2:C63)?SUBTOTAL103,C2:C63)Qƈ且将61行隐藏v来,认后,前者显CZؓ62Q包括隐藏的行)Q后者显CZؓ61Q不包括隐藏的行?/span>


  特别提醒Q如果采取自动筛选,无论function_num参数选用什么类型,SUBTOTAL函数忽略M不包括在{选结果中的行QSUBTOTAL函数适用于数据列或垂直区域,不适用于数据行或水q_域?/span>
  29、函数名UͼSUM
  主要功能Q计所有参数数值的和?br />   使用格式QSUMQNumber1,Number2……Q?br />   参数说明QNumber1、Number2……代表需要计的|可以是具体的数倹{引用的单元|区域Q、逻辑值等。  
  应用举例Q如?所C,在D64单元g输入公式Q?SUM(D2:D63)Q确认后卛_求出语文的d?br />   特别提醒Q如果参Cؓ数组或引用,只有其中的数字将被计。数l或引用中的I白单元根{逻辑倹{文本或错误值将被忽略;如果上q公式修改ؓQ?SUM(LARGE(D2:D63,{1,2,3,4,5}))Q则可以求出?名成l的和?/span>
  30、SUMIF函数
  函数名称QSUMIF
  主要功能Q计符合指定条件的单元格区域内的数值和?br />   使用格式QSUMIFQRange,Criteria,Sum_RangeQ?br />   参数说明QRange代表条g判断的单元格区域QCriteria为指定条件表辑ּQSum_Range代表需要计的数值所在的单元格区域?br />   应用举例Q如?所C,在D64单元g输入公式Q?SUMIF(C2:C63,"?,D2:D63)Q确认后卛_求出“?#8221;生的语文成W和?br />   特别提醒Q如果把上述公式修改为:=SUMIF(C2:C63,"?,D2:D63)Q即可求?#8220;?#8221;生的语文成W和;其中“?#8221;?#8220;?#8221;׃是文本型的,需要放在英文状态下的双引号Q????Q中?/span>
  31、TEXT函数
  函数名称QTEXT
  主要功能Q根据指定的数值格式将相应的数字{换ؓ文本形式?br />   使用格式QTEXT(value,format_text)
  参数说明Qvalue代表需要{换的数值或引用的单元格Qformat_text为指定文字Ş式的数字格式?br />   应用举例Q如果B68单元g保存有数?280.45Q我们在C68单元g输入公式Q?TEXT(B68, "$0.00")Q确认后昄?#8220;$1280.45”?br />   特别提醒Qformat_text参数可以Ҏ“单元格格?#8221;对话?#8220;数字”标签中的cdq行定?/span>
  32、TODAY函数
  函数名称QTODAY
  主要功能Q给出系l日期?br />   使用格式QTODAY()
  参数说明Q该函数不需要参数。  
  应用举例Q输入公式:=TODAY()Q确认后卛_昄出系l日期和旉。如果系l日期和旉发生了改变,只要按一下F9功能键,卛_让其随之改变?br />   特别提醒Q显C出来的日期格式Q可以通过单元格格式进行重新设|(参见附gQ?/span>
  33、VALUE函数
  函数名称QVALUE
  主要功能Q将一个代表数值的文本型字W串转换为数值型?br />   使用格式QVALUE(text)
  参数说明Qtext代表需要{换文本型字符串数倹{  
  应用举例Q如果B74单元g是通过LEFT{函数截取的文本型字W串Q我们在C74单元g输入公式Q?VALUE(B74)Q确认后Q即可将其{换ؓ数值型?br />   特别提醒Q如果文本型数gl过上述转换Q在用函数处理这些数值时Q常常返回错误?/span>
  34、VLOOKUP函数
  函数名称QVLOOKUP
  主要功能Q在数据表的首列查找指定的数|q由此返回数据表当前行中指定列处的数倹{?br />   使用格式QVLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
参数说明QLookup_value代表需要查扄数|Table_array代表需要在其中查找数据的单元格区域QCol_index_num为在table_array区域中待q回的匹配值的列序P当Col_index_num??q回table_arrayW?列中的数|?Ӟq回W?列的?#8230;…Q;Range_lookupZ逻辑|如果为TRUE或省略,则返回近似匹配|也就是说Q如果找不到_匚w|则返回小于lookup_value的最大数|如果为FALSEQ则q回_匚w|如果找不刎ͼ则返回错误?N/A?br />   应用举例Q参见图7Q我们在D65单元g输入公式Q?VLOOKUP(B65,B2:D63,3,FALSE)Q确认后Q只要在B65单元g输入一个学生的姓名Q如?8Q,D65单元g卛_昄学生的语a成W?br />   特别提醒QLookup_value参见必须在Table_array区域的首列中Q如果忽略Range_lookup参数Q则Table_array的首列必进行排序;在此函数的向gQ有关Range_lookup参数的用法是错误的?/span>
  35、WEEKDAY函数
  函数名称QWEEKDAY
  主要功能Q给出指定日期的对应的星期数?br />   使用格式QWEEKDAY(serial_number,return_type)
  参数说明Qserial_number代表指定的日期或引用含有日期的单元格Qreturn_type代表星期的表C方式[当SundayQ星期日Qؓ1、SaturdayQ星期六Qؓ7Ӟ该参Cؓ1Q当MondayQ星期一Qؓ1、SundayQ星期日Qؓ7Ӟ该参Cؓ2Q这U情늬合中国h的习惯)Q当MondayQ星期一Qؓ0、SundayQ星期日Qؓ6Ӟ该参Cؓ3]?br />   应用举例Q输入公式:=WEEKDAY(TODAY(),2)Q确认后即给出系l日期的星期数?br />   特别提醒Q如果是指定的日期,h在英文状态下的双引号中,?WEEKDAY("2003-12-18",2)?/span>

一。单元格颜色效果
全选表|格式Q条件格式,条g选择“公式”Q公式如下,然后?#8220;格式”按钮Q?#8220;图案”Q选择需要颜艌Ӏ?/span>
1.隔行颜色效果Q奇数行颜色Q:
=MOD(ROW(),2)=1
2.隔行颜色效果Q偶数行颜色Q:
=MOD(ROW(),2)=0
3.如果希望讄格式为每3行应用一ơ底U,可以使用公式Q?br /> =MOD(ROW(),3)=1
4.如果希望讄奇偶列不同底U,只要把公式中的ROW()改ؓCOLUMN()卛_Q如Q?br /> =MOD(COLUMN(),2)
5.如果希望讄国际象棋盘式底U?白色Q自定义?:
=MOD(ROW()+COLUMN(),2)
说明Q该条g格式的公式用于判断行号与列号之和除以2的余数是否ؓ0。如果ؓ0Q说明行C列数的奇偶性相同,则填充单元格为指定色Q否则就不填充。在条g格式中,公式l果q回一个数字时Q非0数字即ؓTRUEQ?和错误gؓFALSE。因此,上面的公式也可以写ؓQ?br /> =MOD(ROW()+COLUMN(),2)<>0
6.如果希望讄国际象棋盘式底U?自定义色Q自定义?:
加入样式2Q?br /> =MOD(ROW()+COLUMN(),2)=0
二。用颜色q行{?/span>
excel2007可以按单元格颜色、字体颜色或图标q行排序?/span>
如果是excel2003Q需要添加辅助列Q用定义名称的方法得到对应的颜色P然后对辅助列q行排序Q?/span>
颜色单元格在A列,选中B1,插入->名称->定义Q输入aQ下面输入公?=get.cell(24,$a1)Q?/span>
此法可得到字体色的序列号?B1输入 =a 公式向下复制到相应行?/span>
全表按B列排序即可。若是想获得背景色序列号Q将24Ҏ63卛_?/span>
Q=》说明一下:
1.Excel2003中没有相应的函数Q但可以用Excel4.0的一个叫Get.Cell的宏函数Q但宏函C能直接在Excel2003中直接用Q必d义成名称才能使用
2.Get.Cell(Num,Cell)是这个函数的格式QGet.Cell可以取得一个单元格中的多种信息Q如Ҏ格式{,Num指定的就是要取得那类信息Q?4是让这个函数取出单元的颜色信息Q取出来后是一?Q?6的数字,表示某种颜色的编?
3.如果你在B1列输入你定义的名Uƈ填充了,那么B1中的数字是A1中的颜色代码QB2中的数字将是A2中的颜色代码Q以此类?
4.现在你再按B列排序,实际上就是按A列的颜色排序的了?/span>
附上Get.Cell的各参数代表的意义:
1 参照储存格的l对地址
2 参照储存格的列号
3 参照储存格的栏号
4 cM TYPE 函数
5 参照地址的内?
6 文字昄参照地址的公?
7 参照地址的格式,文字昄
8 文字昄参照地址的格?
9 传回储存格外框左Ҏ式,数字昄
10 传回储存格外框右Ҏ式,数字昄
11 传回储存格外框方上样式,数字昄
12 传回储存格外框方下样式,数字昄
13 传回内部图样Q数字显C?
14 如果储存D讑֮ locked传回 True
15 如果公式处于隐藏状态传?True
16 传回储存格宽?
17 以点为单位传回储存格高度
18 字型名称
19 以点为单位传回字?
20 如果储存格所有或W一个字Wؓ加粗传回 True
21 如果储存格所有或W一个字Wؓ斜体传回 True
22 如果储存格所有或W一个字Wؓ单底U传回True
23 如果储存格所有或W一个字W字型中间加了一条水q线传回 True
24 传回储存格第一个字W色彩数字, 1 ?56。如果设定ؓ自动Q传?0
25 MS Excel不支持大U格?
26 MS Excel不支持阴影格?
27 数字昄手动插入的分늺讑֮
28 大纲的列层次
29 大纲的栏层次
30 如果范围为大U的摘要列则?True
31 如果范围为大U的摘要栏则?True
32 昄z页和工作表名U?
33 如果储存格格式ؓ多行文字则ؓ True
34 传回储存格外框左方色彩,数字昄。如果设定ؓ自动Q传?0
35 传回储存格外框右方色彩,数字昄。如果设定ؓ自动Q传?0
36 传回储存格外框上方色彩,数字昄。如果设定ؓ自动Q传?0
37 传回储存格外框下方色彩,数字昄。如果设定ؓ自动Q传?0
38 传回储存格前景阴p彩,数字昄。如果设定ؓ自动Q传?0
39 传回储存D影阴p彩,数字昄。如果设定ؓ自动Q传?0
40 文字昄储存格样?
41 传回参照地址的原始公?
42 以点为单位传回用中H口左方臛_存格左方水^距离
43 以点为单位传回用中H口上方臛_存格上方垂直距离
44 以点为单位传回用中H口左方臛_存格x水^距离
45 以点为单位传回用中H口上方臛_存格下方垂直距离
46 如果储存格有插入Ҏ传回 True
47 如果储存格有插入声音提示传回 True
48 如果储存格有插入公式传回 True
49 如果储存格是数组公式的范围传?True
50 传回储存格垂直对齐,数字昄
51 传回储存格垂直方向,数字昄
52 传回储存格前~字符
53 文字昄传回储存格显C内?
54 传回储存格数据透视表名U?
55 传回储存格在数据透视表的位置
56 枢纽分析
57 如果储存格所有或W一个字Wؓ上标传回True
58 文字昄传回储存格所有或W一个字W字型样?
59 传回储存格底U样式,数字昄
60 如果储存格所有或W一个字Wؓ下标传回True
61 枢纽分析
62 昄z页和工作表名U?
63 传回储存格的填满色彩
64 传回图样前景色彩
65 枢纽分析
66 昄z页名U?


何方 2010-06-25 17:53 发表评论
]]>
׃个页面传参数到另一个模式窗体,如何接受|http://www.aygfsteel.com/hefang/articles/324481.html何方何方Fri, 25 Jun 2010 09:48:00 GMThttp://www.aygfsteel.com/hefang/articles/324481.htmlhttp://www.aygfsteel.com/hefang/comments/324481.htmlhttp://www.aygfsteel.com/hefang/articles/324481.html#Feedback0http://www.aygfsteel.com/hefang/comments/commentRss/324481.htmlhttp://www.aygfsteel.com/hefang/services/trackbacks/324481.html׃个页面传参数到另一个模式窗体,如何接受|
 

传参: window.showModalDialog("proxyCompany.jsp",{"sDomainName":sDomainName},
'dialogWidth:760px;dialogHeight:900px;');
接受: var sDomainName= window.dialogArguments.sDomainName;
q回Q?span style="color: black">window.returnValue = params;
window.close();


何方 2010-06-25 17:48 发表评论
]]>
js中替换字W串http://www.aygfsteel.com/hefang/articles/324476.html何方何方Fri, 25 Jun 2010 09:29:00 GMThttp://www.aygfsteel.com/hefang/articles/324476.htmlhttp://www.aygfsteel.com/hefang/comments/324476.htmlhttp://www.aygfsteel.com/hefang/articles/324476.html#Feedback0http://www.aygfsteel.com/hefang/comments/commentRss/324476.htmlhttp://www.aygfsteel.com/hefang/services/trackbacks/324476.html//要求把一个字W串里把所有的“a”?#8220;A”替换?#8220;B”Q?nbsp;

function fun()
 {
  var str ="abcAd";
  var str2 ="a";
  str = str.toLowerCase();
  alert(str);
  str=str.replace(new RegExp(str2,"g"),"B");
  alert(str);
 }



何方 2010-06-25 17:29 发表评论
]]>
在JS的(字符Ԍ数组中针Ҏ个元素的内容q行查找和替?/title><link>http://www.aygfsteel.com/hefang/articles/324474.html</link><dc:creator>何方</dc:creator><author>何方</author><pubDate>Fri, 25 Jun 2010 09:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/hefang/articles/324474.html</guid><wfw:comment>http://www.aygfsteel.com/hefang/comments/324474.html</wfw:comment><comments>http://www.aygfsteel.com/hefang/articles/324474.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/hefang/comments/commentRss/324474.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/hefang/services/trackbacks/324474.html</trackback:ping><description><![CDATA[<div style="text-indent: 2em"> <p>JavaScript提供了在字符串中查找子串的函数indexOf()、lastIndexOf()、search()Q还提供了字W串的替换函数replace()Q而这些函数没有在数组对象Array中实现?/p> </div> <div style="text-indent: 2em"> <p>Z让Array也支持以上方法,我们可以对Array对象原型q行修改Q增加了相应函数。让q些函数和String对象的函数同名且语法相近Q以方便我们使用。下面做一些简单介l,读者也可根据需要自己定义其它方法?br /> <font color="#339933">//判断一个字W串是否包含另一个字W串,substrQ子字符ԌstartQ开始位|?br /> </font>Array.prototype.indexOf=function(substr,start){<br /> <wbr></wbr>var ta,rt,d='\0';<br /> <wbr></wbr>if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;}<br /> <wbr></wbr>var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d);<br /> <wbr></wbr>if(t==-1)return -1;rt+=str.slice(0,t).replace(/[^\0]/g,'').length;<br /> <wbr></wbr>return rt;<br /> }<br /> <font color="#009933">//该方法自叛_左查找,q回substr在strObj中最后出现的位置Q如果没有找刎ͼq回-1?br /> </font>Array.prototype.lastIndexOf=function(substr,start){<br /> <wbr></wbr>var ta,rt,d='\0';<br /> <wbr></wbr>if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;}<br /> <wbr></wbr>ta=ta.reverse();var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d);<br /> <wbr></wbr>if(t==-1)return -1;rt+=str.slice(t).replace(/[^\0]/g,'').length-2;<br /> <wbr></wbr>return rt;<br /> }<br /> <font color="#009933">//该方法替换字W串中的reg为rpbyQ比较常用?/font><br /> Array.prototype.replace=function(reg,rpby){<br /> <wbr></wbr>var ta=this.slice(0),d='\0';<br /> <wbr></wbr>var str=ta.join(d);str=str.replace(reg,rpby);<br /> <wbr></wbr>return str.split(d);<br /> }<br /> <font color="#009933">//L字符串中的指定子?/font><br /> Array.prototype.search=function(reg){<br /> <wbr></wbr>var ta=this.slice(0),d='\0',str=d+ta.join(d)+d,regstr=reg.toString();<br /> <wbr></wbr>reg=new RegExp(regstr.replace(/\/((.|\n)+)\/.*/g,'\\0$1\\0'),regstr.slice(regstr.lastIndexOf('/')+1));<br /> <wbr></wbr>t=str.search(reg);if(t==-1)return -1;return str.slice(0,t).replace(/[^\0]/g,'').length;<br /> }</p> <p>以上四种Ҏ均实CҎl中每个元素都进行查找或替换Q这样大家就不用做个循环费旉了?br /> <font style="font-size: 18px" color="#ff0000"><strong>二、Js对字W串的操作?/strong></font></p> <p><font style="font-size: 16px" color="#006633"><strong>1、字W串的创?br /> </strong></font><wbr></wbr><wbr></wbr><wbr></wbr>创徏一个字W串有几U方法。最单的是用引号一l字W包含v来,可以其赋值给一个字W串变量?br /> <wbr></wbr><wbr></wbr><wbr></wbr>var myStr = "Hello, String!";<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>我们在上面脚本创Z字符Ԍ但本质上Q它们ƈ不是真正的字W串对象Q准地_它们是字W串cd的倹{要创徏一个字W串对象Q可使用如下语句Qvar strObj = new String("Hello, String!");<br /> <wbr></wbr><wbr></wbr><wbr></wbr>使用typeofq算W查看会发现Q上面的myStrcd为stringQ而strObjcd为object?br /> <wbr></wbr><wbr></wbr><wbr></wbr>如果想知道字W串的长度,使用其length属性:string.length?br /> <wbr></wbr><wbr></wbr><wbr></wbr>得到字符串的指定位置的字W用方法:string.charAt(index);</p> <p><strong><font style="font-size: 16px"><font color="#006633">2、字W串的拼?/font><br /> </font></strong><wbr></wbr><wbr></wbr><wbr></wbr>非常单,q一?+"两个字W串"相加"Q?br /> <wbr></wbr><wbr></wbr><wbr></wbr>var longString = "One piece " + "plus one more piece.";<br /> <wbr></wbr><wbr></wbr><wbr></wbr>要将多个字符串篏Uؓ一个字W串Q还可以使用"+="操作W:<br /> <wbr></wbr><wbr></wbr><wbr></wbr>var result = "";<br /> <wbr></wbr><wbr></wbr><wbr></wbr>result += "My name is Anders"<br /> <wbr></wbr><wbr></wbr><wbr></wbr>result += " and my age is 25"; <wbr></wbr><wbr></wbr><wbr></wbr><br /> <wbr></wbr><wbr></wbr><wbr></wbr>要在字符串中d换行W,需要用{义字W?\n"Q?br /> <wbr></wbr><wbr></wbr><wbr></wbr>var confirmString = "You did not enter a response to the last " +<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>"question.\n\nSubmit form anyway?";<br /> <wbr></wbr><wbr></wbr><wbr></wbr>var confirmValue = confirm(confirmString);<br /> <wbr></wbr><wbr></wbr><wbr></wbr>但这U方法只能用在像警告、确认对话框之类的情况下Q如果将q段文本作ؓHTML内容呈现Q就无效了,此时?<br>"代替它:<br /> <wbr></wbr><wbr></wbr><wbr></wbr>var htmlString = "First line of string.<br>Second line of string.";<br /> <wbr></wbr><wbr></wbr><wbr></wbr>document.write(htmlString);</p> <p><wbr></wbr><wbr></wbr><wbr></wbr>String对象q提供了Ҏconcat()Q它完成?+"相同的功能:<br /> <wbr></wbr><wbr></wbr><wbr></wbr>string.concat(value1, value2, ...)<br /> <wbr></wbr><wbr></wbr><wbr></wbr>不过concat()Ҏ昄不如"+"来得直观z?/p> <p><font style="font-size: 16px" color="#006633"><strong>3、访问字W串的子?/strong></font><br /> <wbr></wbr><wbr></wbr><wbr></wbr>使用substring()或slice()Ҏ(NN4+, IE4+)Q下面说明它们的具体用法?br /> <wbr></wbr><wbr></wbr><wbr></wbr>substring()的原型ؓQ?<wbr></wbr>string.substring(from, to)<br /> <wbr></wbr><wbr></wbr><wbr></wbr>W一个参数from指定了子字符串在原字W串中的起始位置(Z0的烦?Q第二个参数to是可选的Q它指定了子字符串在原字W串的结束位|?Z0的烦?Q一般情况下Q它应比from大,如果它被省略Q那么子字符串将一直到原字W串的结֤?br /> <wbr></wbr><wbr></wbr><wbr></wbr>如果参数from不小心比参数to大了会怎样QJavaScript会自动调解子字符串的h位置Q也是_substring()L从两个参C较小的那个开始,到较大的那个l束。不q要注意Q它包含起始位置的那个字W,但不包含l束位置的那个字W?br /> <wbr></wbr><wbr></wbr><wbr></wbr>var fullString = "Every dog has his day.";<br /> <wbr></wbr><wbr></wbr><wbr></wbr>var section = fullString.substring(0, 4); // section is "Ever".</p> <p>slice()的原型ؓQ?<wbr></wbr>string.slice(start, end)<br /> <wbr></wbr><wbr></wbr><wbr></wbr>参数start表示子串的v始位|,如果敎ͼ那么可以理解为倒数W几个开始,例如-3表示从倒数W三个开始;参数end表示l束位置Q与start一P它也可以敎ͼ其含义也表示到倒数W几个结束。slice()的参数可以ؓ负数Q所以要比substring()更加灉|Q但没那么宽容了Q如果start比end要大Q它返回一个空字符?CZ??br /> <wbr></wbr><wbr></wbr><wbr></wbr>q有一个方法是substr()Q其原型为: string.substr(start, length)<br /> <wbr></wbr><wbr></wbr><wbr></wbr>从原型可以看出它的参数的含义Qstart表示起始位置Qlength则表C子字符串的长度。JavaScript标准不提倡用该Ҏ?br /> <font style="font-size: 16px"><strong><font color="#006633">4、字W串的大写转换</font><br /> </strong></font><wbr></wbr><wbr></wbr><wbr></wbr>使用toLowerCase()和toUpperCase()ҎQ?br /> <wbr></wbr><wbr></wbr><wbr></wbr>var city = "ShanGHai";<br /> <wbr></wbr><wbr></wbr><wbr></wbr>city = city.toLowerCase(); <wbr></wbr>// city is "shanghai" now.<br /> <font style="font-size: 16px" color="#006633"><strong>5、判断两个字W串是否相等</strong></font><br /> <wbr></wbr><wbr></wbr><wbr></wbr>先将用户的输入值全部{换ؓ大写Q或写Q,然后再行比较Q?br /> <wbr></wbr><wbr></wbr><wbr></wbr>var name = document.form1.txtUserName.value.toLowerCase();<br /> <wbr></wbr><wbr></wbr><wbr></wbr>if(name == "urname")<br /> <wbr></wbr><wbr></wbr><wbr></wbr>{<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>// statements go here.<br /> <wbr></wbr><wbr></wbr><wbr></wbr>}<br /> <wbr></wbr><wbr></wbr><wbr></wbr>JavaScript有两U相{运符。一U是完全向后兼容的,标准?=="Q如果两个操作数cd不一_它会在某些时候自动对操作数进行类型{换,考虑下面的赋D句:<br /> <wbr></wbr><wbr></wbr><wbr></wbr>var strA = "i love you!";<br /> <wbr></wbr><wbr></wbr><wbr></wbr>var strB = new String("i love you!");<br /> <wbr></wbr><wbr></wbr><wbr></wbr>q两个变量含有相同的字符序列Q但数据cd却不同,前者ؓstringQ后者ؓobjectQ在使用"=="操作W时QJavaScript会尝试各U求|以检两者是否会在某U情况下相等。所以下面的表达式结果ؓtrueQ?strA == strB?br /> <wbr></wbr><wbr></wbr><wbr></wbr>W二U操作符?严格"?==="Q它在求值时不会q么宽容Q不会进行类型{换。所以表辑ּstrA === strB的gؓfalseQ虽然两个变量持有的值相同?br /> <wbr></wbr><wbr></wbr><wbr></wbr>有时代码的逻辑要求你判断两个值是否不相等Q这里也有两个选择Q?!="和严格的"!=="Q它们的关系qg"=="?==="?br /> 讨论Q?br /> <wbr></wbr><wbr></wbr><wbr></wbr>"=="?!="在求值时会尽可能地寻扑ր的匚w性,但你可能q是惛_比较前进行显式的cd转换Q以"帮助"它们完成工作。比如,如果惛_断一个用L输入|字符Ԍ是否{于一个数字,你可以让"=="帮你完成cd转换Q?br /> <wbr></wbr><wbr></wbr><wbr></wbr>if(document.form1.txtAge.value == someNumericVar) { ... }<br /> <wbr></wbr><wbr></wbr><wbr></wbr>也可以提前{换:<br /> <wbr></wbr><wbr></wbr><wbr></wbr>if(parseInt(document.form1.txtAge.value) == someNumericVar) { ... }<br /> <wbr></wbr><wbr></wbr><wbr></wbr>如果你比较习惯于强类型的~程语言(比如C#,Java{?Q那么这里你可以延箋你的习惯(cd转换)Q这样也会增强程序的可读性?/p> <p><wbr></wbr><wbr></wbr><wbr></wbr>有一U情况需要注意,是计算机的区域讄。如果用"<"?>"来比较字W串Q那么JavaScript把它们作为Unicode来比较,但显ӞZ在浏览网|不会把文本当作Unicode来阅?) 比如在西班牙语中Q按照传l的排序Q?ch"作Z个字W排?c"?d"之间。localeCompare()提供了一U方式,可以帮助你用默认区域设|下的字W排序规则?br /> <wbr></wbr><wbr></wbr><wbr></wbr>var strings; <wbr></wbr>// 要排序的字符串数l,假设已经得到初始?br /> <wbr></wbr><wbr></wbr><wbr></wbr>strings.sort(function(a,b) { return a.localeCompare(b) }); <wbr></wbr>// 调用sort()Ҏq行排序</p> <p><font style="font-size: 16px" color="#006633"><strong>6、字W串的查?/strong></font><br /> <wbr></wbr><wbr></wbr><wbr></wbr>使用string的indexOf()ҎQ?br /> <wbr></wbr><wbr></wbr><wbr></wbr>strObj.indexOf(subString[, startIndex])<br /> <wbr></wbr><wbr></wbr><wbr></wbr>strObjq行判断的字W串QsubString在strObj查找的子字符ԌstartIndex是可选的Q表C查扄开始位|?Z0的烦?Q如果startIndex省略Q则从strObj开始处查找Q如果startIndex于0Q则?开始,如果startIndex大于最大烦引,则从最大烦引处开始?br /> <wbr></wbr><wbr></wbr><wbr></wbr>indexOf()q回strObj中subString的开始位|,如果没有扑ֈQ则q回-1。在脚本中,可以q么使用Q?br /> <wbr></wbr><wbr></wbr><wbr></wbr>if(largeString.indexOf(shortString) != -1)<br /> <wbr></wbr><wbr></wbr><wbr></wbr>{<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>// 如果包含Q进行相应处理;<br /> <wbr></wbr><wbr></wbr><wbr></wbr>}<br /> <wbr></wbr><wbr></wbr><wbr></wbr>也许一个字W串会包含另一字符串不止一ơ,q时W二个参数startIndex也许会派上用场,下面q个函数演示如何求得一个字W串包含另外一个字W串的次敎ͼ<br /> <wbr></wbr><wbr></wbr><wbr></wbr>function countInstances(mainStr, subStr)<br /> <wbr></wbr><wbr></wbr><wbr></wbr>{<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>var count = 0;<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>var offset = 0;<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>do<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>{<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>offset = mainStr.indexOf(subStr, offset);<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>if(offset != -1)<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>{<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>count++;<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>offset += subStr.length;<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>}<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>}while(offset != -1)<br /> <wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>return count;<br /> <wbr></wbr><wbr></wbr><wbr></wbr>}<br /> <wbr></wbr><wbr></wbr><wbr></wbr>String对象有一个与indexOf()对应的方法,lastIndexOf()Q?br /> <wbr></wbr><wbr></wbr><wbr></wbr>strObj.lastIndexOf(substring[, startindex])<br /> <wbr></wbr><wbr></wbr><wbr></wbr>strObjq行判断的字W串QsubString在strObj查找的子字符ԌstartIndex是可选的Q表C查扄开始位|?Z0的烦?Q如果startIndex省略Q则从strObj末尾处查找,如果startIndex于0Q则?开始,如果startIndex大于最大烦引,则从最大烦引处开始。该Ҏ自右向左查找Q返回subString在strObj中最后出现的位置Q如果没有找刎ͼq回-1?/p> <p><font color="#006633"><font style="font-size: 16px"><strong>7、在Unicode值和字符串中的字W间转换</strong></font><br /> </font>问题Q?br /> <wbr></wbr><wbr></wbr><wbr></wbr>获得一个字W的Unicode~码|反之亦然?br /> 解决ҎQ?br /> <wbr></wbr><wbr></wbr><wbr></wbr>要获得字W的Unicode~码Q可以用string.charCodeAt(index)ҎQ其定义为:<br /> <wbr></wbr><wbr></wbr><wbr></wbr>strObj.charCodeAt(index)<br /> <wbr></wbr><wbr></wbr><wbr></wbr>index为指定字W在strObj对象中的位置Q基?的烦引)Q返回gؓ0?5535之间?6位整数。例如:<br /> <wbr></wbr><wbr></wbr><wbr></wbr>var strObj = "ABCDEFG";<br /> <wbr></wbr><wbr></wbr><wbr></wbr>var code = strObj.charCodeAt(2); // Unicode value of character 'C' is 67<br /> <wbr></wbr><wbr></wbr><wbr></wbr>如果index指定的烦引处没有字符Q则q回gؓNaN?/p> <p><wbr></wbr><wbr></wbr><wbr></wbr>要将Unicode~码转换Z个字W,使用String.fromCharCode()ҎQ注意它是String对象的一?静态方?Q也是说在使用前不需要创建字W串实例Q?br /> <wbr></wbr><wbr></wbr><wbr></wbr>String.fromCharCode(c1, c2, ...)<br /> <wbr></wbr><wbr></wbr><wbr></wbr>它接?个或多个整数Q返回一个字W串Q该字符串包含了各参数指定的字符Q例如:<br /> <wbr></wbr><wbr></wbr><wbr></wbr>var str = String.fromCharCode(72, 101, 108, 108, 111); <wbr></wbr>// str == "Hello"<br /> <font style="font-size: 18px" color="#ff0000"><strong>三、JsҎl的操作</strong></font></p> <p style="text-indent: 2em"><font style="font-size: 16px" color="#006633"><strong>1、数l的创徏</strong></font></p> <p style="text-indent: 2em">var arrayObj = new Array(); //创徏一个数l?/p> <p style="text-indent: 2em">var arrayObj = new Array([size]); //创徏一个数lƈ指定长度Q注意不是上限,是长?/p> <p style="text-indent: 2em">var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创徏一个数lƈ赋?/p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr><wbr></wbr>要说明的是,虽然W二U方法创建数l指定了长度Q但实际上所有情况下数组都是变长的,也就是说即指定了长度ؓ5Q仍然可以将元素存储在规定长度以外的Q注意:q时长度会随之改变?/p> <p style="text-indent: 2em"><strong><font style="font-size: 16px" color="#006633">2、数l的元素的访?/font></strong></p> <p style="text-indent: 2em">var testGetArrValue=arrayObj[1]; //获取数组的元素?/p> <p style="text-indent: 2em">arrayObj[1]= "q是新?; //l数l元素赋予新的?/p> <p style="text-indent: 2em"><strong><font style="font-size: 16px" color="#006633">3、数l元素的d</font></strong></p> <p style="text-indent: 2em">arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 一个或多个新元素添加到数组l尾Qƈq回数组新长?/p> <p style="text-indent: 2em">arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 一个或多个新元素添加到数组开始,数组中的元素自动后移Q返回数l新长度</p> <p style="text-indent: 2em">arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//一个或多个新元素插入到数组的指定位|,插入位置的元素自动后U,q回""?/p> <p style="text-indent: 2em"><strong><font style="font-size: 16px" color="#006633">4、数l元素的删除</font></strong></p> <p style="text-indent: 2em">arrayObj.pop(); //U除最后一个元素ƈq回该元素?/p> <p style="text-indent: 2em">arrayObj.shift(); //U除最前一个元素ƈq回该元素|数组中元素自动前U?/p> <p style="text-indent: 2em">arrayObj.splice(deletePos,deleteCount); //删除从指定位|deletePos开始的指定数量deleteCount的元素,数组形式q回所U除的元?/p> <p style="text-indent: 2em"><strong><font style="font-size: 16px" color="#006633">5、数l的截取和合q?/font></strong></p> <p style="text-indent: 2em">arrayObj.slice(start, [end]); //以数l的形式q回数组的一部分Q注意不包括 end 对应的元素,如果省略 end 复?start 之后的所有元?/p> <p style="text-indent: 2em">arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //多个数l(也可以是字符Ԍ或者是数组和字W串的؜合)q接Z个数l,q回q接好的新的数组</p> <p style="text-indent: 2em"><strong><font style="font-size: 16px" color="#006633">6、数l的拯</font></strong></p> <p style="text-indent: 2em">arrayObj.slice(0); //q回数组的拷贝数l,注意是一个新的数l,不是指向</p> <p style="text-indent: 2em">arrayObj.concat(); //q回数组的拷贝数l,注意是一个新的数l,不是指向</p> <p style="text-indent: 2em"><strong><font style="font-size: 16px" color="#006633">7、数l元素的排序</font></strong></p> <p style="text-indent: 2em">arrayObj.reverse(); //反{元素Q最前的排到最后、最后的排到最前)Q返回数l地址</p> <p style="text-indent: 2em">arrayObj.sort(); //Ҏl元素排序,q回数组地址</p> <p style="text-indent: 2em"><strong><font style="font-size: 16px" color="#006633">8、数l元素的字符串化</font></strong></p> <p style="text-indent: 2em">arrayObj.join(separator); //q回字符Ԍq个字符串将数组的每一个元素D接在一P中间?separator 隔开?/p> <p style="text-indent: 2em">toLocaleString 、toString 、valueOfQ可以看作是join的特D用法,不常?/p> <p style="text-indent: 2em"><wbr></wbr></p> <p style="text-indent: 2em"><wbr></wbr></p> <strong><font style="font-size: 16px" color="#006633">9、length 属?/font></strong> <p><wbr></wbr></p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr><wbr></wbr>Length属性表C数l的长度Q即其中元素的个数。因为数l的索引L?开始,所以一个数l的上下限分别是Q?和length-1。和其他大多数语a不同的是QJavaScript数组的length属性是可变的,q一炚w要特别注意。当length属性被讄得更大时Q整个数l的状态事实上不会发生变化Q仅仅是length属性变大;当length属性被讄得比原来时Q则原先数组中烦引大于或{于length的元素的值全部被丢失。下面是演示改变length属性的例子Q?/p> <p style="text-indent: 2em">var arr=[12,23,5,3,25,98,76,54,56,76];</p> <p style="text-indent: 2em">//定义了一个包?0个数字的数组</p> <p style="text-indent: 2em">alert(arr.length); //昄数组的长?0</p> <p style="text-indent: 2em">arr.length=12; //增大数组的长?/p> <p style="text-indent: 2em">alert(arr.length); //昄数组的长度已l变?2</p> <p style="text-indent: 2em"><wbr></wbr></p> <p style="text-indent: 2em">alert(arr[8]); //昄W?个元素的|?6</p> <p style="text-indent: 2em">arr.length=5; //数l的长度减少?Q烦引等于或过5的元素被丢弃</p> <p style="text-indent: 2em">alert(arr[8]); //昄W?个元素已l变?undefined"</p> <p style="text-indent: 2em">arr.length=10; //数l长度恢复ؓ10</p> <p style="text-indent: 2em">alert(arr[8]); //虽然长度被恢复ؓ10Q但W?个元素却无法收回Q显C?undefined"</p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr><wbr></wbr>׃面的代码我们可以清楚的看到length属性的性质。但length对象不仅可以昑ּ的设|,它也有可能被隐式修改。JavaScript中可以用一个未声明q的变量Q同P也可以用一个未定义的数l元素(指烦引超q或{于length的元素)Q这Ӟlength属性的值将被设|ؓ所使用元素索引的值加1。例如下面的代码Q?/p> <p style="text-indent: 2em">var arr=[12,23,5,3,25,98,76,54,56,76];</p> <p style="text-indent: 2em">alert(arr.length);</p> <p style="text-indent: 2em">arr[15]=34;</p> <p style="text-indent: 2em">alert(arr.length);</p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr><wbr></wbr>代码中同h先定义了一个包?0个数字的数组Q通过alert语句可以看出光度ؓ10。随后用了索引?5的元素,其赋gؓ15Q即arr[15]=34Q这时再用alert语句输出数组的长度,得到的是16。无论如何,对于习惯于强cd~程的开发h员来_q是一个很令h惊讶的特性。事实上Q用new Array()形式创徏的数l,其初始长度就是ؓ0Q正是对其中未定义元素的操作Q才使数l的长度发生变化?/p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr><wbr></wbr>׃面的介绍可以看到Qlength属性是如此的神奇,利用它可以方便的增加或者减数l的定w。因此对length属性的深入了解Q有助于在开发过E中灉|q用?/p> <p style="text-indent: 2em"><strong><font style="font-size: 16px" color="#006633">10、prototype 属?/font></strong></p> <p style="text-indent: 2em">q回对象cd原型的引用。prototype 属性是 object 共有的?/p> <p style="text-indent: 2em">objectName.prototype</p> <p style="text-indent: 2em">objectName 参数是object对象的名U?/p> <p style="text-indent: 2em">说明Q用 prototype 属性提供对象的cȝ一l基本功能。对象的新实?#8220;l承”赋予该对象原型的操作?/p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr><wbr></wbr>对于数组对象Q以以下例子说明prototype 属性的用途?/p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr><wbr></wbr>l数l对象添加返回数l中最大元素值的Ҏ。要完成q一点,声明一个函敎ͼ它加入 Array.prototypeQ?q用它?/p> <p style="text-indent: 2em">function array_max( )</p> <p style="text-indent: 2em">{</p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr>var i, max = this[0];</p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr>for (i = 1; i < this.length; i++)</p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr>{</p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr>if (max < this[i])</p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr>max = this[i];</p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr>}</p> <p style="text-indent: 2em"><wbr></wbr><wbr></wbr>return max;</p> <p style="text-indent: 2em">}</p> <p style="text-indent: 2em">Array.prototype.max = array_max;</p> <p style="text-indent: 2em">var x = new Array(1, 2, 3, 4, 5, 6);</p> <p style="text-indent: 2em">var y = x.max( );</p> <p style="text-indent: 2em">该代码执行后Qy 保存数组 x 中的最大|或说 6</p> </div> <img src ="http://www.aygfsteel.com/hefang/aggbug/324474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/hefang/" target="_blank">何方</a> 2010-06-25 17:26 <a href="http://www.aygfsteel.com/hefang/articles/324474.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">Ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԫ</a>| <a href="http://" target="_blank">⿪</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">׷</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">׸</a>| <a href="http://" target="_blank">Ĭ</a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˶</a>| <a href="http://" target="_blank">ͨ</a>| <a href="http://" target="_blank">ӳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˶</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>