首页 > 其他分享 >箭头函数和普通函数的区别

箭头函数和普通函数的区别

时间:2023-08-03 15:38:06浏览次数:27  
标签:函数 区别 箭头 普通 参数 构造函数 name

1、普通函数

定义:编程中常见的一种函数类型,也被称为一般函数或普通方法。它们是一系列执行特定任务的代码块或子程序。普通函数通常包含输入参数和返回值,用于接收输入数据、进行处理,并返回结果。

      // 这里的name是指函数名(自取)
      function name(参数) {
        // 函数体
        return XX;
      }
      //  调用函数
      name(参数)

特点:普通函数可以是匿名函数(就是没有函数名的函数),也可以是具体名函数。

this指向:在普通函数中,this总是指向调用它的对象,如果用作构造函数,this指向创建的对象实例。

2、箭头函数

定义:箭头函数是一种在JavaScript中引入的一种特殊的函数表达式语法,它提供了更简洁的语法形式来定义函数。箭头函数使用箭头符号(=>)来替代传统的函数关键字(function)。

  // 这里的name是指函数名(自取)
      const name = (参数) => {
        // 函数体
        return XX;
      };
      //  调用函数
      name(参数);

特点:箭头函数是匿名函数(就是没有函数名的函数),不能作为构造函数,不能使用new,带有语法糖。

语法糖:

① 形参只有一个:省略小括号

      const name = x => {
        return x++;
      };

② 函数体只有一行:省略{return}

      const name = x => x++;

this指向:箭头函数本身没有this,按照作用域链的就近原则到上级作用域查找,可以捕获其所在上下文的this供自己使用。

3、实参和形参

注:定义函数时的参数是形参;只有调用函数时传入的参数才是实参。

实参:在调用函数的时候真正传进去要进行运算的值(真实的数据)

形参:占位的参数,在封装的函数里面会用到 这个形式参数来代表之后函数真正传进来的值进行运算。

4、区别

① 外形不同:箭头函数使用箭头定义,普通函数中没有;

② 箭头函数都是匿名函数,而普通函数可以是匿名函数,也可以是具体名函数;

③ 普通函数可以用于构造函数,以此创建对象实例;箭头函数不能用于构造函数,不能使用new;

④ 箭头函数的 this 永远指向其上下文的 this,而普通函数的this指向调用它的那个对象。

 

标签:函数,区别,箭头,普通,参数,构造函数,name
From: https://www.cnblogs.com/wanker/p/17603446.html

相关文章

  • AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别
    AddMvc/AddMvcCore/AddControllers等区别1.services.AddMvcCore()只注册运行 Controller/RazorPages 必要的核心服务,确保 Pipeline 程序可动作,其馀如像 DataAnnotationModelValidation、身分验证等服务要自己加挂,除有特殊客制需求,一般不太常用。2.services.AddControl......
  • isinstance()函数可以用于类型检查
    x=5print(isinstance(x,int))#True,x是int类型的对象y="Hello"print(isinstance(y,str))#True,y是str类型的对象z=[1,2,3]print(isinstance(z,list))#True,z是list类型的对象a=3.14print(isinstance(a,(int,float)))#True,a是int或float类型的......
  • 1.【linux】 下根目录,家目录区别
    1.【linux】下根目录,家目录区别家目录是在根目录里面。1.家目录一般普通用户,家目录是/home/用户名root用户,家目录是/rootroot登录系统,执行如下命令进入root的家目录cd/cd~进入家目录后执行如下命令获取具体路径pwd2.用户切换1.暂时的(root权限)①需要使用root权限......
  • 中间人攻击 http与https的区别
    由一个视频引发的问题 https://v.douyin.com/iJJ9n2r7/ 中间人攻击  由于HTTP本身不具备加密的功能,所以也无法做到对通信整体(使用HTTP协议通信的请求和相应的内容)进行加密,即HTTP报文使用明文(未经过加密的报文)方式发送。(对应于信件使用的文字不加密)抓包:可以得到cookie......
  • JavaScript ES5模块导入ES6区别
    JavaScriptES5模块导入ES6区别   ES6引入了原生的模块系统,使用import和export关键字来导入和导出模块。ES6模块系统相比ES5的导入方法具有以下几个区别: 1.语法不同:-ES5:使用Require.js或CommonJS,通过`require`方法导入模块。-ES6:使用import关键字导入模块。 2......
  • #yyds干货盘点#map()和flatMap()的区别?
    在Java8中,map()和flatMap()是StreamAPI中的两个常用方法,用于对流中的元素进行转换操作。它们的主要区别在于它们的返回类型和转换方式。map()方法:map()方法将流中的每个元素都映射到另一个对象。它接收一个函数作为参数,该函数将当前流中的每个元素转换为另一个对象。map()方法的......
  • Qt中QString的arg()函数
    Qt中QString的arg()函数使用记录大致有如下3种用法:(1)arg(str1,str2,str3)其中一次可替换参数个数最多为9个,举例如下 输出为"123456789%10%11"要想全部替换,只需要接在后面继续使用一个.arg(“10”,“11”)即可也就是第二种方式(2)arg(str1).arg(str2).arg(s......
  • python教程 入门学习笔记 第5天 format函数拼接 两种打印方法 转义字符
    2)format函数拼接#format函数拼接s1="统计={0}{1}{2}".format("张三","工资",3400)#占位符{}中可以填写数字编号print(s1)s2="统计={}{}{}".format("李四","工资",4500)#用占位符{}拼接,占位符要与字符串数量一致print(s2)s3="统计={a}{b}{c}".forma......
  • HTML5与HTML4的区别,新增了哪些元素
    注:部分格式编写存在<>封闭错误,只为在博客中显示,并非正确写法。1.  HTML5推出的理由解决Web上存在的问题:Web浏览器间的兼容性低:在一个浏览器中可以运行的HTML、Css、Javascript,在另一个浏览器中不能运行。原因:各浏览器规范不统一,没有被标准化。解决方案:使各浏览器的功能符......
  • hidl/aidl接口的对比区别
    hidl/aidl接口的对比区别:https://www.cnblogs.com/blankJi/p/16673665.html Android中的HIDL(HALInterfaceDefinitionLanguage)和AIDL(AndroidInterfaceDefinitionLanguage)是用于定义不同层次之间的接口的工。它们在功能和使用方式上有些区别。HIDL(HALInterfaceDefinitio......