Js的函数及作用域问题

来源:互联网 发布:企业级网络交换机 编辑:程序博客网 时间:2024/05/16 06:13
<input type="button" id="btn" value="a"  onclick="sayHi()"/>
<inputtype="button"id="btn"value="a"/>

<scripttype="text/javascript">

 
函数的基本格式
      function  函数名(参数列表){
函数体
returu  返回值;
}


     函数的第一种类型:无参数无返回值  
当函数无返回值的时候,return可以不写
  function textOne(){
  alert("我是一个函数");
  }  
     函数的调用
  textOne();

创建一个函数,函数名是sayHi,功能是打印三遍“我要减肥”。
  for(var i=0;i<3;i++){
  function sayHi(){
  console.log("我要减肥");
  }
  sayHi();
  }

  function sayHi(){
  for(var i=0;i<3;i++){
  console.log("我要减肥");
  }
  }
  sayHi();
  var oBtn=document.getElementById("btn");
  将一个已经声明好的函数绑定给一个按钮的事件,是不需要加括号的,只写函数名就好了。
  oBtn.onclick= sayHi;


函数的第二种类型:有参数无返回值
  function textTwo(a,b,c){
  alert(a+b+c);
  }
  textTwo(1,2,3);

编写函数,应用for循环,打印n遍“我要减肥”,n的值可以随意改变。

  function textTwo(n){
  for(var i=0;i<n;i++){
  console.log("我要减肥");
  }
  }
  textTwo(100);

实参,形参。
实参--形参,是值拷贝的过程。
                                             形参
  function hh(a){
  a++;
  alert(a);
  }
  var num = 10;
  hh(num);//实参
  alert(num);


函数第三种类型:无参数有返回值
  function textThree(){
  return 100;
  alert("aaaa");
  }
  var result = textThree();
  alert(result);
1.return的作用是将函数的结果返回到调用函数的地方
2.return是跳出函数
3.return后面的代码不会被执行


函数的第四种:有参数有返回值类型。(求两个数的和)
  function isSum(a,b){
  var result = a+b;
  return  result;
  }
  var c = isSum(5,6);
  alert(c);

题:编写函数,计算1-n的和,并将计算结果返回,n的值由参数传入
  function  fd(n){
  var sum=0;
  for(var i=1;i<=n;i++){
  sum+=i;
  }
  return sum;
  }
  var result = fd(100);
  alert(result);

编写函数,求两个数的最大值,并且返回最大值。
               function aa(a,b){
returna>b?a:b;
}
var result = aa(45,200);
 alert(result);


function dd(a,b,c){
var max = a>b?a:b;
max = max>c?max:c;
return max;
}
 var result = dd(15,26,85);
alert(result);

function aaa(a,b,c){
var max = aa(a,b);
max = aa(max,c);
return max;
}
 var result = aaa(45,26,51);
 alert(result);


function aaaa(a,b,c,d){
var max = aaa(a,b,c);
max = aa(max,d);
return max;
}
var result = aaaa(12,23,56,9);
alert(result);

匿名函数:

<inputtype="button"id="btn"value="按钮"/>
<scripttype="text/javascript">
var oBtn = document.getElementById("btn");
oBtn.onclick = function() {

}
varaaa = function() {
alert("111111");
}
aaa();

</script>


作用域:

<scripttype="text/javascript">
//里面的函数不能供外面使用,外面的函数,里面可以肆意调用

 var num = 20;
 function textOne(){
 alert(num);
 }
 textOne();
 var oBtn = document.getElementById("btn");
 var  compare = true;
 oBtn.onclick = function(){
 if (compare==true) {
 var num = 10;
 } else{
 alert(num);
 }
compare = !compare;
}


for(vari=0;i<3;i++){
var num = 20;
}
alert(num);





switch:

//输入一个函数,传入两个整数和一个计算符号(+-*/)
//然后返回计算结果。
function textOne(a,o,b){
if (o == "+") {
return a+b;
}else if(o == "-") {
return a-b;
}else if(o == "*") {
return a*b;
}else if(o == "/") {
if (b==0) {
alert("SB,b不能为0");
} else{
return a/b;
}
}else{
alert("符号错误");
}
}
var result = textOne(1,"/",8);
alert(result);


switch
 var a = 10;
 var b = 5;
switch (a*b){
case a+b:
alert(a+b);
break;
case a/b:
alert(a/b);
 break;
case a*b:
alert(a*b);
break;
case a-b:
alert(a-b);
break;
default:
 alert("lsp,没有这个值");
break;
}


function textTwo(a,o,b){
switch (o){
case "+":
return a+b;
break;
case "-":
return a-b;
break;
case "*":
return a*b;
break;
case "/":
return a/b;
break;
default:
break;
}
}
var dd = textTwo(1,"+",9);
alert(dd);

</script>

0 0
原创粉丝点击