javascript 学习笔记——函数

[size=medium]记录以下网址的javascript core crash章节[url]http://courses.coreservlets.com/Course-Materials/ajax-basics.html[/url][/size]
[size=x-large]1、[/size]
[img]http://dl.iteye.com/upload/attachment/0061/9954/53558b7c-7d26-383b-9247-021ffac401cf.png[/img]
[color=red][size=large](代码统一放在后面)[/size][/color]
[size=x-large]2、高级[/size]
[img]http://dl.iteye.com/upload/attachment/0061/9974/d64b38af-3043-3f84-bb81-56e7dc1c36df.png[/img]

[size=x-large]3、特殊函数[/size]
[img]http://dl.iteye.com/upload/attachment/0061/9996/35069910-050d-3bff-8678-be1f78b13208.png[/img]


[size=x-large]源代码1[/size]

<!-- LCTestJS_functions.html version: 2012_01_11 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试javascript的函数 version: 2012_01_11</title>
<style>
h3 {
color: #FFF;
background-color: #09F;
font-style: normal;
font-weight: bold;
}

h4 {
font-weight: bolder;
color: #d00;
background-color: #CCC;
}

h5{
background-color: #FFC;
color: #000;
font-size: 18px;
}
</style>
</head>
<body>
<h2>测试javascript的函数 version: 2012_01_11</h2>

<h3>函数赋值给变量(也可以赋值给对象的成员变量)</h3>
<h5>
function square(x){return x*x;}
<br>var funcVar=square;
<br>或者 var funcVar=function(x){return (x*x);};
</h5>
<script type="text/javascript">
function square(x) {
return x * x;
}
//var funcVar = square;
var funcVar=function(x){return (x*x);};
document.write("<p>funcVar(5)=" + funcVar(5));
</script>

<!-- ---------------------- -->
<h3>函数数组</h3>
<h5>
function sqrt(x){return Math.sqrt(x);}
<br>var funcArray=[square,sqrt];

</h5>
<script type="text/javascript">
function sqrt(x){return Math.sqrt(x);}
//var funcVar2 = sqrt;
var funcArray=[square,sqrt];
document.write("<p>funcArray[0](4)=" + funcArray[0](4));
document.write("<br>funcArray[1](4)=" + funcArray[1](4));
</script>

<!-- ---------------------- -->
<h3>函数作为其他函数的参数</h3>
<h5>
function func1SubFunc2(func1,func2,x){return func1(x)-func2(x);}
</h5>
<script type="text/javascript">
function func1SubFunc2(func1,func2,x){return func1(x)-func2(x);}
document.write("<p>func1SubFunc2(square,sqrt,4)=" + func1SubFunc2(square,sqrt,4));

</script>

<!-- ---------------------- -->
<h3>函数作为返回值</h3>
<h5>
function returnFunc(x){if(x==1)return square;else return sqrt;}
</h5>
<script type="text/javascript">
function returnFunc(x){if(x==1)return square;else return sqrt;}
document.write("<p>returnFunc(1)(4)=" + returnFunc(1)(4));
document.write("<p>returnFunc(2)(4)=" + returnFunc(2)(4));
</script>

<!-- ---------------------- -->
<h3>匿名函数</h3>
<h5>
(function(x) {return(x+7);})(10); ->  17
</h5>
<script type="text/javascript">
document.write("<p>(function(x) {return(x+7);})(10)=" + (function(x) {return(x+7);})(10));
</script>

</body>
</html>

[size=x-large]源代码2[/size]

<!-- LCTestJS_functionsAdvanced.html version: 2012_01_11 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试javascript的函数 (高级) version: 2012_01_11</title>
<style>
h3 {
color: #FFF;
background-color: #09F;
font-style: normal;
font-weight: bold;
}

h4 {
font-weight: bolder;
color: #d00;
background-color: #CCC;
}

h5{
background-color: #FFC;
color: #000;
font-size: 18px;
}
</style>
<script type="text/javascript">
function printSpace(n){//输出n个空格
if(n==null)
document.write();
else for(var i=0;i<n;i++)document.write(' ');
}
function print(str,description){//新起一段输出str,之后空10格,再输出description
document.write("<p>"+str);
printSpace(10);
if(description!=null)
document.write("//"+description);
}
</script>
</head>
<body>

<h2>测试javascript的函数(高级) version: 2012_01_11</h2>

<h3>闭包——Anonymous Function with Captured Data</h3>
<h4>注意返回的内层匿名函数的参数才是minus7的参数!即minus7(n)=n-7</h4>
<h5>
function makeMinusFunc(x){return (function(n){return n-x;});};
<br>var seven=7;
<br>var minus7=makeMinusFunc(7);
<br>seven=8;//不影响上面的函数,函数已经生成!!minus7(n)还是n-7!
</h5>
<script type="text/javascript">
function makeMinusFunc(x){return (function(n){return n-x;});};
var seven=7;
var minus7=makeMinusFunc(seven);
seven=8;//不影响上面的函数,函数已经生成!!minus7(n)还是n-7!
document.write("<p>minus7(6)=\t" + minus7(6));
</script>

