一、JavaScript 函数
1.1 JavaScript 函数定义
1.函数是什么?
实现某一个功能的代码集合
2.函数的格式
function 函数名(参数列表) {
执行的代码
}
3.函数表达式
JavaScript 函数可以通过一个表达式定义。
函数表达式可以存储在变量中.
匿名函数赋值给一个变量,此时函数名称就是变量名称
在函数表达式存储在变量后,变量也可作为一个函数使用.
var 变量名称 = function(参数列表){
需要执行的代码。
};
调用函数:变量名称(传入的参数);
4.function()构造函数
我们了解到函数通过关键字 function 定义
function test1(num1,num2){
alert(“通过关键字 function 定义函数”);
}
函数同样可以通过内置的 JavaScript 函数构造器(Function())定义
可以通过new Function()创建函数
var test3 = new Function(“num1″,”num2″,”alert(‘第一个函数构造器Function()’+(num1+num2))”)
5.函数的提升
先使用再声明/定义、
6.自调用函数
自调用函数没有名称
将函数定义部分使用()包围
最后使用一个()来充当函数的参数列表。
7.函数是对象
在 JavaScript 中使用 typeof 操作符判断函数类型将返回 “function” .
JavaScript 函数描述为一个对象更加准确。
对象有属性和方法,而函数也有属性和方法,因此我们认为函数也是对象
函数的属性 arguments — 封装函数参数的对象
函数的方法 toString() 方法将函数作为一个字符串返回。
8.JavaScript 函数参数
JavaScript 函数对参数的值没有进行任何的检查。
函数显式参数(Parameters)与隐式参数(Arguments)
函数显式参数在函数定义时列出。
函数隐式参数在函数调用时传递给函数真正的值。
例如;
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<script>
//1.函数是什么?
//实行某个功能的代码集合
//2.函数格式
/*
function 函数,名称(参数列表){
执行代码;
}
*/
//3.函数表达式
//JavaScript函数可以通过表达式来定义或声明
//函数表达式可以储存在变量中
//匿名函数赋值给一个变量,此时函数名称就是变量名称
var test1 =function(){
alert("第一个函数表达式。")
};
var test2 =function(str){
alert("第二个函数表达式作者:"+str)
}
//在函数表达式存储在变量后,变量也可作为一个函数使用.
//test1();
//test2("fxt");
//4.function() 构造函数
//我们了解到函数通过关键字 function 定义
function test1(num1,num2){
alert("通过关键字 function 定义函数");
}
//test1(100,100);
//函数同样可以通过内置的 JavaScript 函数构造器(Function())定义。
//我能可以通过new Function()创建函数
var test3 = new Function("num1","num2","alert('第一个函数构造器Function()'+(num1+num2))")
//test3(1,5);
//上面的构造函数相当于一个变量名称为test3的函数表达式
var test3 = function(num1,num2){
alert('第一个函数构造器Function()'+(num1+num2))
}
//5.函数提升(Hoisting)---- 先使用,后定义
//变量的提升下面--- 先使用,后定义
/*
function test4(){
str="hello";
alert(str);
var str;
}
test4();
*/
//函数的提升下面
/*
var res=test5();
alert(res4);
function test5(){
return "zhnagsan";
}
*/
//6.自调用函数
function test6(){
alert("手动调用!")
}
//test6();
//1.自调用函数没有名称
//2.将函数定义部分使用()包围
//3.最后使用一个()来充当函数的参数列表。
/*(function(){
alert("自调用函数");
})();*/
//有参数的自调用函数
/*(function(d1,d2){
alert("有参数的自调用函数"+(d1+d2));
})(12,56);*/
//7.函数是对象
/*function test7(){
}
alert(typeof test7);//函数类型*/
//在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" .
//JavaScript 函数描述为一个对象更加准确。
//对象有属性和方法,而函数也有属性和方法,因此我们认为函数也是对象
//函数的属性 arguments --- 封装函数参数的对象
function test8(a,b){
alert("参数个数:--"+arguments.length)
}
//test8(1,2);
//函数的方法 toString() 方法将函数作为一个字符串返回.
var restest8=test8.toString();
alert(typeof restest8);//string类型
//8.函数是对象
//JavaScript 函数对参数的值没有进行任何的检查。
function tes9(str){
alert("参数---"+arguments.length);
}
test9("zhangsan");
//函数显式参数(Parameters)与隐式参数(Arguments)
//函数显式参数在函数定义时列出。
//函数隐式参数在函数调用时传递给函数真正的值。
</script>
</body>
</html>
二、JavaScript 函数调用
JavaScript 函数有 4 种调用方式。
1.作为一个函数调用
2.函数作为方法调用
3.使用new 函数名称()调用函数
4.函数是对象,作为JavaScript 函数,调用
例如;
<!DOCTYPE html>
<html>
<head>
<title>JavaScript 函数调用</title>
<meta charset="utf-8">
</head>
<body>
<p>作为一个全局函数调用的结果:</p>
<p id="dome"></p>
<script>
//JavaScript 函数调用
//JavaScript 函数有 4 种调用方式。
//1.作为一个函数调用
function test1(a,b){
alert("参数"+(a+b))
return a*b;
}
//document.getElementById("dome").innerHTML=test1(10,2);
//上函数不属于任何对象。但是在 JavaScript 中它始终是默认的全局对象。
//在 HTML 中默认的全局对象是 HTML 页面本身,所以函数是属于 HTML 页面.
//在浏览器中的页面对象是浏览器窗口(window 对象)。以上函数会自动变为 window 对象的函数。
//全局对象===window 对象
//window.test1(2,3);
//2.函数作为方法调用
//方法属于对象的成员,对象的方法是一个函数,因此函数可以被作为方法调用。
//创建了一个对象 (myObject), 对象有两个属性 (firstName 和 lastName), 及一个方法 (fullName).
var myObject={
firstName:"房",
lastName:"续婷",
fullName:function(){
return this.firstName+" "+this.lastName;
}
}
var name = myObject.fullName();
//alert(name);
//3.使用new 函数名称()调用函数
function test2(str){
alert("函数调用"+str);
}
//alert(typeof test2);//functio类型
var res1 = new test2("fxt");
alert(typeof res1);
//4.作为函数方法调用函数
//在 JavaScript 中, 函数是对象。JavaScript 函数有它的属性和方法。
//call() 和 apply() 是javascripr预定义的函数方法
//call()
//第一参数 必须是对象本身。
//第二参数 是一组参数,实际上是被调用函数的参数
function test3(str,age){
alert("函数调用,参数="+str+",age=="+age);
}
var res2;
//res2=test3.call(test3,"fxt",22)
//apply()
//第一参数 必须是对象本身。
//第二参数 是一个数组,将被调用函数的参数封装成一个数组
function test4(str,age){
alert("函数调用,参数="+str+",age=="+age);
}
var canShu =["fxt",22];//封装函数参数的数组
test4.apply(test4,canShu);
//也可以使用自调用函数方法
</script>
</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79863.html