js 函数声明和函数表达式

it2025-12-05  27

今天我们来讲函数声明和函数表达式

主要从函数定义和两种定义的区别,以及块级作用域来讲

一、函数定义

定义函数有两种方式,一种是函数表达式,一种是函数声明式

//函数声明式 function fun(arguments){ //..... } //函数表达式 var fun=function(arguments){ //...... }

二、区别

1、变量提升

只有通过函数声明的函数,才会存在变量提升,函数表达式不存在变量提升

sayhi('zhangsan'); function sayhi(name) { alert('name:'+name); } //不会报错,存在变量提升   //执行顺序   //function sayhi(name)   //{     //alert('name:'+name);   //}   //sathi('zhangsan'); sayhello('lisi'); var syhello=function(name){ alert('name'+name); } //报错,sayhello is not a function

2、函数表达式的函数名可省略

函数声明必须有函数名是函数被调用的基本要求

var mydiv.οnclick=function(){ alert(123) }

 

自执行函数

及常说的匿名函数

(function(a) { console.log(a) })(3) //3,这里的(3)将被作为参数传进去,立即执行

 

三、块级作用域

js中不存在块级作用域,存在函数作用域

for(var i=0;i<10;i++){} console.log(i);//不会报错10 //原因:变量提升

解决方案:利用es6中的语法,let定义

//let定义的变量,存在块级作用域,其作用范围在定义的{}内for(let i=0;i<10;i++){} console.log(i)//10

其实函数的声明和表达式挺简单的,大家要注意一下里面的区别就比较好了。

转载于:https://www.cnblogs.com/epines/p/9144917.html

相关资源:数据结构—成绩单生成器
最新回复(0)