[记录]javascript中的函数

     2022-03-21     445

关键词:

函数: 函数是一段可以反复调用的代码块。可以传递参数,不同的参数会返回不同的值。 函数声明的三种方法: 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

[记录]javascript中的数组操作

1. 定义方式;   vararr=[];//数组字面量   vararr=newArray();//数组构造函数   数组所有方法都来源于Array.prototype2. 数组的读和写;   arr[num]  //不可以溢出读&nbs 查看详情

javascript 抽象控制台日志记录

】javascript抽象控制台日志记录【英文标题】:javascriptabstractconsolelogging【发布时间】:2011-10-1100:10:22【问题描述】:我想做一个函数,像这样。例如:functionLogger()this.log=function(msg)console.log(msg);我想在函数/模块等中使用它,一切... 查看详情

javascript学习记录day7-高阶函数

JavaScript学习记录day7-高阶函数[TOC]1.什么是高阶函数高阶函数英文叫Higher-orderfunction。那么什么是高阶函数?JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个... 查看详情

将变量保存在具有承诺的函数中的Javascript问题[重复]

】将变量保存在具有承诺的函数中的Javascript问题[重复]【英文标题】:JavascriptIssuewithsavingvariablesinafunctionwithapromise[duplicate]【发布时间】:2022-01-1719:06:29【问题描述】:我正在尝试从谷歌日历中检索事件列表,并且可以正常工作... 查看详情

通过记录函数调用和参数进行实时javascript调试[重复]

】通过记录函数调用和参数进行实时javascript调试[重复]【英文标题】:Livejavascriptdebuggingbyrecordingfunctioncallsandparameters[duplicate]【发布时间】:2011-06-2218:13:54【问题描述】:是否有一个调试系统可以让我记录发生的javascript函数调用... 查看详情

javascript学习记录day5-函数的定义和调用

JavaScript学习记录day5-函数的定义和调用[TOC]1.定义函数在JavaScript中,定义函数的方式如下:functionabs(x){if(x>=0){returnx;}else{return-x;}}上述abs()函数的定义如下:function指出这是一个函数定义;abs是函数的名称;(x)括号内列出函数的... 查看详情

javascript函数原型链知识记录(代码片段)

1构造函数构造函数是专门用于创建对象的functionPerson(myName,myAge)//letobj=newObject();//系统自动添加的//letthis=obj;//系统自动添加的this.name=myName;this.age=myAge;this.say=function()console.log("helloworld");//returnthis;//系统自动添 查看详情

JavaScript 函数拒绝按顺序执行

】JavaScript函数拒绝按顺序执行【英文标题】:JavaScriptfunctionrefusestoexecuteinorder【发布时间】:2017-05-1811:23:38【问题描述】:下面顶部函数中的一个case语句不按顺序进行。目前,它直接进入提示,如果您单击取消,则根本不会听... 查看详情

温故而知新:重新认识javascript的this

温故而知新:重新认识JavaScript的thisthis是JavaScript中的一个关键字,关于讲解this的文章,网上资源很多。这里记录关于this的思考:什么是this、为什么有this。什么是this?this是描述函数执行的记录中的一个属性,只能在函数内部... 查看详情

javascript学习记录day6-函数变量作用域解构赋值与方法

JavaScript学习记录day6-函数变量作用域、解构赋值与方法@(学习)[javascript][TOC]1.作用域在JavaScript中,用var申明的变量实际上是有作用域的。如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该... 查看详情

javascript中的this-笔记

...,找了一些别人的博客看,又重新看了一下《你不知道的JavaScript》,感觉基本上是弄懂了,挑一些重点的地方记录一下,有些地方对我来说书上解释写的不够多,所以自己做下补充以方便理解,有理解错的地方还望指出。 ... 查看详情

是否有关于如何用注释记录 JavaScript 文件的约定?像函数签名、示例等

】是否有关于如何用注释记录JavaScript文件的约定?像函数签名、示例等【英文标题】:IsthereaconventiononhowtodocumentaJavaScriptfilewithcomments?Likefunctionsignatures,examples,etc【发布时间】:2013-09-0223:36:30【问题描述】:Java有Javadoc,Python有doc... 查看详情

Javascript:Promise.all 和 json() 被记录为“不是函数”的问题

】Javascript:Promise.all和json()被记录为“不是函数”的问题【英文标题】:Javascript:issueswithPromise.allandjson()beingloggedas"notafunction"【发布时间】:2021-08-2904:48:24【问题描述】:我在使用“Promise.all”方法时遇到了一些问题。基... 查看详情

javascript中的函数介绍

...输入参数(在函数体中使用),并在执行后返回值。  JavaScript函数也具有这些特性,但它们不仅仅是常规函数。JavaScript函数是对象。你可以查看我曾经写的关于JavaScript对象的文章,里面我提到几乎JavaScript中的所有一切都是... 查看详情

使用 javascript 和 Postman 计算 JSON 数组中的记录

】使用javascript和Postman计算JSON数组中的记录【英文标题】:CountingrecordsinJSONarrayusingjavascriptandPostman【发布时间】:2016-06-2911:05:27【问题描述】:我有一个返回2条记录的控件:"value":["ID":5,"Pupil":1900031265,"Offer":false,,"ID":8,"Pupil":190003... 查看详情

Eloquent Javascript 中的 Javascript 函数

】EloquentJavascript中的Javascript函数【英文标题】:JavascriptfunctioninEloquentJavascript【发布时间】:2014-01-2015:49:43【问题描述】:greaterThanTen(9)如何成为返回函数中的y变量?我的意思是参数(9)如何成为返回函数参数中的y?自从greaterThan... 查看详情

为啥正文中的 javascript 函数优先于头部中的函数?

】为啥正文中的javascript函数优先于头部中的函数?【英文标题】:Whyjavascriptfunctioninthebodytakesprecedenceoverfunctioninthehead?为什么正文中的javascript函数优先于头部中的函数?【发布时间】:2018-06-0304:49:47【问题描述】:我试图了解jav... 查看详情

javascript中的函数

...太精彩了,忍不住要写下来与大家分享。   “javascript函数是对象,所以它们可以像任何其他的值一样被使用。函数可以放在变量,对象和数组中。函数可以被当作参数传递给其他的函数,函数也可以再返回函数。而... 查看详情