news 2026/4/21 0:45:32

函数补充/数据存储

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
函数补充/数据存储

目录

1 函数的深入理解

1.1 函数的返回值(return)

1.1.1 基本语法

1.1.2 使用要点

1.1.3 返回值类型

1.1.4 流程控制对比

1.2 arguments 对象

1.2.1 特性

1.2.2 应用场景

1.2.3 arguments.callee

1.3 函数方法对比

1.3.1 传参方式

1.3.2 this 指向规则

1.4 函数嵌套调用

1.5 立即执行函数(IIFE)

1.5.1 特点

1.5.2 实现方式

1.5.3 参数传递

2 数据存储机制

2.1 数据类型比较

2.2 原型系统


1 函数的深入理解

1.1 函数的返回值(return)

1.1.1 基本语法
function functionName() { return resultValue; } functionName();
1.1.2 使用要点
  • 函数执行后通过return将结果返回给调用者
  • 函数调用表达式functionName()的值即为return后的值
  • 可通过变量接收返回值:
var result = fn();
  • return会立即终止函数执行
  • 只能返回单个值(如需返回多个值,可使用数组或对象)
  • 可返回任意数据类型
  • 无返回值的return等价于返回undefined
  • 函数若未显式使用return,默认返回undefined
1.1.3 返回值类型
  • 基本类型
  • 引用类型(对象/数组)
  • 函数
1.1.4 流程控制对比
  • break:终止当前循环
  • continue:跳过本次循环
  • return:终止整个函数并返回值

📌 示例:求两数最大值

function getMax(a, b) { return a > b ? a : b; }

1.2 arguments 对象

函数调用时自动接收的两个隐式参数:

  1. 上下文对象this
  2. 实参集合arguments
1.2.1 特性
  • 类数组对象
  • 具有length属性
  • 支持索引访问
  • 无数组方法
1.2.2 应用场景
  • 存储所有传入实参
  • 即使未定义形参也能获取实参
arguments[0]; // 首参数 arguments[1]; // 次参数
1.2.3 arguments.callee
  • 引用当前执行函数(了解即可)

📌 示例1:求任意个数最大值

function getMax() { let max = arguments[0]; for (let i = 1; i < arguments.length; i++) { if (arguments[i] > max) max = arguments[i]; } return max; }

📌 示例2:闰年判断

function isLeapYear(year) { return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; }

💡 面试要点:

  1. 伪数组与真数组的区别
  2. 常见伪数组获取方式:
    • arguments
    • DOM集合(如getElementsByTagName

1.3 函数方法对比

📌 核心区别:

  • 三者均可改变函数this指向
  • call()/apply()立即执行
  • bind()返回新函数
1.3.1 传参方式
  • call(thisObj, arg1, arg2)
  • apply(thisObj, [args])
  • bind(thisObj, arg1, arg2)
1.3.2 this 指向规则
  1. 普通调用:this指向window
  2. 方法调用:this指向调用对象
  3. 构造函数:this指向新实例
  4. call/apply/bind:this指向指定对象

1.4 函数嵌套调用

  • 函数应保持单一职责原则
  • 可通过嵌套实现复杂逻辑
function fn1() { console.log(111); fn2(); console.log('fn1'); } function fn2() { console.log(222); console.log('fn2'); } fn1();

📌 示例:判断2月天数

function checkFebruaryDays() { const year = prompt('输入年份'); alert(isLeapYear(year) ? '闰年2月29天' : '平年2月28天'); }

1.5 立即执行函数(IIFE)

1.5.1 特点
  • 定义后立即执行
  • 通常只执行一次
  • 避免全局污染
1.5.2 实现方式
(function() { // 代码块 })(); (function() { // 代码块 }());
1.5.3 参数传递
(function(a, b) { console.log(`a=${a}, b=${b}`); })(123, 456);

2 数据存储机制

2.1 数据类型比较

数据类型分类
基本类型:string, number, boolean, undefined, null
引用类型:object, function...

let a = 1; let b = 1; console.log(a === b); // true(值比较) let obj1 = { name: "jack" }; let obj2 = { name: "jack" }; console.log(obj1 === obj2); // false(地址比较)

2.2 原型系统

function Person(name, age) { this.name = name; this.age = age; } // 函数的prototype属性(显式原型) Person.prototype.sayHi = function() { console.log("hello"); }; let p1 = new Person("jack", 18); // 实例的__proto__属性(隐式原型) console.log(Person.prototype === p1.__proto__); // true console.log(p1.__proto__.__proto__.toString); // 原型链查找
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 21:04:04

苏州大学突破:新型注意力机制赋能AI语境适应性对话

这项由苏州大学联合百度公司进行的前沿研究发表于2026年1月24日&#xff0c;论文编号为arXiv:2601.17367v1&#xff0c;为大型语言模型的效率优化领域带来了重要突破。想了解完整技术细节的读者可以通过该论文编号查询原文。当我们人类处理信息时&#xff0c;会根据任务的重要性…

作者头像 李华
网站建设 2026/4/20 5:44:05

softmax函数与logits

softmax 函数有一种独特的优雅&#xff1a; softmax(zi)ezi∑jezj\text{softmax}(z_i) \frac{e^{z_i}}{\sum_j e^{z_j}}softmax(zi​)∑j​ezj​ezi​​ 这个函数将原始输出&#xff0c;仅仅是数字、logits&#xff0c;转换成了概率分布。 它最美妙之处在于它处理竞争的方式…

作者头像 李华
网站建设 2026/4/17 19:05:41

Java计算机毕设之基于SpringBoot+Spark的买菜推荐系统设计与实现基于spark的买菜推荐系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/17 9:11:42

探索光伏电池并网运行仿真模型:基于Matlab/Simulink的实践之旅

光伏电池并网运行仿真模型 Matlab/Simulink仿真模型 模拟了光伏电池发电后经过逆变并入三相电网的过程 在如今对清洁能源日益重视的时代&#xff0c;光伏电池作为可持续能源的关键角色&#xff0c;其并网运行的研究至关重要。借助Matlab/Simulink强大的仿真功能&#xff0c;我们…

作者头像 李华
网站建设 2026/4/20 6:13:20

JAVA毕业设计中前后端交互功能的实现方案

一、前言在JAVA毕业设计中&#xff0c;前后端交互是系统开发的核心环节&#xff0c;直接决定了项目的可用性、流畅性和用户体验&#xff0c;也是应届生毕设答辩中的高频考察点。对于计算机相关专业同学而言&#xff0c;无需追求复杂的代码实现&#xff0c;核心是理解前后端交互…

作者头像 李华