函数声明和函数表达式

函数声明和函数表达式 一、函数声明 语法 function name([param,[,param,[...,param]]]) { [statements] }

name: 函数名
param: 参数
statements: 函数体的语句

被函数声明创造的函数是一个Function 对象,有Function对象的所有属性、方法和行为

二、函数表达式 语法 let function_expression = function [name](param1[,param2[,...,paramN]]) { statements }

name: 函数名,可省略(匿名函数)。函数名只是函数体中的一个本地变量
param: 参数
statements: 函数语句

命名函数表达式。函数名作为函数作用域内的本地变量,可在函数内引用当前函数

let foo = function aa (num) { num ++ if (num < 10) { aa(num) } else { console.log(num, 'end') } } foo(0) // 10 end foo.name //aa let bar = foo bar === foo // true 指向同一地址 typeof aa // undefined 这个aa是变量,未声明so foo === aa // false 同上,aa为变量 区别 函数声明提升

函数声明被提升到了函数定义,可以在函数声明前使用,函数表达式未提升,不可在声明前使用

foo() // aha function foo() { console.log('aha') } bar() // 报错 Uncaught TypeError: bar is not a function var bar = function aa() { console.log('bar') }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwdsx.html