news 2026/4/2 18:01:25

函数补充/数据存储

作者头像

张小明

前端开发工程师

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/1 21:36:38

永磁无刷电机(PMSM)Simulink模型搭建与解析

永磁无刷电机&#xff0c;PMSM&#xff0c;simulink模型 仿真模型包含具有 2 级 SPWM 的电流控制 PMSM 驱动器和具有直流总线系统的 3 相通用转换器。 电机的数学模型是利用帕克变换矩阵建立的&#xff0c;将三相变量 abc 变换为稳态直流信号 dq0。 PMSM 驱动系统具有双回路&am…

作者头像 李华
网站建设 2026/3/30 17:52:58

《把脉行业与技术趋势》-109-生活中好运大小的本质是:你的成功能给多少人带来好处,人数越多、给别人的好处越大,你的好运的概率就越大。揭示了“好运”背后的系统性逻辑。

“生活中好运大小的本质是&#xff1a;你的成功能给多少人带来好处&#xff0c;人数越多、给别人的好处越大&#xff0c;你的好运的概率就越大。”极具智慧&#xff0c;它超越了对“运气”的浅层理解&#xff0c;触及了人生成功与社会互动的深层规律。这不是一句鸡汤&#xff0…

作者头像 李华
网站建设 2026/3/15 15:41:52

简单理解:LPI 模式 嵌入式 / 网络开发核心解析

LPI&#xff08;Low Power Idle&#xff0c;低功耗空闲模式&#xff09;是以太网 PHY 芯片&#xff08;如 LAN8720、DP83848、RTL8201&#xff09;的核心低功耗机制&#xff0c;专为嵌入式设备&#xff08;如物联网网关、工业传感器、便携网络设备&#xff09;设计&#xff0c;…

作者头像 李华
网站建设 2026/4/2 1:34:44

DeepSeek写的论文AI率98%怎么办?这几款工具亲测有效

DeepSeek写的论文AI率98%怎么办&#xff1f;这几款工具亲测有效 98%&#xff0c;这是我用DeepSeek写的论文在知网测出来的AI率。当时我整个人都傻了。 花了一个通宵让DeepSeek帮我写论文&#xff0c;本以为能省点事&#xff0c;结果查完AI率直接寄了。导师看了一眼检测报告&a…

作者头像 李华
网站建设 2026/3/28 3:38:21

数据中心高性能互连:Amphenol ProLabs 光纤解决方案

当前数据中心的网络架构越来越依赖高速、高可靠的光互连解决方案&#xff0c;尤其是光缆组件在服务器、交换机、存储设备之间的链接部分&#xff0c;它直接决定了带宽、误码率、扩展性与长期运行稳定性。Amphenol ProLabs 作为 Amphenol 集团下专注于互连与光网络解决方案的品牌…

作者头像 李华