//自定义函数

//假如要自定义一个两个数求和与差

<script>

  var a = prompt("请输入第一个数值");
  var b = prompt("请输入第二个数值");
  var op = prompt("请输入运算符(+,-)");
  a = parseFloat(a);
  b = parseFloat(b);

  /*特别注意定义函数变量和一般的编程语言不一样,不需要用var修饰,就算有返回值也不需要修饰函数返回类型*/

  function compute(m, n, operator)
  {
    var res = 0;
    if(operator == "+")
      res = m + n;
    else
      res = m - n;
    return res;
  }
  document.write("结果为:" + compute(a, b, op));
</script>

 

 

也可以把自定义函数像CSS那样写到js文件里面,然后在<head>里面引入即可调用该函数

假如把函数写在fun.js中,引入语法如下:

<script type="text/javascript" src="../Extjs/fun.js"></script>   //头尾标签都必须有才能引入

这时候html文件就可以简化为:

<script>

  var a = prompt("请输入第一个数值");
  var b = prompt("请输入第二个数值");
  var op = prompt("请输入运算符(+,-)");
  a = parseFloat(a);
  b = parseFloat(b);

  document.write("结果为:" + compute(a, b, op));

</script>

 

//直接使用函数名作为输出会输出整个函数内容,比如

<script>

  function test(val)

  {

    alert(val);

  }

  document.write(test);

</script>

输出的内容就是: function test(val){alert(val);}

 

/*如果定义一个变量,其值是一个函数,就相当于把这个变量指向了该函数,或者说是个该函数再取了一个名字*/

<script>

  function show(val)

  {

    alert(val);

  }

  var test = show;

  alert(test);

  test("什么鬼");

</script>

两个弹窗的内容如下:

 

/*如果把一个变量用没有返回值的函数赋值,会出异常,因为没有返回值的函数默认是undefined*/

比如:

<script>

  function test(val)

  {

    alert(val);

  }

  var v = test("什么鬼");

  alert(v);

</script>

弹窗显示的就是undefined。