2021.4.27 js学习第三天

本文详细介绍了JavaScript中的函数,包括函数的创建、参数传递和返回值的使用。此外,深入探讨了变量的作用域,区分了全局变量与局部变量,并讲解了对象中的变量和函数参数的作用域规则。最后,提到了变量隐藏和访问全局变量的方法。
摘要由CSDN通过智能技术生成

1.javascript 中的函数

1.函数也叫方法

2.实现具体功能的代码的集合【封装】

3.通过关键字 function 创建函数 4.具体格式

4.具体格式 function [函数名称] ([参数列表]){
[return xxxx;]
}
1.function 创建函数关键字

2.函数名称-有时候没有名称【匿名函数】
3. ([参列表])–没有参数的时候空括号()

4.参数–将函数以外的数据值传递到函数里面进行运算【找帮手】,可以有多个,“,” 分割

5.{} --函数体
6.return 语句 – 函数执行完成以后有结果的时候使用 return 语句,出现在函数的最 后一句,函数执行完成以后没有结果的时候不用写 return 语句。

注意1.有参数的函数,
1 看函数的参数个数,
2 传参数值和变量都可以,
3.注意顺序
2.有返回值的函数,需要定义变量类接收返回值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>javascript 中的函数</title>
		<script>
			function test1(){
				alert("没有参数,没有返回值test1");
			}
			function test2(num){
				alert("有参数,参数值=="+num+", 没有返回值test2");
			}
			function test3(str){
				alert("有参数,参数值=="+str+",有返回值test3");
				return"hello";
			}
			function test4(num,str){
				alert("有参数,参数值=="+num+", 参数值=="+str+",有返回值test4");
				return num+str;
				}
				
			window.onload=function(){
				//test1();
				//test2(1314);
				//var ta="world";
				//var val1=test3(ta);
				//alert(val1);
				//var ta="world";
				//var val2=test4(123,test3(ta));
				//alert(val2);
				var stuobj={getName:function(str){
					return str+"san";	
					}}
				var name1=stuobj.getName("zhang");
					alert(name1);
				
			}
		</script>
	</head>
	<body>
		<h2>1.函数也叫方法</h2>
		<h2>2.实现具体功能的代码的集合【封装】</h2>
		<h2>3.通过关键字 function 创建函数 4.具体格式</h2>
	</body>
</html>

4.作用域【有效范围】
变量的组成
【1.var 2.名称 3.初始值 4.作用域】

变量的作用域就是变量的有效范围
首先要根据位置确定变量

1.全局变量–不在函数【匿名】/对象里面的变量
可以在任何一个函数中被使用

var name="zhangsan";
			
			function  test1(){
				alert(name);
			}
			function  test2(str){
				alert("有参数的函数test2---全局变量=="+name);
			}
			
			var obj={getName:function(){
				alert(name);
			}}
			window.onload=function(){
				//在有名函数
				//test1();
				//test2("hello");
				//在匿名函数
				//alert(name);
				//在对象里的函数
				//obj.getName();
			}

2.局部变量–在函数【匿名】里面的变量,包括函数的参数
只能在定义本变量的函数中被使用。

function method1(){
			   var name="lisisi";
			   alert(name);
		   }
		   function otherMethod(){
		   		alert(name);
		   }
		   
		   var obj={getName:function(){
		   	alert(name);
		   }}
		   window.onload=function(){
				//method1();
				//otherMethod();
				//alert(name);
				//obj.getName();
			}

函数的参数也属于局部变量

 function method1(canshu){
				alert(canshu);
		   }
		   function otherMethod(){
		   		alert(canshu);
		   }
		   var obj={getName:function(){
		   	alert(canshu);
		   }}
		  window.onload=function(){
				//method1("hello");
				//otherMethod();
				//alert(canshu);
				obj.getName();
			}

1.对象中的变量只属于本对象
2.对象中函数里面/函数参数—局部变量
3.对象中不在函数里面/不是函数参数—对象的全局变量
4.对象的全局变量,需要使用对象名称

 var obj={name:"zhangsanfeng",getName:function(){
		   	   var testname="lisisi";
			   //alert("对象的全局变量=="+this.name);
			   //alert("对象的全局变量=="+obj.name);
			   alert("局部变量=="+testname);
		   }}
		   
		   function mymethod1(){
			   //alert(obj.name);
			   alert("局部变量=="+testname);
		   }
		   window.onload=function(){
		   				//obj.getName();
						//mymethod1();
						//alert(obj.name);
						 alert("局部变量=="+testname);
		   			}

1.非对象中的情况,局部变量的名称与全局变量的名称一样
2.局部变量的值覆盖了全局变量的值—全局变量的隐藏
3.如果一定要使用被隐藏的全局变量的值–【this.全局变量的名称】

全局变量

