JS函数总和

函数定义:
JavaScript 使用关键字 function 定义函数。
函数可以通过声明定义,也可以是一个表达式。

函数声明语法:
parameters:参数
functionname:函数名称
function functionName(parameters) {
执行的代码
}

函数表达式:
JavaScript函数通过一个表达式定义:
var x=function(a,b){return a*b};

Function()构造函数:
var myFunction=new Function("a","b","return a*b");
var x=myFuntion(4,3);//结果是12

自调用函数:
(function(){
var x="Hello!!";
}){};

箭头函数
多个函数:
(参数1,参数2,~,参数n)=>{函数声明}
const x=(x,y)=>{return x*y}
()=>表达式;
const x=(x,y)=>x*y
一个参数
(参数1)=>{函数声明}
const x=(x)=>{return x*1}
参数=>{函数声明}
没参数
()=>{函数声明}

JS函数参数
JavaScript 函数定义显式参数时没有指定数据类型。
JavaScript 函数对隐式参数没有进行类型检测。
JavaScript 函数对隐式参数的个数没有进行检测。
function myFunction(x, y = 10) {
// y is 10 if not passed or undefined
return x + y;
}
myFunction(0, 2) // 输出 2
myFunction(5); // 输出 15, y 参数的默认值


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;
}

函数调用
当函数没有被自身的对象调用时 this 的值就会变成全局对象。
在 web 浏览器中全局对象是浏览器窗口(window 对象)。
该实例返回 this 的值是 window 对象:
function myFunction() {
return this;
}
myFunction();

函数作为方法调用:
var myObject={
fristName:"John",
lastName:"Doe",
fullName:function(){
return this.firstName+" "+this.lastName;
}
fullName 方法是一个函数。函数属于对象。 myObject 是函数的所有者。
this对象,拥有 JavaScript 代码。实例中 this 的值为 myObject 对象。
}
console.log(myObject.fullName()) ;//返回"John Doe"
console.log(myObject.fristName) ;//返回"John"

在 JavaScript 中, 函数是对象。JavaScript 函数有它的属性和方法。
call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。

function myFunction(a, b) {
return a * b;
}
myObject = myFunction.call(myObject, 10, 2); // 返回 20

function myFunction(a, b) {
return a * b;
}
myArray = [10, 2];
myObject = myFunction.apply(myObject, myArray); // 返回 20


JavaScript 内嵌函数
所有函数都能访问全局变量。
实际上,在 JavaScript 中,所有函数都能访问它们上一层的作用域。
JavaScript 支持嵌套函数。嵌套函数可以访问上一层的函数变量。
该实例中,内嵌函数 plus() 可以访问父函数的 counter 变量:
function add() {
var counter = 0;
function plus() {counter += 1;}
plus();
return counter;
}

var add = (function () {
var counter = 0;
return function () {return counter += 1;}
})();
add();
add();
add();
// add=3
变量 add 指定了函数自我调用的返回字值。
自我调用函数只执行一次。设置计数器为 0。并返回函数表达式。
add变量可以作为一个函数使用。非常棒的部分是它可以访问函数上一层作用域的计数器。
这个叫作 JavaScript 闭包。它使得函数拥有私有变量变成可能。

posted @ 2022-11-23 21:00  山君与见山  阅读(41)  评论(0编辑  收藏  举报