html前端学习十二:循环注册事件 函数

循环注册事件

熟悉掌握this
可以任意定义属性

	<ul id="list">
		<li>111</li>
		<li>222</li>
		<li>333</li>
		<li>444</li>
		<li>555</li>
	</ul>
    
<script>
	var ul = document.getElementById("list");
	var lis = ul.getElementsByTagName("li");
	for(var i=0;i<lis.length;i++){
		lis[i].countindex = i;
		lis[i].onclick = function(){
			alert(this.innerHTML+"当前索引位置"+this.countindex);
		} 
	}
</script>

循环控制

  • break
  • 中断循环、终止循环、结束循环、跳出循环
<script>
	
	for(var i=0;i<10;i++){
		if (i==5) {
			break;
		}
		console.log(i);
	}
	
</script>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e3V7Xi3Z-1577067491103)(http://img1.ph.126.net/q6XwNMpko2F9_eZ0y_TYww==/3864088480384161964.png)]

  • continue
  • 跳出当前一次循环,到循环尾
<script>
	
	for(var i=0;i<10;i++){
		if (i==5) {
			continue;//跳出当前一次循环,到循环尾
		}
		console.log(i);
	}
	
</script>

结果中没有5
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z2VbEPau-1577067491104)(http://img2.ph.126.net/uDvnBSAmWelk4Qi5nA2p5w==/2176364520026884940.png)]

函数

函数的定义function

<script>
	function fn(){
		alert(123);
	}
	fn();
	
</script>

匿名函数

匿名函数 不能单独出现
匿名函数的两种执行方式

    //即使函数(立马执行的函数)
	(function() {
		alert(1111);
	})();
	
	
	
	(function() {
		alert(999);
	}())
	

不标准的即时函数

//不标准的即时函数
	!function(){
		alert(1);
	}();
	+function(){
		alert(2);
	}();
	-function(){
		alert(3);
	}();
	~function(){
		alert(4);
	}();
函数特性
  1. 匿名函数不能单独出现;
  2. 函数默认返回undefined;

return 可以返回确定的值

	function sum(){
		return 1+1;
	}
	alert(sum());
函数传参
  1. 固定参数
	function add(addstart,addend){
			return addstart+addend;
	}
	alert(add(100,300));
  1. 不定长参数
    arguments表示传进去的不定长参数
	 function sum(){
	 	var result = 0;
	 	for(var i=0;i<arguments.length;i++){
	 		result += arguments[i];
	 	}
	 	return result;
	 }
	 alert(sum(1,3,4,2,55,33,66));
函数封装

将id名字封装起来,直接取参数

<body>
    <div id="box"></div>
    <div id="parent"></div>
    <div id="box1"></div>
<script>
	var box = $("box");
	var parent = $("parent");
	var box1 =$("box1");
	function $(idName){
		if (idName && (typeof idName).tolowerCase() =="string") {}
		return document.getElementById(idName);
	}
	alert()
	
</script>
函数作用域

作用域:
全局变量
局部变量

执行顺序:

  1. 定义:var function
  2. 执行
	fn();
	alert(a);
	var a =1;
	function fn() {
		a = 666;
		var b =2;
	}

所弹出结果为666
定义: a=1 function fn()
执行:a=666 b=2
最后a=1

  • 结论:
  • 子作用域可以访问父作用域,反之不可逆,父作用域不可覆盖子作用域
	var a = 1;
	var b =2;
	function fn(){
		alert(a);
		a =3 ;

	}
	fn();
	alert(a);

弹出 1 和3

javascript的bug

没有定义c,但是并不会报错

	var a = 1;
	var b =2;
	function fn(){
		c =3 ;

	}
	fn();
	alert(c);

使用严格模式,这样会报c undefined

	var a = 1;
	var b =2;
	function fn(){
		'use strict'  //使用严格模式,会报错
		c =3 ;

	}
	fn();
	alert(c);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值