yii2 调用未定义函数_js中的函数几个基本知识点

fa7a42afd20feda6c7b30d6af0d86f12.png

一:函数的创建:

1:函数名 function(){

函数体

}

2:var 函数名=function(){

函数体

}

3:var function=new Function()、、凡是能这样写的,说明Function是构造函数

这里没啥东西,分享一点小知识就是第一种和第二重的区别,第一种创建方式相当于函数的一个声明提升,使得全局任意地方都可以随意调用函数

1f8d4acaf0e2b61fe003b796740c47f7.png

无论在函数上面还是下面调用,都可以得到下面的结果,都不会出错

43ed9147623e4b01c775acb8eb295c7a.png

但是第二种就不一样了,当代码执行到这个函数时,函数才真正的被定义,在函数上面调用则会出错,显示doAdd不是一个函数,说明它未定义

51187682eb774898d23167a28478f996.png

二:外部事件驱动函数执行问题写函数名,而不是函数名()

c0792c6dde311eeb38076640fe5b75f2.png

这里点击按钮,函数会执行,这里面写的是foo而不是foo(),foo表示整个函数,相当于一个函数指针,当有外部事件驱动时函数会执行,此处如果写成foo(),函数就会直接被调用,点击事件失去了意义,这里也挺好理解的

三:声明提升

分为变量提升和函数提升

变量提升只会提升一个变量名,函数提升则会提升整个函数体

4ae7fef78d70d2b8de04a79689c57442.png

直接输出一个a,会报错

3e25f7b8de1316d771a2483f3dd95156.png

如果在下面定义一个a则不会报错,会显示一个undefined

fb3bafe6b7758e473354807cb198f65d.png

661d5e717ac78a4c4f56b8304eb9415d.png

说明变量名a声明提升上去了,知道在下面有一个a,但是变量值并没有声明上去,函数的声明提升可以看分享的第一个知识点的第一种,就是函数的声明提升

四:arguments 保存了所有实参的一个集合,用在函数的内部

4cdca44f1d1a49acb8c960f77847e9ac.png

上面的代码运行会出现下面结果

49950b079945dc615f88ac50d3e508c4.png

实参传进去会得到各种值

本次分享就到这里,下次分享this指向问题,这个也挺迷的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值