表达式
因从上向下调用,此方法被赋值,所有只能在函数下面调用
var fun=function (name) {
console.log("--------")
}
fun()
此方式未被赋值所有可以随意调用
function name(params) {
console.log("--------")
}
fun()
-
function,一般简写为 fun 或 fn
-
关键字是不可以作为函数名被命名的
点击事件
-
给对象的属性赋值:但如输入多次,会覆盖前一个
如下,例:输出:=======,被覆盖----------
var btn; btn.onclick=function(){ console.log("--------") } btn.onclick=function(){ console.log("=======") }
-
通过addEvenListener方法添加,不会被覆盖
如下,例:输出:--------,=======
-
解决方案
addEvent(oBtn, "click", function () { console.log(666); }); addEvent(oBtn, "click", function () { console.log(777); }); function addEvent(ele, name, fn) {//元素 事件 回调函数 console.log(ele.attachEvent); if(ele.attachEvent){//如果元素有attachEvent属性,就执行下面的代码 ele.attachEvent("on" + name, fn); }else {//高级浏览器执行的方法 ele.addEventListener(name, fn); } }
-
支持浏览器IE9及以上
var btn=document.getElementById("btn") btn.addEventListener("click",function(){ console.log("-------") }) btn.addEventListener("click",function(){ console.log("======") })
-
打印,函数内部的函数顺序,外面的同名的自定义函数
var msg="bbbbbb" function fun1(){ var msg="ccccccc" var mag1="dddddd" console.log("-------",msg,msg1)//打印msg console.log("=======",msg,mag1,window.msg)//打印函数外面自定义函数名的同名函数 }
递归函数
-
应用
var sum=0
var i=0
function fn() {
if(i==101){
return sum //返回sum
}
sum+=i
i++
return fn() //返回fn(跳出)
}
fn()
console.log(sum)
回调函数(监听者模式)
function fn1() {
console.log("-------")
}
function fn2() {
fn1()
console.log("=======")
}
fn2()
console.log("00000000")
-
success ,fail ,comlete 函数的用法
success:接口调用成功的回调函数
fail:接口调用失败的回调函数
comlete:接口调用结束的回调函数(调用成功、失败都会执行)
function fun(obj){//被监听对象 if (obj.num==1) { obj.success("成功") }else{ obj.fail("失败") } } var obj={ num:1, success:function(res){// 监听者 console.log("成功",res) }, fail:function(err){ console.log("失败",err) } } fun(obj)
var num=1
var obj={
num,
success:function(res){// 监听者
console.log("成功",res)
},
fail//key vaule 是同一个值;和上面 num 同理
}
function fail(err) {
console.log("失败",err)
}
fun(obj)
箭头函数
success:()=>{
console.log("成功",res)
}
this:
-
写在外面,window内容;
-
在普通函数内写,表对象本身;
-
箭头函数,表window内容