什么是函数
函数的作用,可以写一次代码,然后反复地重用这个代码。
<h3 onload="add2(1,2,3);add3(4,5,6)"></h3>
<hr/>
<button style=" 100px;height: 50px;" value="" onclick="add(10,20)">什么是函数</button>
<button style=" 100px;height: 50px;" value="" onclick="sub()">定义函数</button>
<button style=" 100px;height: 50px;" value="" onclick="FUNC()">函数叠加功能调用</button>
<hr/>
<h3>有参函数调用:</h3>
<button style=" 100px;height: 50px;" value="" onclick="add4(10,20)">返回值函数</button>
<script type="text/javascript" src="../JS/jq/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
function add(a1,a2) {
var sum=a1+a2;
alert(sum);
}
//调用函数
//add(10,20);
var sum=1;
function sub(argument) {//调用函数
sum+=1;
alert(sum);
}
function FUNC(){//函数调用
for (var i =0; i < 10; i++) {
sub();
}
}
//函数传参
function add2(x,y,z){
var sum = x + y +z;
document.write(x+"、"+y+"、"+z+"和:"+sum+"<hr/>");
}
function add3(x,y,z){
var sum = x + y +z;
document.write(x+"、"+y+"、"+z+"和:"+sum+"<hr/>");
}
//返回值函数
function add4(x,y){
var result=x+y
return result;
}
var value=add4(20,10);
document.write("返回值:"+value);
</script>
1、JS函数定义
含义:JS使用关键字function定义函数,函数可以同过声明定义,也可以是一个表达式。
一:函数声明
function save(){//函数体}
二:函数表达式
var x = function (a, b) {return a * b};
三:functiion构造函数
var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
注意:在 JavaScript 中,很多时候,你需要避免使用 new 关键字
四:函数提升:
提升:是JS默认将当前作用域提升到前面去的行为。提升应用在变量的声明与函数的声明,因此,函数可以在申明之前调用。
myFunction(5);
function myFunction(y) {
return y * y;
}
注意:使用表达式定义函数时无法提升
五:自调用函数:函数实际上是一个 匿名自我调用的函数 (没有函数名)。
(function () {
var x = "Hello!!"; // 我将调用自己
})();
六:函数可作为一个值使用也可以作为表达式使用
function myFunction(a, b) {
return a * b;
}
var x = myFunction(4, 3);
七:函数是对象
实列:
function myFunction(a, b) {
return arguments.length;
}
toString()将函数作为一个字符串返回
2、JS函数参数
一:JavaScript 函数参数:
1、显式参数:函数显式参数在函数定义时列出。
functionName(parameter1, parameter2, parameter3) {
code to be executed
}
2、隐藏参数:函数隐藏参数(arguments)在函数调用时传递给函数真正的值。
3、默认参数:如果函数在调用时缺少参数,参数会默认设置为: undefined
function myFunction(x, y) {
if (y === undefined) {
y = 0;
}
}
4、Arguments 对象:JavaScript 函数有个内置的对象 arguments 对象.
argument 对象包含了函数调用的参数数组。
实例
找出最大的值
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i, max = arguments[0];
if(arguments.length < 2)return max;
for (i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
统计所有数值的和:
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
var i, sum = 0;
for (i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
5、通过值传递参数:在函数中调用的参数是函数的参数。如果函数修改参数的值,将不会修改参数的初始值(在函数外定义)。
实例
var x = 1;
// 通过值传递参数
function myFunction(x) {
x++; //修改参数x的值,将不会修改在函数外定义的变量 x
console.log(x);
}
myFunction(x); // 2
console.log(x); // 1
6、
通过对象传递参数:在JavaScript中,可以引用对象的值。因此我们在函数内部修改对象的属性就会修改其初始的值。修改对象属性可作用于函数外部(全局变量)。
实例
var obj = {x:1};
// 通过对象传递参数
function myFunction(obj) {
obj.x++; //修改参数对象obj.x的值,函数外定义的obj也将会被修改
console.log(obj.x);
}
myFunction(obj); // 2
console.log(obj.x); // 2
3、JS函数调用