function simue ($a=1,$b=2){
return $a+$b
}
echo simue()//输出3
echo simue(10)//输出12
echo simue(10,20)//输出30
但js却不能这么定义,如果写function simue(a=1,b=2){}会提示缺少对象。
2.js函数中有个储存参数的数组arguments ,所有函数获得的参数会被编译器挨个保存到这个数组中。于是我们的js版支持参数默认值的函数可以通过另外一种变通的方法实现,修改上例:
function simue (){
var a = arguments[0] ? arguments[0] :
1
var b = arguments[1] ? arguments[1] :
2
return a+b
}
alert( simue() )//输出3
alert( simue(10) )//输出12
alert( simue(10,20) )//输出30
如果event没有在其他地方被定义的话。这样写的目的是为了实现IE和FF中event的传递。
因为IE中的event是全局的,公用的,相当于window.event,所以可以不写,
而FF中的event则是必须存在事件中,必须要写。
为了都能在两个浏览器上正常运行,所以加了event.
这里的event在IE上指window.event简写event,所以一定要写event这个。
在FF中则是事件onchange固有的参数e,所以如果是FF浏览器,则可以随便写。
event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
event对象只在事件发生的过程中才有效。
event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。
例子
下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。
code<HTML>
<HEAD><TITLE>Cancels Links</TITLE>
<SCRIPT LANGUAGE="JScript">
function cancelLink() {
if (window.event.srcElement.tagName == "A" &&window.event.shiftKey)
window.event.returnValue = false
}
</SCRIPT>
<BODY onclick="cancelLink()">
下面的例子在状态栏上显示鼠标的当前位置。
code<BODY onmousemove="window.status = 'X=' + window.event.x + ' Y=' + window.event.y">
属性:
altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX,
screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y
1.altKey
描述:
检查alt键的状态。
语法:
event.altKey
可能的值:
当alt键按下时,值为 TRUE ,否则为 FALSE 。只读。
默认值应该是 undefined在函数内预设数可以用 arguments[i]
i就是你参数的位置 第一个为0
所以要设定 flag 的默认值 则可以这么写
function func(string1,url,flag,icon){
if(!arguments[2]) flag = "123"
if(!arguments[3]) icon = "456"
}
你试试 应该是这样