<!-- ---------------------- -->
<h3>函数.apply()——将参数以数组方式传递</h3>
<h4>apply()的第一个参数为this指针,第二个为参数的数组表示</h4>
<h5>
var obj1={p:1}; var obj2={p:2};
<br>function minus(x,y){return (this.p+x-y);}
</h5>
<script type="text/javascript">
var obj1={p:1}; var obj2={p:2};
function minus(x,y){return (this.p+x-y);}
document.write("<p>minus.apply(obj1,[9,4,100])=" + minus.apply(obj1,[9,4,100]));
printSpace(10);document.write("//第三个参数(100)其实没用到");
document.write("<p>minus.apply(obj2,[9,4,100])=" +minus.apply(obj2,[9,4,100]));
document.write("<p>minus.apply(null,[3])=" + minus.apply(null, [3]));
printSpace(10);document.write("//因为minus方法需要两个参数!");
</script>

<!-- ---------------------- -->
<h3>函数.call()</h3>
<h4>与 函数.apply() 类似,但之后为不定个数的参数</h4>
<script type="text/javascript">
document.write("<p>minus.call(obj1,9,4)=" + minus.call(obj1,9,4));
</script>

</body>
</html>



[size=x-large]源代码3[/size]

<!-- LCTestJS_functionsSpecial.html version: 2012_01_11 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试javascript的函数 (evel等特特殊函数) version: 2012_01_11</title>
<style>
h3 {
color: #FFF;
background-color: #09F;
font-style: normal;
font-weight: bold;
}

h4 {
font-weight: bolder;
color: #d00;
background-color: #DDD;
}

h5{
background-color: #FFC;
color: #000;
font-size: 18px;
}
</style>
<script type="text/javascript">
function printSpace(n){//输出n个空格
if(n==null)
document.write();
else for(var i=0;i<n;i++)document.write(' ');
}
function print(str,description){//新起一段输出str,之后空10格,再输出description
document.write("<p>"+str);
printSpace(10);
if(description!=null)
document.write("//"+description);
}
</script>
</head>
<body>

<h2>测试javascript的函数(evel等特特殊函数) version: 2012_01_11</h2>

<h3>instanceof——测试是否为某类的实例</h3>
<h4>类别可为:Number(数字),Object(类),String(字符串),Function(函数),Array(数组)等;<br> 不可为:undefined(未定义)</h4>
<script type="text/javascript">
document.write("<p>7 instanceof Array=\t" +(7 instanceof Array));//(7 instanceof Array)的括号必须!!!
document.write("<p>[2,3] instanceof Array=\t" +([2,3] instanceof Array));
</script>

<!-- ---------------------- -->
<h3>typeof——返回变量的类型(字符串表示)</h3>
<h4>与类名不同,返回的字符串首字母是小写的</h4>
<h5>
var obj1={p:1}; var arr=[2,3];
<br>function minus(x,y){return (this.p+x-y);}
</h5>
<script type="text/javascript">
var obj1={p:1}; var arr=[2,3];
function minus(x,y){return (this.p+x-y);}
print("(typeof 1)="+ (typeof 1));
print("(typeof 1)=='number' \t?\t"+ ((typeof 1)=='number'));
print("(typeof 'str')="+ (typeof 'str'));
print("(typeof obj1)="+ (typeof obj1));
print("(typeof arr)="+ (typeof arr),"注意对于Array类型的变量返回object!!!");
print("(typeof minus)="+ (typeof minus));
print("(typeof zzz)="+ (typeof zzz));
</script>

<!-- ---------------------- -->
<h3>eval——执行字符串</h3>
<h5> var test2 = "{ firstName: 'Jay', lastName: 'Sahn' }";
<br>var person1=eval('test2');
<br>var person2 = eval("(" + test2 + ")"); </h5>
<script type="text/javascript">
print("eval('2+3;')=\t"+eval('2+3;'));
print("eval('2+minus.apply(obj1, [6,3]);')=\t"+eval('2+minus.apply(obj1, [6,3]);'));
var test2 = "{ firstName: 'Jay', lastName: 'Sahn' }";
var person1=eval('test2');
var person2 = eval("(" + test2 + ")");
print("typeof person1=\t"+typeof person1,"string类型!!大括号被当成了界线符号");
print("typeof person2=\t"+typeof person2,"object类型,加小括号是必须的");
</script>


<!-- ---------------------- -->
<h3>可变参数</h3>
<h4>每个函数内均可使用arguments.length获取实际的参数数量<br>用arguments[i]获取第i+1个参数</h4>
<h5>
var testFunc=function(x,y){
<br>document.write("参数个数为:\t"+arguments.length);
<br>if(arguments.length>0)document.write(";\t____参数为:");
<br>for(var i=0;i<arguments .length;i++)
<br> document.write("\t"+arguments[i]+" ;");
<br>}
</h5>
<script type="text/javascript">
var testFunc=function(x,y){
document.write("参数个数为:\t"+arguments.length);
if(arguments.length>0)document.write(";\t____参数为:");
for(var i=0;i<arguments.length;i++)
document.write("\t"+arguments[i]+" ;");
}
document.write("<p>testFunc()=");testFunc();
document.write("<p>testFunc(1,2,3,4)=");testFunc(1,2,3,4);
document.write("<p>testFunc([1,2,3,4])=");testFunc([1,2,3,4]);
</script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值