一、JS函数的特点
1、JS函数没有重载的概念。
2、相同函数名的函数会按照加载顺序依次覆盖前面的同名函数。
3、JS函数的形参和实参的个数没有任何关联。
二、JS函数的三种定义方式
1、第一种定义方式:
语法:function 函数名(形参列表){函数体}
2、第二种定义方式
语法:var 变量名=function(形参列表){函数体}
3、第三种定义方式:
语法:var 变量名=new function(形参列表){函数体}
区别:
第一种声明方式优先级最高,第二种和第三种优先级相同,按先后顺序加载。
三、函数对象
函数也是对象,可以通过传递参数的方式传入其他函数,作为参数使用。<br /> **注意:**<br />**(1)函数作为对象传递时,只能传递函数名,不能写小括号。**<br />** (2)一般在要求传递函数对象时,先传入一个匿名函数function(){需要执行的函数}(需要传入的函数直接在function中执行。)**
四、匿名函数的自调用
1、语法:(function(形参列表){函数体})(实参列表)
2、特点:匿名函数声明完后会立即调用自己一次,并且只能调用一次。
3、作用:可以用来初始化一些页面的参数或者是页面的配置信息。
五、内部函数
1、eval(字符串)
将传入字符串的以js代码的方式解析
function testEval(){
eval("alert(666);");
}
2、parseInt(字符串)
(1)将传入的字符串转化成整数。
parseInt(“1234blue33”) = 1234:
注意:如果有其他字符,只识别最开始的整数,从其他字符开始后面的数字都不识别。
(2)将二进制、八进制、十六进制的字符串转成整数。
parseInt(“需要转化的字符串”,”几进制(1,8,10,16)”).
3、isNan()
4、isFinite()
六、事件机制
1、常用事件
2、所有事件的集合
javascript事件列表 | |||
---|---|---|---|
事件 | 浏览器支持 | 解说 | |
一般事件 | onclick | IE3、N2 | 鼠标点击时触发此事件 |
ondblclick | IE4、N4 | 鼠标双击时触发此事件 | |
onmousedown | IE4、N4 | 按下鼠标时触发此事件 | |
onmouseup | IE4、N4 | 鼠标按下后松开鼠标时触发此事件 | |
onmouseover | IE3、N2 | 当鼠标移动到某对象范围的上方时触发此事件 | |
onmousemove | IE4、N4 | 鼠标移动时触发此事件 | |
onmouseout | IE4、N3 | 当鼠标离开某对象范围时触发此事件 | |
onkeypress | IE4、N4 | 当键盘上的某个键被按下并且释放时触发此事件. | |
onkeydown | IE4、N4 | 当键盘上某个按键被按下时触发此事件 | |
onkeyup | IE4、N4 | 当键盘上某个按键被按放开时触发此事件 | |
页面相关事件 | onabort | IE4、N3 | 图片在下载时被用户中断 |
onbeforeunload | IE4、N | 当前页面的内容将要被改变时触发此事件 | |
onerror | IE4、N3 | 出现错误时触发此事件 | |
onload | IE3、N2 | 页面内容完成时触发此事件 | |
onmove | IE、N4 | 浏览器的窗口被移动时触发此事件 | |
onresize | IE4、N4 | 当浏览器的窗口大小被改变时触发此事件 | |
onscroll | IE4、N | 浏览器的滚动条位置发生变化时触发此事件 | |
onstop | IE5、N | 浏览器的停止按钮被按下时触发此事件或者正在下载的文件被中断 | |
onunload | IE3、N2 | 当前页面将被改变时触发此事件 | |
表单相关事件 | onblur | IE3、N2 | 当前元素失去焦点时触发此事件 |
onchange | IE3、N2 | 当前元素失去焦点并且元素的内容发生改变而触发此事件 | |
onfocus | IE3 、N2 | 当某个元素获得焦点时触发此事件 | |
onreset | IE4 、N3 | 当表单中RESET的属性被激发时触发此事件 | |
onsubmit | IE3 、N2 | 一个表单被递交时触发此事件 | |
滚动字幕事件 | onbounce | IE4、N | 在Marquee内的内容移动至Marquee显示范围之外时触发此事件 |
onfinish | IE4、N | 当Marquee元素完成需要显示的内容后触发此事件 | |
onstart | IE4、 N | 当Marquee元素开始显示内容时触发此事件 | |
编辑事件 | onbeforecopy | IE5、N | 当页面当前的被选择内容将要复制到浏览者系统的剪贴板前触发此事件 |
onbeforecut | IE5、 N | 当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发此事件 | |
onbeforeeditfocus | IE5、N | 当前元素将要进入编辑状态 | |
onbeforepaste | IE5、 N | 内容将要从浏览者的系统剪贴板传送[粘贴]到页面中时触发此事件 | |
onbeforeupdate | IE5、 N | 当浏览者粘贴系统剪贴板中的内容时通知目标对象 | |
oncontextmenu | IE5、N | 当浏览者按下鼠标右键出现菜单时或者通过键盘的按键触发页面菜单时触发的事件 | |
oncopy | IE5、N | 当页面当前的被选择内容被复制后触发此事件 | |
oncut | IE5、N | 当页面当前的被选择内容被剪切时触发此事件 | |
ondrag | IE5、N | 当某个对象被拖动时触发此事件 [活动事件] | |
ondragdrop | IE、N4 | 一个外部对象被鼠标拖进当前窗口或者帧 | |
ondragend | IE5、N | 当鼠标拖动结束时触发此事件,即鼠标的按钮被释放了 | |
ondragenter | IE5、N | 当对象被鼠标拖动的对象进入其容器范围内时触发此事件 | |
ondragleave | IE5、N | 当对象被鼠标拖动的对象离开其容器范围内时触发此事件 | |
ondragover | IE5、N | 当某被拖动的对象在另一对象容器范围内拖动时触发此事件 | |
ondragstart | IE4、N | 当某对象将被拖动时触发此事件 | |
ondrop | IE5、N | 在一个拖动过程中,释放鼠标键时触发此事件 | |
onlosecapture | IE5、N | 当元素失去鼠标移动所形成的选择焦点时触发此事件 | |
onpaste | IE5、N | 当内容被粘贴时触发此事件 | |
onselect | IE4、N | 当文本内容被选择时的事件 | |
onselectstart | IE4、N | 当文本内容选择将开始发生时触发的事件 | |
数据绑定 | onafterupdate | IE4、N | 当数据完成由数据源到对象的传送时触发此事件 |
oncellchange | IE5、N | 当数据来源发生变化时 | |
ondataavailable | IE4、N | 当数据接收完成时触发事件 | |
ondatasetchanged | IE4、N | 数据在数据源发生变化时触发的事件 | |
ondatasetcomplete | IE4、N | 当来子数据源的全部有效数据读取完毕时触发此事件 | |
onerrorupdate | IE4、N | 当使用onBeforeUpdate事件触发取消了数据传送时,代替onAfterUpdate事件 | |
onrowenter | IE5、N | 当前数据源的数据发生变化并且有新的有效数据时触发的事件 | |
onrowexit | IE5、N | 当前数据源的数据将要发生变化时触发的事件 | |
onrowsdelete | IE5、N | 当前数据记录将被删除时触发此事件 | |
onrowsinserted | IE5、N | 当前数据源将要插入新数据记录时触发此事件 | |
外部事件 | onafterprint | IE5、N | 当文档被打印后触发此事件 |
onbeforeprint | IE5、N | 当文档即将打印时触发此事件 | |
onfilterchange | IE4、N | 当某个对象的滤镜效果发生变化时触发的事件 | |
onhelp | IE4、N | 当浏览者按下F1或者浏览器的帮助选择时触发此事件 | |
onpropertychange | IE5、N | 当对象的属性之一发生变化时触发此事件 | |
onreadystatechange | IE4、N | 当对象的初始化属性值发生变化时触发此事件 |
七、对话框
1、警告框alert
语法:alert(“需要提示的内容”)。<br /> 没有返回值。
2、询问框prompt
语法:prompt(“问题”)<br /> 可以填写问题的答案:<br />(1)点击确认提交,返回用户输入的内容;<br />(2)点击取消返回null。
3、确认框
语法:confirm(“提示内容”):弹出提示内容<br /> (1)点击确认:返回true<br /> (2)点击取消:返回false。<br />**注意:怎么取消超链接默认直接进入地址?**<br /> 语法:给超链接a标签添加onclik事件,返回确认框返回的信息。确认跳转,取消不跳转。<br />**例题:**<br />**<a href="http://www.baidu.com"onclick="return confirm('你确定要跳转百度吗?!!!');">百度</a>**
八、setInterval和clearInterval
1、setInterval
语法:setInterval(需自动调用的函数,时间)
表示:每隔多少秒自动调用该函数。并返回唯一的id。
2、clearInterval
语法:clearInterval(id)。
表示:清除自动调用的函数,id为自动调用的函数返回的id。
九、JS数组
1、创建数组的三种方式
(1)语法:var 变量名=new Array(ele1,ele2,…eleN)
(2)语法:var 变量名=new Array(数组长度);
(3)语法:var 变量名=[ele1,wlw2,…eleN];
2、数组的特性
(1)JS可以存放任意类型的元素,类似于Java的list集合;
(2)数组的长度可以任意改变。
3、数组必须掌握的API
(1)push():在数组的尾部添加一个或多个元素,并且返回新数组的长度;
(2)pop():移出数组的最后一个元素,并且返回这个元素;
(3)unshift():在数组的最前面添加一个或多个元素,并且返回新数组的长度;
(4)shift():移出数组的第一个元素,并返回该元素。
(5)concat():连接数组,产生新的数组,原数组不会改变。如果concat中的参数为数组的元素,则将参数添加到数组中。如果concat中的参数为数组,则是将两个或多个数组的参数合并,形成一个新的数组,并返回这个新的数组,原来的数组都不会改变。
例子详见:http://www.w3school.com.cn/jsref/jsref_concat_array.asp
九、经典例题——杨辉三角
function yanghui(num){
//创建一维数组
var array=new Array(num);//[u,u,u,u,u]
//创建二维数组
for(var i=0;i<array.length;i++){
array[i]=new Array(i+1);//[[u],[u,u],[u,u,u]....]
}
//给二维数组赋值
for(var i=0;i<array.length;i++){
for(var j=0;j<array[i].length;j++){
if(j==0||i==j){
array[i][j]=1;
}else{
array[i][j]=array[i-1][j-1]+array[i-1][j];
}
document.write(array[i][j]+" ");
}
document.write("<br/>");
}
}