易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript 的lastIndexOf

近日收集上万行代码,整理一些出来。
//V8引擎的实现
function ToInteger( n ) {
n = Number( n );
var sign = ( n < 0 ) ? -1 : 1;
if ( n != n ) {
return 0;
}
if ( Math.abs( n ) == 0 || Math.abs( n ) == Number.POSITIVE_INFINITY ) {
return n;
}
return ( sign * Math.floor(Math.abs(n)) );
};
function lastIndexOf= (array,element, index) {
var length = array.length;
if (index == null) {
index = length - 1;
} else {
index = ToInteger(index);
// If index is negative, index from end of the array.
if (index < 0) index = length + index;
// If index is still negative, do not search the array.
if (index < 0) index = -1;
else if (index >= length) index = length - 1;
}
// Lookup through the array.
for (var i = index; i >= 0; i--) {
var current = array[i];
if ((current !== undefined) || i in this) {
if (current === element) return i;
}
}
return -1;
}
一个重大的误区是以为原生API都用C语言实现,其实不然,比如火狐与chrome等以速度著称的浏览器,基本的部分用C语言实现后,其他请高手搞定。毕竟用其他语言来模拟javascript很容易犯错,比如IE6。忘了,那东西是叫JScript。
//Base2的实现
function lastIndexOf(array, item, fromIndex) {
var length = array.length;
if (fromIndex == null) {
fromIndex = length - 1;
} else if (fromIndex < 0) {
fromIndex = Math.max(0, length + fromIndex);
}
for (var i = fromIndex; i >= 0; i--) {
if (array[i] === item) return i;
}
return -1;
}
//Prototype1.61的实现
function lastIndexOf(array,item, i) {
i = isNaN(i) ? array.length : (i < 0 ? array.length + i : i) + 1;
var n = array.slice(0, i).reverse().indexOf(item);
return (n < 0) ? n : i - n - 1;


相关文档:

javascript中最常用的56个技巧

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="re ......

使用javascript获取文本框,下拉框,单选框的值并且赋值

1.文本框
1.1 <input type="text" name="test" id="test">
通过var t=document.getElementById("test").value把值赋给变量t,
1.2  当然也可以反过来把已知的变量值赋给文本框,例如:
var m = "5";
document.getElementById("test").value= m;
2.下拉列表框
2.1 <select name="sel" id="sel" onchange ......

call javascript in firefox


方法一、
NPN_GetURL(m_Instance, "javascript:test()",  NULL);
方法二、
 NPVariant rval;
 NPN_InvokeDefault(m_Npp,  objectDisconnect ,NULL, 0,&rval);
 NPN_ReleaseVariantValue(&rval);
以下是javascript
 <script type="text/javascript"> 
 &nb ......

javascript表格排序

<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Power Table</title>
<style>
body{
FONT-SIZE: 9pt; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px;
}
input {
FONT-SIZE: 9pt; height: 15pt; width:50px; ......

写在《JavaScript征途》读后感创作之前的话

 在写读后感之前,先自我介绍一下,本人,男,24岁,未婚,资浅.NET程序员,在读此书之前已经能够熟练的利用JavaScript进行表单的一般验证(通过document.getElementById获取出文本框的值后再进行if...else...判断)。
    刚刚拿到此书,心情好一番激动,沃~~~新华字典,长约26CM,宽约18CM,高约3.5 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号