一、js中的匿名函数
匿名函数顾名思义就是没有名称的函数,例如:
var me = function(){alert(1)}
me()
其中function()
就是一个没有函数名的函数
我们可以将这个匿名函数赋值给一个变量me,然后通过me()来调用这个匿名函数,输出结果就是1
值得注意的是,为变量命名时不要使用关键字,例如这里不要用 var name,否则就不能显示结果,而且无法轻易找出问题,因为js也不报错,我在变量和方法命名这块踩了不少坑。
在js中我们会经常用到匿名函数,例如:
<button id="btn" >弹出</button>
<script>
document.getElementById("btn").onclick = function(){
alert(666)
}
</script>
这样就把匿名函数function()赋值给了id为btn的这个节点元素,通过为btn这个元素绑定onclick点击事件,我们点击btn对应的弹出按钮,就可以在网页上显示666了
document是什么?其实它是网页的节点,我们可以通过右键检视chrome浏览器的网页,选择console,然后输入:
console.log(document)
来查看console日志,可以看到ducoment的显示结果如下:
实际上document是整个网页上的元素内容,我们可以通过getElementById,getElementsByName(),getElementsByTagName()来查询指定的元素
其中:
- getElementById是通过id查找元素,这个元素是唯一的
- getElementsByName()是通过name来查找元素,它返回的是一个元素数组,而不是一个元素,这是因为 HTML 表单中的一些元素通常具有相同的name ,如图:
- getElementsByTagName()方法可返回带有指定标签名的元素的集合,并且返回元素的顺序是它们在文档中的顺序。例如可以查找table标签元素,div标签元素,它返回的也是数组。如果把特殊字符串 "*" 传递给 getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。
二、js中的非匿名函数
非匿名函数就是有函数名的函数,例如:
<script>
function letter(a,b,c){
alert(a)
alert(b)
alert(c)
}
letter(1,2,3)
</script>
通过向letter函数中依次传入参数1,2,3然后网页就会输出对应的结果1,2,3
如果我们想把上面的点击按钮弹出666的功能改用非匿名函数,可以这样写:
<button onclick = "btn()">弹出</button>
<script>
function btn(){
alert(666)
}
</script>
建立btn()函数,并且为其对应的html元素绑定onclick事件即可
网友评论