//自定义函数
//假如要自定义一个两个数求和与差
<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。