var testvalue="zhangsan";
			
			function  doTest1(){
				//局部变量
				var testvalue="lisi";
				alert(testvalue); //lisi
				//如果一定要使用被隐藏的全局变量的值--【this.全局变量的名称】
				alert(this.testvalue); 
			}
			
			function  doTest2(){
				alert(testvalue); //zhangsan
			}
			window.onload=function(){
				doTest1();

1.对象中的情况,局部变量的名称与全局变量的名称一样
2.局部变量的值覆盖了全局变量的值—全局变量的隐藏
3.没有全局变量的隐藏,直接使用变量名称是无法访问对象中全局变量,可能访问的是对象外的全局变量
4.如果一定要访问对象中的全局变量通过this/对象名称访问
5.有全局变量的隐藏,直接使用变量名称是访问局部变量,this/对象名称访问对象中的全局变量

var myname="wangwu";
			var myobj={myname:"zhangsan",
					   getName:function(){
							var myname="lisi"; //局部变量
						    //alert(myname); 
							//alert(this.myname);
							alert(myobj.myname);
						}
			};
		   window.onload=function(){
				myobj.getName();
		   }

2.javascript 中的运算符

1.算术运算符 + 、-、、/、%【求余/取模】、++【自增】、–【自减】 ++【自增】、–【自减】运算的优先级高于+ 、-、、/、%

2.比较运算符

== [===] != > < >= <=

3.逻辑运算符

|| &&

4.条件运算符 【(判断表达式) ? 数值 1 : 数值 2】 ()? :

5.typeof 操作符–检测变量的数据类型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>运算符</title>
		<script>
			window.onload=function(){
				
				//var num1=10;
				//var num2=10;
				//document.write("<h1>"+num1+"+"+num2+"="+(num1+num2)+"</H1>");
				//document.write("<h1>"+num1+"-"+num2+"="+(num1-num2)+"</H1>");
				//document.write("<h1>"+num1+"*"+num2+"="+(num1*num2)+"</H1>");
				//document.write("<h1>"+num1+"/"+num2+"="+(num1/num2)+"</H1>");
				//document.write("<h1>"+num1+"%"+num2+"="+(num1%num2)+"</H1>");
				
				//++自增1
				//变量++   先用后加1
				//document.write("<h1>"+num1+"++ =="+(num1++)+"</h1>");
				//document.write("<h1>"+num1+"</H1>");
				//2.++变量--先用后用1
				//document.write("<h1>++"+num1+" =="+(++num1)+"</h1>");
				//document.write("<h1>"+num1+"</H1>");
				//自减1
				//1.--变量--先用后减1
				//document.write("<h1>"+num1+"-- =="+(num1--)+"</h1>");
				//document.write("<h1>"+num1+"</H1>");
				//1.++变量--先减1后用
				//document.write("<h1>--"+num1+" =="+(--num1)+"</h1>");
				//document.write("<h1>"+num1+"</H1>");
				/*
				//2.比较运算符 == [===] != > < >= <=
				var num1=10;
				var num2=3;
				document.write("<h1>"+num1+">"+(num2)+"="+(num1>num2)+"</h1>");
				document.write("<h1>"+num1+"<"+(num2)+"="+(num1<num2)+"</h1>");
				document.write("<h1>"+num1+">="+(num2)+"="+(num1>=num2)+"</h1>");
				document.write("<h1>"+num1+"<="+(num2)+"="+(num1<=num2)+"</h1>");
				document.write("<h1>"+num1+"=="+(num2)+"="+(num1==num2)+"</h1>");
				document.write("<h1>"+num1+"!="+(num2)+"="+(num1!=num2)+"</h1>");
				//[=  赋值]
				var num1=10;
				var num2="10";
				document.write("<h1>"+num1+"=="+(num2)+"="+(num1==num2)+"</h1>");
				document.write("<h1>"+num1+"==="+(num2)+"="+(num1===num2)+"</h1>");
				*/
			   /*
				//3.逻辑运算符 || && !
				var boo1=true;
				var boo2=false;
				document.write("<h1>"+boo1+"||"+(boo2)+"="+(boo1||boo2)+"</h1>");
				document.write("<h1>"+boo1+"&&"+(boo2)+"="+(boo1&&boo2)+"</h1>");
				document.write("<h1>!"+boo1+"="+(!boo1)+"</h1>");
				document.write("<h1>!"+boo1+"="+(!boo1)+"</h1>");
				*/
				//4.条件运算符 【(判断表达式) ? 数值 1 : 数值 2】 ()? :
				/*
				 var chengji=59;
				 var res=(chengji>=60)?"及格":"不及格";
				 alert(res);
				 */
				//5.typeof 操作符--检测变量的数据类型
				var num1=100;
				//alert(typeof num1); number
				var str="100";
				//alert(typeof str);  String
				var array=[];
				//alert(typeof array);   Object
				var obj={};
				//alert(typeof obj);   Object
				var boo=true;
				//alert(typeof boo);  Boolean
				var n=null;
				//alert(typeof boo);  Boolean
				var und;
				alert(typeof und);   undefined
				
				}
		</script>
	</head>
	<body>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值