[记录] JavaScript 中的函数

函数: 函数是一段可以反复调用的代码块。可以传递参数,不同的参数会返回不同的值。 函数声明的三种方法: 1. function 命令 function 命令声明的代码块,就是一个函数。 function 命令后面是函数名,函数名后面是一对圆括号(), 里面可以传入参数。函数体放在大括号里面。 function show(name) { // 代码块... console.log( name ); } 2. 函数表达式 除了用 function 命令声明函数, 还可以采用变量赋值的写法。 var show = function(name) { // 代码块... console.log( name ); }; 这种写法是将一个匿名函数赋值给变量。因为赋值语句的等号右侧只能放表达式,所有这个匿名函数称函数表达式。 带名的函数表达式,函数名在函数体内有效,在函数体外部无效。 var show = function abc() { // 代码块... // 命名函数表达式 // 每个函数都会有一个name的属性,这里的区别就在于 show.name 是 abc }; 注意: 函数作为表达式出现,则会忽略名称。函数表达式需要在语句结尾加上分号,表示语句结束。 3. Function 构造函数 Function 构造函数可以不使用new命令,返回结果完全一样。这种声明方式少人使用。 var show = new Function( "x", "y", "return x + y" ); // 等同于 function show(x, y) { return x + y; } Function 构造函数的最后一个参数会被当作函数体,如果只有一个参数,该参数就是函数体。 函数的重复声明: 同一个函数被多次声明,后面的声明会覆盖前面的声明。 function show() { console.log(‘A‘); } show(); // A function show() { console.log(‘B‘); } show(); 上面代码中,后声明show函数覆盖了之前的。在预编译环节,由于函数名的提升至最前,前一次声明在任何地方都是无效的。 函数名的提升: JavaScript 引擎将函数名视同变量名,所有采用 function 命令声明函数,都会被提升到代码头部。 // 先调用 show(); // 后声明,由于"变量提升", 所以代码可以正常执行 function show() { .. } 采用赋值语句定义函数,先调用,再声明就会报错。 show(); var show = function() {} // TypeError: show is not a function 等同以下形式 var show; show(); show = function() {}; 注意: 同时采用 function 命令 和 赋值语句 声明同一个函数,最后采用的总是赋值语句定义的。 var show = function() { console.log("A"); }; function show() { console.log("B"); } show(); // A 函数本身的作用域: 函数执行时所在的作用域,是定义时的作用域,而不是调用时所在的作用域。 函数的属性和方法: A. name 属性 函数的 name 属性返回函数的名字 function show() {} show.name; // show 变量赋值定义的函数,name 属性返回变量名。 var show = function () { // 匿名函数表达式 }; show.name; // show var show = function abc() { // 有名函数表达式 } show.name; // abc B. length 属性 (函数形参的个数) function show(a, b){ // a,b 是函数的形参 } show.length; // 2 C. toString() 方法: 返回一个字符串,内容是函数的源码; function show() { // 注释 hide(); } show.toString(); 结果: "function show() { // 注释 hide(); }" 在函数声明的时候定义的参数, 叫形式参数 - 形参; 在函数调用的时候传入的参数, 叫实际参数 - 实参; 参数: function test(a, b){ // 函数内部相当于声明了两个变量 // var a; // var b; // 函数内部有一个实参列表 arguments - [1,2,3] 是一个类数组 // 获取形参的长度 test.length; // 形参个数 和 实参列表arguments一一对应,如有一方修改则都改,例外:当实参小于形参时,修改形参变量,对应的arguments为undefined // return; // 1. 终止 (默认在逻辑的最后会有一个return); // 2. 函数返回值 return 123; } 参数特点: 不定参,形参比实参多,内部用到则默认为undefined。实参比形参多,则忽略; 函数调用方式: 1. 直接调用函数 (this指向window) function init(){ // 代码块... } init(); // window.init(); 2. 作为方法调用 (this指向当前对象) var myObject = { value: 100, init: function() { console.log( this.value ); } } myObject.init(); // 100 3. 构造函数,用new关键字来新建一个函数对象的调用; (this指向被绑定到的构造函数实例上) var init = function (status) { this.status = status; } init.prototype.getStatus = function () { return this.status; }; var test = new init(‘构造函数‘); console.log( test.getStatus() ); // 构造函数; this指向test

原文地址:https://www.cnblogs.com/yuxi2018/p/9549979.html

时间: 2024-10-09 10:04:35

[记录] JavaScript 中的函数的相关文章

javascript中所有函数的参数都是按值传递的

[javascript中所有函数的参数都是按值传递的] 参考:http://www.jb51.net/article/89297.htm

JavaScript中的函数表达式

在JavaScript中,函数是个非常重要的对象,函数通常有三种表现形式:函数声明,函数表达式和函数构造器创建的函数. 本文中主要看看函数表达式及其相关的知识点. 函数表达式 首先,看看函数表达式的表现形式,函数表达式(Function Expression, FE)有下面四个特点: 在代码中须出现在表达式的位置 有可选的函数名称 不会影响变量对象(VO) 在代码执行阶段创建 下面就通过一些例子来看看函数表达式的这四个特点. FE特点分析 例子一:在下面代码中,"add"是一个函数对象

JavaScript中valueOf函数与toString方法的使用

所有JS数据类型都拥有valueOf和toString这两个方法,null除外. JavaScript中valueOf函数方法是返回指定对象的原始值. 使用方法: object.valueOf( ). object是必选参数,是任意固有 JavaScrip对象. JavaScript 的 valueOf() 方法 valueOf() 方法可返回 Boolean 对象的原始值. 用法booleanObject.valueOf(),返回值为booleanObject 的原始布尔值.如果调用该方法的对

前端学习 第六弹: javascript中的函数与闭包

前端学习 第六弹:  javascript中的函数与闭包 当function里嵌套function时,内部的function可以访问外部function里的变量 function foo(x) {    var tmp = 3;    function bar(y) {        alert(x + y + (++tmp));    }    bar(10);}foo(2) 这时无论怎么运行输出的都是16,但这不是闭包 如果我们返回内部函数,内部function会close-over外部fu

JavaScript中valueOf函数与toString方法

基本上,所有JS数据类型都拥有valueOf和toString这两个方法,null除外.它们俩解决javascript值运算与显示的问题,本文将详细介绍,有需要的朋友可以参考下 JavaScript中valueOf函数方法是返回指定对象的原始值.使用方法: object.valueOf( )object是必选项参数是任意固有 JScript 对象. 每个JavaScript固有对象的 valueOf 方法定义不同. 对象 返回值 Array 数组的元素被转换为字符串,这些字符串由逗号分隔,连接在

Javascript中的函数(三)

一:概述 函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解.JavaScript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的.通过函数对象的性质,可以很方便的将一个函数赋值给一个变量或者将函数作为参数传递.在继续讲述之前,先看一下函数的使用语法:function func1(…){…}var func2=function(…){…};var func3=function func4(…){…};var func5=new Function(

JavaScript中的函数表达式及递归

在JavaScript中,函数是个非常重要的对象,函数通常有三种表现形式:函数声明,函数表达式和函数构造器创建的函数. 本文中主要看看函数表达式及其相关的知识点. 函数表达式 首先,看看函数表达式的表现形式,函数表达式(Function Expression, FE)有下面四个特点: 在代码中须出现在表达式的位置 有可选的函数名称 不会影响变量对象(VO) 在代码执行阶段创建 下面就通过一些例子来看看函数表达式的这四个特点. 特点分析 例子一:在下面代码中,"add"是一个函数对象,&

Javascript中的函数(Function)与对象(Object)的关系

今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一个函数对象. 我们先来看最简单的两个代码,也是最容易理解的. function fn(){} var obj = {} console.log(fn instanceof Function)//true console.log(obj instanceof Object)//true console

JavaScript中isPrototypeOf函数

JavaScript中isPrototypeOf函数方法是返回一个布尔值,指出对象是否存在于另一个对象的原型链中.使用方法: object1.isPrototypeOf(object2) 其中object1为必选项.一个对象的实例. object2为必选项.另一个对象,将要检查其原型链. 如果 object2 的 原型链中包含object1,那么JavaScript中isPrototypeOf函数方法返回 true.原型链可以用来在同一个对象类型的不同实例之间共享功能.如果 object2 不是