首页 > 编程语言 >JavaScript中的函数

JavaScript中的函数

时间:2023-02-10 15:35:40浏览次数:46  
标签:function 函数 JavaScript 常规 计数 length 参数

函数: 一个被设计为执行特定任务的代码块

语法

通过function 关键词定义,后面跟着其函数名称,然后是一对圆括号,圆括号中可以定义一些函数的参数。没有名称的函数呢?
函数名称可以包含字母、数字、下划线、中划线和美元符号(命名规则与变量命名一致)。

  // 声明一个函数
  function fnName(param1, param2, ... ,paramN) {

    // do something
    // return what did

  }

通过上面的方式,就创建了一个名称为fnName的函数,至于执行什么特定任务,就看函数体的内容了,比如需要一个把数字乘二的函数。

  function doubleNum(num) {
    const result = num * 2;
    return result;
  }

调用

调用函数是通过()运算符来实现的
使用函数名可以获得函数的定义,而使用函数名 + () 则可以获得函数的执行结果

    console.log(doubleNum); // log function doubleNum(num) { const result = num * 2; return result }
    console.log(doubleNum(2));  // log 4

除了我们手动通过()运算符调用函数,还可以靠浏览器来执行,那就是绑定DOM事件

函数的属性

属性名 属性值 属性规则
name 函数名称
形参 params 定义函数时,在函数名后()中书写的字符,也就是定义时的参数集合
实参 arguments 调用函数时,在()中书写的字符,也就是执行时的参数集合
length 0 或 若干 从形参里第一个参数为普通参数时开始计数,直到最后一个普通参数

length属性的规则有点绕,我们知道函数的参数有三种,第一种是常规参数 function fn(a, b) {},
第二种是默认参数 function fn(a = 1, b = 2) {},
第三种是剩余参数 function fn(a, b, ...rest) {}
而length的计算,正是从第一个参数为常规参数时开始,到最后一个常规参数,如果第一个参数不是常规参数,length就是0。

   function fn1(a, b, c) {}; // 第一个就是常规参数,开始计数,第二个和第三个也是,所以fn1的length为3

   function fn2(a = 1, b, c) {}; // 第一个是带默认值的参数,不计数,后面即使都是常规参数也不会计数了,所以fn2的length为0

   function fn3(a, b, ...rest) {}; // 第一个和第二个都是常规参数,计数, 第三个是剩余参数,不计数,所以fn3的length为2

之所以介绍一下length主要是之前看到一个面试题 123['toString'].length + 123 的值是多少,看了上面的介绍现在你会了吗?

标签:function,函数,JavaScript,常规,计数,length,参数
From: https://www.cnblogs.com/cyancoco/p/17109104.html

相关文章

  • 【c&c++】C语言:fgets和fgetc函数读取文件
    C语言:fgets和fgetc函数读取文件1、fgetc是filegetchar的缩写,意思是从指定的文件中读取一个字符。fgetc()readsthenextcharacterfromstreamandreturns......
  • c语言填空:用函数判断是否为质数
    #include<stdio.h>//键盘输入任意整数,判断其是否为质数intpdzs(intn){inta;for(a=2;a<n;a++)if(n%2==0)【1】;【2】;}main(){int......
  • 【c&c++】 C语言:access函数的使用
    一、access()函数用来判断用户是否具有访问某个文件的权限(或判断某个文件是否存在).二、需要包含#include<unistd.h>三、参数和返回值intaccess(constchar*path......
  • Promise构造函数
    介绍Promise是ES6引入的异步编程的新解决方案,语法上Promise是一个构造函数,用来封装一步操作并可以获取其成功或失败的结果。1.Promise构造函数:Promise(excutor){}2.P......
  • MySQL视图、存储过程、函数、触发器、定时任务、流程控制总结
    视图的增删改查视图相当于一张只能读的表,不可以修改。当组成视图的表发生数据变化的时候,视图会相对应的进行改变。存储过程的练习创建存储过程:create[ifnotexi......
  • 浏览器中的JavaScript(2)
    2.2注册事件处理程序摘要:有两种事件处理程序的方式。第一种是web早期就有的,及设置作为事件的对象或文档元素的一个属性。第二种方法是把处理程序传给这个元素或对象或元......
  • 箭头函数的一些优雅写法
    最近在写setState总是会遇到函数式写法,如:setData((pre)=>{return{...pre,somedata...}})``但是又实在不喜欢写return,不明白为什么编辑器会认不出来我......
  • Go 语言函数
    函数是基本的代码块,用于执行一个任务。Go语言最少有个main()函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名......
  • js基础笔记学习107-构造函数
     ......
  • js基础笔记学习97-立即执行函数2
     ......