myfuns.js
//自定义函数 //输入两个数,再输入一个运算符(+,-,*,/),得到结果->函数 function jiSuan(num1,num2,operator){//特别强调 参数名请不要带var var res=0; switch(operator){ case "+": res=num1+num2; break; case "-": res=num1-num2; break; case "/": res=num1/num2; break; case "*": res=num1*num2; break; } return res; }
在html中引入js的方法
<script type="text/javascript" src="myfuns.js" language="javascript"></script>
html代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>js中函数的使用</title> <script language="javascript" src="myfuns.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> <!-- var num1=window.prompt("请输入第一个num"); var num2=window.prompt("请输入第二个num"); var operator=window.prompt("请输入运算符"); num1=parseFloat(num1); num2=parseFloat(num2); //如何调用函数呢? document.writeln("res=:"+jiSuan(num1,num2,operator)); //--> </script> </head> <body> </body> </html>
eval可以使字符串当做js代码来执行。
var str="window.alert('ok')";
eval(str);
escape()函数可对字符串进行编码,这样就可以在所有的计算机上读取字符串。
传递中文时,不同浏览器对中文的支持不一样,编码方式不一样。
//escape和unescape函数往往配合使用,可以防止乱码出现。
var str1="顺平";
var str2=escape(str1);
window.alert(str1);
window.alert(str2);
var str3=unescape(str2);
window.alert(str3);
而moveTo()只在IE浏览器中生效。
window.moveTo(200,300);
引入js时不能用<script/>,必须用<script></script>.
函数的几种调用方式,
function test(val){ window.alert("您的输入是:"+val); }
①直接调用:
test("中国北京");
②把函数赋值给变量,用变量调用:
var myvar=test; myvar("中国北京");
如果,window.alert(test);或者window.alert(myvar);把test函数中的内容输出。
③关于接收函数返回值的问题
var myval=test;
var myvar=test("abc");
函数带参数和不带参数,情况是不一样的,一个是函数返回值,一个是函数的引用。
如果test函数没有返回值,但是又接收返回值了,则返回的就是undefined;如果有返回值,则接收的就是函数赋值后的引用。
js也有递归的,递归的运行要用到堆栈。
js函数的调用过程,内存分析:
案例:
//abc是一个函数,它接收数值
function(num1){
if(num1>3){
abc(--num1);
}
document.writeln(num1);
}
如果这样调用abc(5);则输出 3 3 4
分析图:
①函数的参数列表可以是多个变量
②参数列表可以多个,并且数据类型可以是任意的
③js支持参数个数可变的函数
④js支持创建动态函数
特别强调一下,js的函数天然支持可变参数
//编写一个函数,可以接收任意多个数,并计算它们的和
function abc2(num1,num2){
//在js中有一个arguments,可以访问所有传入的值
//window.alert(arguments.length);
//遍历所有的参数
for(var i=0;i<arguments.length;i++){
window.alert(arguments[i]);
}
}
可以这样调用:
abc2(2,3,4);
//说明JavaScript是一种动态语言
abc2(0,"helloworld");
arguments是系统本身就有的。
js不支持的函数的重载,因为它可以允许参数列表不一样。
数组
JavaScript数组的特点非常明显,数组里可以放任何类型的数据。
①为什么需要数组
存数据
②解决方法
使用数组,这种数据类型(引用类型/复杂类型/复合类型),数组的基本概念:用于存放一组数据。
特别强调:js中的数组,可以存放各种数据类型(数值/字符串...)
王大爷养乌龟(快速入门)。
在js中保留两位小数
avg_weight=new Number(avg_weight);
avg_weight=avg_weight.toFixed(2);