kangax 的javascript谜题
第一题
(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 this.baz; },
baz: 1
};
(function(){
return typeof arguments[0]();
})(foo.bar);
//问自动执行函数会返回什么值
//我们把下面那个自动执行函数分解一下
//var a = function(){
// return typeof arguments[0]();
//};
//a(foo.bar)
//执行完arguments[0](),即得到this.baz
//由于this变量在此绑定失效,它指向window,window有bax变量吗?
//没有,返回"undefined"
第七题
var foo = {
bar: function(){ return this.baz; },
baz: 1
}
typeof (f = foo.bar)();
//问最后一行的执行结果
//我们把最后一行分解一下
//window.f
//f= foo.bar
// f()
// typeof f()
//返回"undefined"
第八题
var f = (function f(){ return "1"; }, function g(){ return 2; })();
typeof f;
//问最后一行的执行结果
//首先要理解分组选择符,最后a会赋给什么呢?
// var a = (1,2,3);
// alert(a) ---> 3
//那么这就简单了,f = function(){return 2};
//typeof f() ---> number
第九题
相关文档:
JavaScript脚本语言的基本构成是由控制语句、函数、对象、方法、属性等,来实现编程的。
一、
程序控制流
在任何一种语言中,程序控制流是必须的,它能使得整个程序减小混乱,使之顺利按其一定的方式执行。下面是
JavaScript常用的程序控制流结构及语句:
1、if条件语句
基本
格式
if(表述式)
语句段1;
......
一、什么是框架
框架Frames最主要功用是"分割"视窗,使每个"小视窗"能
显示不同的HTM
L文件,不同框架之间可以互动(interact),这就是说不同框架之间可以交换讯息与资料。例如:假设您开了两个frames,第一个frame可显
示书的目录,第二个frame则显示章节的具体内容。
框架可以将屏幕分割 ......
1 >屏蔽功能类
1.1 屏蔽键盘所有键
<script. language="javascript">
<!--
function document.onkeydown(){
event.keyCode = 0;
event.returnvalue = false;
}
-->
</script>
1.2 屏蔽鼠标右键
在body标签里加上oncontextmenu=self.event.returnvalue=false
或者
<scri ......
事件源对象
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 窗体 ......