关于网站建设与维护论文,企业网页有免费的吗,新闻今天最新消息,个人主页网站制作免费Javascript 函数详解
1#xff09;函数声明#xff1a; 通过关键字function定义#xff0c;把函数作为变量来声明 函数声明后不会立即执行#xff0c;会在我们需要的时候调用到。
scriptfunction myFunction(a, b) {return a * b;}// js对大小写敏感#xff0c;…Javascript 函数详解
1函数声明 通过关键字function定义把函数作为变量来声明 函数声明后不会立即执行会在我们需要的时候调用到。
scriptfunction myFunction(a, b) {return a * b;}// js对大小写敏感function必须小写调用时大小写也必须一致。// 函数声明不是一个可执行语句所以不 以分号结尾。
/script2函数表达式函数表达式可以存储在变量中
var x function (a, b) {return a * b};
var y x(1, 2);3Function() 构造函数:通过内置函数构造器Function()来定义。
let a new Function(a, b, return a b);
let b a(1, 2);
document.write(a); //function anonymous(a,b ) { return a b }
document.write(b); // 3// 构造函数:
function myFunction(arg1, arg2) {this.firstName arg1;this.lastName arg2;
}
var x new myFunction(John,Doe);
x.firstName; // John4 自调用函数表达式后面紧跟 () 则会自动调用
5箭头函数 IE11 及更早 IE 版本不支持箭头函数 箭头函数表达式的语法比普通函数表达式更简洁
(参数1, 参数2, …, 参数N) { 函数声明 }(参数1, 参数2, …, 参数N) 表达式(单一)
// 相当于(参数1, 参数2, …, 参数N) { return 表达式; }// ES5
var x function(x, y) {return x * y;
}
// ES6
const x (x, y) x * y;(function () {var x Hello!!; // 我将调用自己
})();6 函数是对象 a) arguments 隐式参数 arguments对象是所有非箭头函数中都可用的局部变量。 可以使用arguments对象在函数中引用函数的参数。 arguments对象不是一个 Array 。它类似于Array但除了length属性和索引元素之外没有任何Array属性
7函数的参数显式参数调用函数时传递的值就叫参数供在函数中使用。 多个参数由逗号,分隔
scriptfunction way(a, b) {alert(a b);}way(2, 3);
/scriptc) 带返回值的函数使用return语句返回值执行return时函数会停止执行并返回指定的值。
scriptfunction way(a, b) {return a b;}let c way(2, 3); // 5;
/scriptscriptfunction way(a, b) {return a b;}let c way(2, 3); // false;
/scriptscriptlet c 0;function way(a, b) {if (a b) {return;};c a b;}let c way(2, 3); // undefined;document.write(c); // 5
/script8 闭包 闭包是指有权访问另一个函数作用域中变量的函数创建闭包的最常见的方式就是在一个函数内创建另一个函数通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域将函数内部的变量和方法传递到外部。
闭包的特性 1.函数内再嵌套函数 2.内部函数可以引用外层的参数和变量 3.参数和变量不会被垃圾回收机制回收
var add (function () {var counter 0;return function () {return counter 1;}
})();add();
add();
add();
// 计数器为 3//li节点的onclick事件都能正确的弹出当前被点击的li索引ul idtestULli index 0/lili index 1/lili index 2/lili index 3/li
/ul
script typetext/javascriptvar nodes document.getElementsByTagName(li);for(i 0;inodes.length;i 1){nodes[i].onclick function(){console.log(i1);//不用闭包的话值每次都是4}(i);}
/script闭包是一种保护私有变量的机制在函数执行时形成私有的作用域保护里面的私有变量不受外界干扰。直观的说就是形成一个不销毁的栈环境。