一、JavaScript 中函数的调用的几种方式 - 函数上下文(this)的指向
作为对象方法调用;this -> 对象
作为函数调用;this -> 全局对象(window)
作为构造函数调用;this -> new出来的对象
和使用 apply 或 call 调用。this -> 传入的 context
二、原型,原型链
原型:构造函数包含的proto对象。构造函数都有一个指针指向原型。
原型链:访问一个对象的属性时,
对象查找先在该构造函数内查找对应的属性,如果该对象没有该属性的话,
那么javascript会试着从该原型上去查找,如果原型对象中也没有该属性的话,
那么它们会从原型中的原型去查找,直到查找的Object.prototype也没有该属性的话,那么就会返回undefined;
将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。
三、闭包
内部函数,可以访问外部函数的变量。
四、获取事件源
element.onclick = function(ev){
var e = ev || window.event;//获取事件
var ele = e.target || e.srcElement;//获取触发事件的元素
if(this === ele)//如果这个元素就是触发事件的元素
alert(ele.innerHTML);//弹出他的内容
}
五、定时器
window.setTimeout([function],[interval]) 设置一个定时器,并且设定了一个等待的时间[interval],当到达时间后,
执行对应的方法[function],当方法执行完成定时器停止(但是定时器还在,只不过没用了);
window.setInterval([function],[interval]) 设置一个定时器,并且设定了一个等待的时间[interval],当到达时间后,
执行对应的方法[function],当方法执行完成,定时器并没有停止,以后每隔[interval]这么长的时间都会重新的执行对应的方法[function],
直到我们手动清除定时器为止; 详细
六、js操作对象中点操作和中括号操作的区别
中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。
中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。
中括号运算符可以用纯数字为属性名。点运算符不能。
中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。
可以看出来,用点操作的时候,字符串变量的时候,返回undefined;纯数字的会报错;关键字和保留字js会自动忽略。而这些[]都可以。
七、javascript replace 替换全部
举例说明: var str = "atetateg".replace("a",""); 则只会替换第一个a var str = "atetateg".replace(/a/g,""); 会替换所有 /g 代表匹配全文
参考资料: