---恢复内容开始---
函数Function:
函数实际上是对象,每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法,函数名实际上是一个指向函数的指针,不会与某个函数绑定;
函数定义的三种方法:
1、函数声明
function sum(num1,num2){ return num1 + num2; }
2.函数表达式,又叫函数字面量
var sum = function(num1,num2){ return num1 + num2 }
3.函数构造法,参数必须加引号
var sum3=new Function(‘n1‘,‘n2‘,‘return n1+n2‘); console.log(sum3(2,3));//5
三者区别:解析器会先读取函数声明,并使其在执行任何代码之前可以访问;而函数表达式则必须等到解析器执行到它所在的代码行才会真正被解释执行,并且函数表达式末尾有一个分号,就像声明其他变量一样,第三种方法一般不推荐,因为这种语法会导致解析两次代码(第一次解析常规ECMAScript代码,第二次是解析传入构造函数中的字符串),从而影响性能。
<script> alert(sum(2,3)) function sum(sum1,sum2){ return sum1 + sum2; } </script> result:5 <script> alert(sum(2,3)) var sum = function(sum1,sum2){ return sum1 + sum2; } <script> result:报错---sum is not a function <script> var sum = function(sum1,sum2){ return sum1 + sum2; } alert(sum(2,3)) </script>retult:5
备注:由于函数名仅仅是指向函数的指针,所以一个函数可能会有多个名字
---恢复内容结束---
函数Function:
函数实际上是对象,每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法,函数名实际上是一个指向函数的指针,不会与某个函数绑定;
函数定义的三种方法:
1、函数声明
function sum(num1,num2){ return num1 + num2; }
2.函数表达式,又叫函数字面量
var sum = function(num1,num2){ return num1 + num2 }
3.函数构造法,参数必须加引号
var sum3=new Function(‘n1‘,‘n2‘,‘return n1+n2‘); console.log(sum3(2,3));//5
三者区别:解析器会先读取函数声明,并使其在执行任何代码之前可以访问;而函数表达式则必须等到解析器执行到它所在的代码行才会真正被解释执行,并且函数表达式末尾有一个分号,就像声明其他变量一样,第三种方法一般不推荐,因为这种语法会导致解析两次代码(第一次解析常规ECMAScript代码,第二次是解析传入构造函数中的字符串),从而影响性能。
<script> alert(sum(2,3)) function sum(sum1,sum2){ return sum1 + sum2; } </script> result:5 <script> alert(sum(2,3)) var sum = function(sum1,sum2){ return sum1 + sum2; } <script> result:报错---sum is not a function <script> var sum = function(sum1,sum2){ return sum1 + sum2; } alert(sum(2,3)) </script>retult:5
备注:由于函数名仅仅是指向函数的指针,所以一个函数可能会有多个名字
时间: 2024-12-24 05:58:53