函数声明方式
1.函数声明方式
其语法为:
function 函数名(参数1,参数2,...){
//要执行的语句
}
例1:
function sum(num1,num2){
return num1+num2;
}
2.函数表达式方式
其语法为:
var 函数名 = function(参数1,参数2,...){
//要执行的语句
};
例2:
var sum = function(num1,num2){
return num1+num2;
};
例2定义了一个变量并将其初始化为一个函数。function关键字后面没有函数名,这是因为在使用函数表达式定义函数时,没有必要使用函数名——通过变量sum即可引用函数。另外就像声明其他变量一样,使用函数表达式定义函数时,函数体外有分号。
3.使用Function构造函数
Function构造函数可以接收任意数量的参数,最后一个参数为函数体,其他的参数则枚举出新函数的参数。其语法为:
var 变量名 = new Function("参数1","参数2",...,"参数n","函数体");
例3:
var sum = new Function("num1","num2","return num1+num2");
各种定义函数方式的区别
从技术角度上讲,使用Function构造函数定义函数的方式是一个函数表达式,但是不推荐使用这种方式定义函数,原因在于这种方式会导致解析两次代码,影响性能。第一次解析常规的JavaScript代码,第二次解析传入构造函数的字符串。不过,这种语法对于理解“函数是对象,函数名是指针”的概念是非常直观的。
对于函数声明和函数表达式两种定义函数的方式而言,解析器并不是一视同仁的。解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问);对于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行。直接上例子吧。。。
例4
alert(sum(10,10));//20
function sum(num1,num2){
return num1+num2;
}
例4的运行结果为20。为什么呢?因为在代码开始执行之前,解析器就已经通过一个名为函数声明提升(function declaration hoisting)的过程,读取并将函数声明添加到执行环境中。对于代码求值时,js引擎在第一遍会声明函数并将它们放到源代码树的顶部。所以,即使声明函数在调用它的代码后,js引擎也能把函数声明提升到顶部。但是,如果把上面的函数声明改成等价的函数表达式,就会在执行期间导致错误。
例5
alert(sum(10,10));//20
var sum = function(num1,num2){
return num1+num2;
};
例5会运行错误,因为函数位于一个初始化语句中,而不是一个函数声明。换句话说,在执行到函数所在的语句之前,变量sum中不会保存有对函数的引用;而且,第一行代码运行不通过,实际上也不会执行到下一行
分享到:
相关推荐
在JavaScript中,有多种方式来声明函数: 1. `function` 关键字声明:这是最常见的方式,如 `function myFunction() {}`。这种声明方式遵循词法作用域,函数在声明时就已经存在于当前作用域中。 2. 函数表达式:...
这份"JavaScript函数速查手册"涵盖了JavaScript函数的各个方面,旨在帮助开发者快速查找和理解各种函数的用法和特性。 一、函数基础 JavaScript中的函数是可执行的代码块,可以封装成独立的模块,便于复用。函数...
在这篇文章中,我们将深入探讨JavaScript函数的各个方面,包括定义、调用、参数、返回值以及高级用法。 1. **函数定义**: 在JavaScript中,我们可以使用`function`关键字来定义一个函数。例如: ```javascript ...
通过各个部分的文件名,我们可以推断出手册可能按照字母顺序组织了JavaScript中的函数和概念。 1. **函数基础** - JavaScript中的函数是一种可重用的代码块,可以接受参数并返回值。函数定义使用`function`关键字...
JavaScript的核心特性包括弱类型、动态类型、基于原型的对象、第一类函数以及异步处理。 在JavaScript中,`var`、`let` 和 `const` 是声明变量的关键字,它们之间存在一些差异。`var` 在作用域内是函数级的,而 `...
在JavaScript中,函数可以通过两种方式创建:使用function关键字声明函数,以及使用函数字面量方式定义函数。 示例代码展示了声明和使用两种函数的方法。function关键字用于创建命名函数,而函数字面量方式允许创建...
《JavaScript标准参考教程》是一本全面介绍JavaScript编程语言的书籍,其内容涵盖了从基础语法、数据类型、函数到高级特性如数组操作、错误处理、编程风格等各个方面的知识。阮一峰作为作者,将多年的经验和网络资料...
JavaScript语法基于ECMAScript规范,包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、对象、数组等)、运算符(算术、比较、逻辑、位运算等)、流程控制(条件语句、循环结构)以及函数等。...
了解如何声明函数(function关键字)、箭头函数(=>),以及函数表达式(匿名函数、立即执行函数表达式)是至关重要的。 3. **对象**:JavaScript的对象是一种键值对的集合,可以理解为关联数组。掌握如何创建对象...
JavaScript支持函数表达式、函数声明和箭头函数等多种形式。 6. **对象**:对象是JavaScript的重要特性,它可以将数据和功能组合在一起。对象由键值对组成,可以通过点号或方括号语法访问其属性。 7. **数组**:...
书中的内容涵盖了JavaScript的各个方面,包括语法特性、函数式编程、对象模式、错误处理以及代码质量等多个主题。 1. **JavaScript语法特性**:书中详细介绍了JavaScript的基本语法,如变量声明(var, let, const)...
学习JavaScript,首先要理解其基础语法,如变量声明、数据类型(包括基本类型和引用类型)、操作符、控制流程语句(如if、for、while)以及函数的使用。 在函数方面,JavaScript的函数不仅仅是代码块,还可以作为值...
本书通过提供丰富的实例、练习以及对JavaScript语言的深入讲解,使读者能够从基础开始逐步掌握JavaScript编程的各个方面。书中的示例代码可以帮助读者理解语言的构造和应用,而对各种概念的详细解释则可以帮助读者更...
手册通常包含了语言的基础语法、数据类型、控制结构、函数、对象、数组、字符串、正则表达式等各个方面,帮助开发者深入理解并运用JavaScript。 首先,JavaScript的基础语法包括变量声明、赋值和类型转换。变量是...
首先,基础知识点包括JavaScript的数据类型,如字符串、数字、布尔值、数组、对象等,以及变量声明(var、let、const)和作用域。在提供的实例中,你可能会看到如何声明和使用这些数据类型,以及它们在不同场景下的...
在JavaScript的世界里,理解基础语法是至关重要的,包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔、对象、数组、null和undefined)、流程控制(条件语句if...else、switch,循环for、while、do....
3. **箭头函数**:ES6引入了一种更简洁的函数声明方式——箭头函数。 ```javascript const myArrowFunction = () => { console.log("这是一个箭头函数"); }; ``` 4. **函数作为参数**:可以将一个函数作为参数...
这包括变量声明(var、let、const)、数据类型(字符串、数字、布尔、null、undefined、对象、数组、Symbol)、运算符(算术、比较、逻辑、赋值、三元运算符)、流程控制(条件语句、循环语句如if...else、for、...
总的来说,《JavaScript权威指南(第5版)》是一本全面而深入的JavaScript教程,涵盖了从基础到高级的各个方面,对于想要深入理解和精通JavaScript的开发者来说,是一份不可多得的学习资料。通过阅读这本书,读者...
这个"JavaScript经典实用教程"很可能包含了上述各个方面的详细讲解,通过bookinfo.dat和一系列.pdg文件,读者可以逐步学习和掌握JavaScript的各个方面。每个.pdg文件可能对应教程的一个章节或主题,通过阅读和实践,...