JavaScript函数的多种写法
本文主要介绍了JavaScript函数的多种写法,下面是小编为大家整理的JavaScript函数的多种写法,欢迎参考~
函数声明和表达式(旧方法):
最早的函数定义形式就是函数声明和函数表达式。前者是最初设计的一部分(1995)并出现在第一个版本的规范(1997年)中,后者是在第三个版本(1999年)引入的。我们可以从这些规范中提取三种不同的定义形式:
要注意的是匿名函数表达式可能仍然有一个“名称”。
Function构造器
当我们在讨论一种语言的“函数API”的时候,就已经开始讨论Function构造器。函数声明的语法形式可以被解释为函数构造器的API的“文字”形式。Function构造器为定义函数提供了一种方法:通过N个字符串参数指定函数参数和函数主体,(如下面的例子)最后一个字符串参数始终是函数主体(需要指出的是,这是一种动态求值形式,会有潜在的安全风险)。对于大多数情况来说,这种形式并不适合,因此它的使用非常稀少——但是自从第一个版本的`ECMAScript以来,它就一直存在在JavaScript中了。
新方法:
自从ES2015推出以来,已经引入了几种新的语法形式。这些形式的变化是巨大的!
not-so-anonymous函数声明
这是一种新的匿名函数声明形式,如果你曾用过ES Modules,应该清楚这种语法。虽然它可能看起来与匿名函数表达式非常相似,但它实际上有一个默认名称,即“default”
这个“default”本身并不是有效的标识符,并且没有绑定在该匿名函数上。
方法定义:
对于下面这个例子,大家应该能很快发现它定义了匿名和命名函数表达式作为属性的值。注意,这些不是不同的语法形式。它们是之前讨论过的函数表达式的示例,是在初始对象时编写的。这种形式最初是在ES3中引入的。
在ES5中引入了访问器属性定义:
从ES2015开始,JavaScript提供了一个简单的语法来定义方法,这种语法包括文字属性名称和计算属性名称形式,以及访问器形式:
我们还可以使用这些新形式作为类声明和表达式中的原型方法的定义:
和定义静态方法:
生成器:
生成器有一种特殊的语法,除了箭头函数和定义setter / getter方法的时候不能添加之外,可以被添加在其他所有语法形式中。我们可以用其生成函数声明、表达式、定义,甚至构造函数。让我们把它们列出来:
-
java构造函数调用技巧
Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,...
-
40个Java多线程问题总结
Java多线程是什么Java提供的并发(同时、独立)处理多个任务的机制。多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信更轻量级。依我的理解,Java多线程完全就是为了提高CPU的利用率。Java的线程有4种状态,新建(New)、运行(Runnabl...
-
Java语言的学习技巧
知识改变命运,对于Java程序员来说,技术不断更新,只有及时充电,才能不被市场淘汰。今天小编为大家分享Java程序员学习的6个小技巧。一定要看书现在学习Java变得比以前容易多了,除了有大量的视频教程外,还有专业的java培训机构,这都使学习变得更加傻瓜化,然而我要说的是,J...
-
编写更好的Java单元测试的7个技巧
测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。虽然有三种主要类型的软件测试:单元测试,功能测试和集成测试,但是在这篇博文中,我们将讨论开发人员...