news 2026/4/18 5:38:36

函数补充/数据存储

作者头像

张小明

前端开发工程师

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/15 2:51:48

清华大学等多所顶尖院校联手揭秘智能数据准备革命

这项由清华大学、上海交通大学、微软研究院、麻省理工学院等多所世界顶尖学府和科研机构联合完成的研究发表于2025年1月的《IEEE知识与数据工程汇刊》&#xff0c;论文编号为IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, VOL. 0, NO. 0, JANUARY 2025&#xff0c;详细…

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

苏州大学突破:AI评判官能评估人工智能的记忆管理能力吗?

这项由苏州大学LCM实验室联合中国移动(苏州)共同完成的突破性研究发表于2026年1月&#xff0c;论文编号为arXiv:2601.11969v1。有兴趣深入了解的读者可以通过该编号查询完整论文。 想象一下&#xff0c;当我们看一部长达三小时的电影时&#xff0c;大脑需要不断记忆和管理信息—…

作者头像 李华
网站建设 2026/4/7 12:01:34

近屿智能发现:年终奖背后的IT赛道秘密

大家好&#xff0c;这里是近屿智能。盼望着盼望着&#xff0c;发年终奖的季节终于临近。近期&#xff0c;已有不少人在网络中晒出第一波收获&#xff0c;金额之丰厚&#xff0c;令人羡慕不已。而提起年终奖&#xff0c;互联网大厂始终是话题的焦点。大厂年终奖盘点&#xff1a;…

作者头像 李华
网站建设 2026/4/16 15:39:22

上市传闻再起,“平头哥”将如何搅动AI芯片市场?

文/王慧莹 编辑/子夜 1月23日&#xff0c;阿里巴巴港股开盘站上171港元/股高位&#xff0c;创下去年11月以来的新高。 让阿里股价应声大涨的&#xff0c;是旗下低调了八年的芯片制作业务——平头哥。1月 22 日&#xff0c;彭博社披露&#xff0c;阿里计划将平头哥重组为员工…

作者头像 李华
网站建设 2026/4/16 14:58:42

ARM架构——ADC 模数转换器

目录 一、ADC 基础概念 二、逐次逼近型 ADC 三、关键概念解析 2.1 量程 2.2 分辨率 2.3 精度 2.4 实际应用选择指南 四、IMX6ULL 中的 ADC 模块 4.1 硬件配置 4.2 关键寄存器配置 五、驱动代码实现 5.1 自动校准函数 5.2 初始化函数 5.3 采样与电压转换函数 5.4…

作者头像 李华
网站建设 2026/4/16 17:54:08

【开题答辩全过程】以 酒店管理系统的设计与实现为例,包含答辩的问题和答案

个人简介 一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等 开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。 感谢大家…

作者头像 李华