事件源对象
event.srcElement.tagName
event.srcElement.type 捕获释放
event.srcElement.setCapture();
event.srcElement.releaseCapture(); 事件按键
event.keyCode
event.shiftKey
event.altKey
event.ctrlKey 事件返回值
event.returnValue 鼠标位置
event.x
event.y 窗体活动元素
document.activeElement 绑定事件
document.captureEvents(Event.KEYDOWN); 访问窗体元素
document.all("txt").focus();
document.all("txt").select(); 窗体命令
document.execCommand 窗体COOKIE
document.cookie 菜单事件
document.oncontextmenu 创建元素
document.createElement("SPAN"); 根据鼠标获得元素:
document.elementfromPoint(event.x,event.y).tagName=="TD
document.elementfromPoint(event.x,event.y).appendChild(ms) 窗体图片
document.images[索引] 窗体事件绑定
document.onmousedown=scrollwindow; 元素
document.窗体.elements[索引] 对象绑定事件
下拉框.options[索引]
下拉框.options.length 查找对象
document.getElementsByName("r1");
document.getElem ......
第一题
(function(){
return typeof arguments;
})();
//问自动执行函数会返回什么值
// 就是考Arguments对象的typeof
// 看平时用firebug多不多了……
第二题
var f = function g(){ return 23; };
typeof g();
//问最后一行的执行结果
//根据标准,命名函数表达式的函数名只对函数体内可见
//因此报错
第三题
(function(x){
delete x;
return x;
})(1);
//问自动执行函数会返回什么值
// 参数不可删除
//1
第四题
var y = 1, x = y = typeof x;
x;
//问最后一行的执行结果
//声明两个变量x与y,y最初赋为1,x没有赋值,默认赋给window的一个属性undefined,
//因此typeof undefined为"undefined",最后x= y= "undefined"
第五题
(function f(f){
return typeof f();
})(function(){ return 1; });
//问自动执行函数会返回什么值
//函数名被优先级更高的参数名覆盖了 --->
// (function (f){
// return typeof f();
// })(function(){ return 1; });
//typeof 1 ---> "number"
第六题
var foo = {
bar: function() { return ......
JavaScript 可算是世界上最流行的编程语言,它曾被 Web 开发设计师贴上噩梦的标签,虽然真正的噩梦其实是 DOM
API,这个被大量的开发与设计师随手拈来增强他们的 Web 前端的脚本语言,如今越来越被重视,虽则如此,JavaScript
仍然拥有很多让人费解的东西。
1. 它以 Java 命名,但并不是 Java
它最初叫 Mocha, 接着改名为 LiveScript,最后才确定命名为 JavaScript,根据历史记录,Java 的命名与
Netscape 和 Sun 之间的合作有关,作为交换条件,Netscape 在他们备受欢迎的浏览器中创建了 Java
运行时。值得一提的是,这个名字的出台几近一个玩笑,要知道,LiveScript 和 Java 在客户端脚本方面存在敌对关系。
不管怎么说,人们后来不得不一再澄清的一件事就是,JavaScript 和 Java 毫无关系。
2. Null 是个对象?
看看这段代码,它返回的是 object。
这实在令人费解,假如 null 表示空值,它怎么可以是对象?简单说,它是 JavaScript 最初版本的错误,这个错误甚至被微软的
JScript 直接借用。
3. NaN !== NaN
NaN,表示一个非数字的值,然而问题是,NaN不等于任何东西,甚至不等于它自己。
这显然不对,事实上,如果要判断一个值确实是 NaN,你需要用 ......
突然间想去下首fire in the hole的铃声,于是用soso找了一下,进入了手机乐园 (http://download.shouji.com.cn/do/wave?html=&inputname=wave&wname=Fire+in+the+hole+&thsubmit=%E6%90%9C%E7%B4%A2),选择fire in the hole,弹出个窗口,提示让输入手机号码。晕死,不就下首歌嘛,还不让直接下。呵呵,发现网页中正在播放我要铃声,作为职业习惯,看能不能从源文件中找到地址。嗯,这个网页地址还是隐藏的比较好,没有直接写,用的javascript,
<script>document.writeln("<bgsound src="+fileurl+" loop=infinite id=BgSound1>");</script>
这个fileurl明显就是地址,看看前面有没有赋值,
<script language="javascript">var esdfesa="aHR0cDovL2ZpbGUuc2hvdWppLmNvbS5jbi9kby9wcmVwYXJlL3dhdmU/aWQ9MTQyOTQ0JnN0YXQ9MCZyPTEyNjUwMTQyNDAzMTg=";var sfssf="1";var gesdeade=saass(esdfesa);fileurl=selectsite(gesdeade);</script>
看起来是加了密的。。。。。
突然想起,IE有个功能,可以在地址栏中直接输入可以执行的javascript,于是,在地址栏中输入 javascript:document.writeln(fileurl); 回车,哈哈,地址立即打 ......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<mce:style type="text/css"><!--
div,ul {margin:0; padding:0;}
li {float:left; list-style:none}
img {border:0;}
#img_change {position:relative; width:450px; height:296px; background-color:#FC3; overflow:hidden; z-index:1;}
#img_list {position:absolute; top:0px; left:0px; width:1800px; height:296px;}
#img_backdiv {position:absolute;width:450px; height:70px; background-color:#000; bottom:0; z-index:1; filter:alpha(opacity=50);
-moz-opacity:0.5; opacity: 0.5;}
#img_btn {position:absolute;width:450px; height:70px; bottom:0; z-index:3;}
#img_btn li {margin-top:10px; margin-left:30px; border:#666 solid 2px; hei ......
在对程序进行性能测试时需要考虑到不同规模以及不同算法的效率的不同
下面的网页是一个对排序算法的性能测试,规模就是数组的长度,而测试的两个函数分别是手动实现的快速排序算法和javascript内置的排序函数。
<!DOCTYPE window PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<title>Performance</title>
<mce:script type="text/javascript"><!--
var $ = function(id) {
return document.getElementById(id);
};
$.extend = function(target, object) {
for (var i in object) {
target[i] = object[i];
}
return target;
};
// --></mce:script>
<mce:script type="text/javascript" src="performance.js" mce_src="performance.js"></mce:script>
<mce:script type="text/javascript"><!--
var a;
function qsort(l, u) {
if (l >= u) {
return undefined;
}
var i = l, j = u - 1, v = a[u], t;
while (1) {
while (a[i] < ......