JS-题目相关

1、考察闭包的用法

var a = 0
function fn(b){
    return function fb(c){
        console.log(a++,b++,c++)
    }
}

var f1 = fn(0)
var f2 = fn(0)

fn(0) b=0 带入后返回 funciton fb(c){…….} 即f1的值此时, 运行f1() 则,a++ 都是先用再加1. f1() 没有传参数,为undefined,undefined++ 得到NaN。所以,打印出来:0 0 NaN

f1()

f2 运行c=undefined a是全局变量 在上一轮打印后为1,由fn(0)得到也为0,结果:1 0 NaN

f2() 

var f1 = f2 = fn(fn(0))

fn(0) 返回 function fb(c){…..} 所以,fu( fn(0) ) 参数为function fb(c){…..} 即 b 的值。所以,由上一轮此时打印a 为2(a的值为3),最终结果为:2 NaN NaN

f1()  // 2 NaN NaN
f2()  // 3 NaN NaN

2 代码的预加载

var a = 10
fn()
function fn(){
    var a
    alert(a) //undefined
    a=20
}
alert(a) //10

3 event对象的方法属性
event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
event对象只在事件发生的过程中才有效。
event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。


属性:

altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX, screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y


var target = evt.target || evt.srcElement; 
//获取触发事件的原始事件源标准的DOM方法是用target ,IE用event.srcElement
event.preventDefault() //阻止默认事件
posted @ 2015-05-19 14:51  D_QQ  阅读(133)  评论(0编辑  收藏  举报