JavaScript函数基础
2025-04-08 18:16:11 0 举报
AI智能生成
JavaScript函数基础
作者其他创作
大纲/内容
定义函数
函数声明
使用function关键字
语法:function functionNameparameters{ statements }
示例:function add(a, b{ return a + b}
可以在代码中任何位置调用
函数声明提升(hoisting)
在执行代码前,函数声明会被提升到作用域的顶部
允许在声明之前调用函数
参数是可选的
可以没有参数
参数可以有默认值
ES6引入默认参数
示例:function greet(name = "Guest"{ console.log("Hello, " + name + "!"}
函数表达式
将函数赋值给变量
语法:var myFunction = function(parameters{ statements }
示例:var add = function(a, b { return a + b}
可以是匿名的
没有函数名
常用于回调函数
示例:setTimeout(function({ console.log("Hello World!"}, 1000
不会被提升
必须在表达式之后调用
箭头函数
ES6引入的简写形式
使用箭头(=>)代替function关键字
示例:var add =a, b=> a + b
简洁的函数体
如果只有一条语句,可以省略花括号和return关键字
没有自己的this
this值继承自外围作用域
调用函数
使用函数名后跟括号
传入必要的参数
示例:add(3, 4
可以调用多次
函数可以被重复使用
示例:greet("Alice"greet("Bob"
函数作用域
局部变量
在函数内部声明的变量只在函数内部可见
示例:function myFunction({ var localVar = "I'm local"}
全局变量
在函数外部声明的变量在全局作用域中可见
示例:var globalVar = "I'm global"
参数和返回值
参数
函数可以有零个或多个参数
参数是函数的输入
示例:function multiply(a, b{ return a b}
参数是按值传递的
基本类型传递值
修改参数不会影响原始值
对象类型传递引用
修改对象属性会影响原始对象
返回值
使用return语句返回值
可以返回任何类型的值
示例:function square(x{ return x x}
如果没有return语句,返回undefined
示例:function noReturn({ console.log("Hello"}
函数类型
内置函数
JavaScript提供的预定义函数
如:parseInt(), parseFloat(), isNaN(), isFinite(
用户定义函数
开发者根据需求创建的函数
示例:function myCustomFunction({ / / }
匿名函数
没有名称的函数
常用于事件处理和回调
示例:documentgetElementById("myButton").addEventListener("click", function({ / / }
高阶函数
接受其他函数作为参数或返回一个函数的函数
示例:function executeFunction(fn{ return fn(}
函数作用域和闭包
作用域链
函数可以访问其外部作用域的变量
作用域链允许函数访问外部变量
闭包
函数和声明该函数的词法环境的组合
闭包允许函数记住并访问其词法作用域
即使函数在其原始作用域之外执行
作用域和变量提升
var声明的变量有函数作用域或全局作用域
let和const有块级作用域
函数声明和var变量声明会被提升
let和const不会被提升
立即执行函数表达式(IIFE)
自执行的匿名函数
立即运行一次,然后消失
示例:(function({ console.log("Hello World!"})(
创建私有作用域
变量和函数在IIFE内部是私有的
外部无法访问
常用于初始化代码
在脚本加载时执行代码
示例:(function({ var privateVar = "I'm private"})(
0 条评论
下一页