当前位置: 首页 > news >正文

JavaScript函数基础

开始之前

我是一名JAVA后端开发,现在我刚开始学JavaScript。老实说,函数这个东西一开始真把我绕晕了。JavaScript和Java还是有着显著的差异,什么function、箭头,感觉一堆名词扑面而来。

但现在回头看,其实函数就是把一些代码打包起来,需要的时候拿出来用。就这么简单。

今天我想用最简单的方式,记录我怎么学会JS函数的过程。

第一步:最基础的函数写法

函数声明

这是我学的第一种写法,也是最好理解的,也是和Java当中的方法最为类似的:

function sayHello() {console.log('你好!');
}sayHello(); // 调用函数,输出:你好!

CFAD643D-9A57-41A9-90DE-92823629C69C.png

就三步:

  1. function关键字

  2. 给函数起个名字(这里叫sayHello)

  3. 大括号里写要执行的代码

我的理解: 就像给一段代码起个名字,以后喊这个名字,代码就跑起来了。

带参数的函数

function greet(name) {console.log('你好,' + name);
}greet('小明'); // 你好,小明
greet('小红'); // 你好,小红

8C0A4A9D-74F0-4F73-89F5-C7F8D4461350.png

name就是参数,像一个盒子,你可以往里面放不同的东西。

函数的返回值

function add(a, b) {return a + b;
}let result = add(3, 5);
console.log(result); // 8

没有return,函数就只是做事;有return,函数做完事还会给你一个结果。

第二步:另一种写法 - 函数表达式

学了一段时间,我看到了这种写法:

const sayBye = function() {console.log('再见!');
};sayBye(); // 再见!

和第一种有什么区别?我的理解是:

  • 第一种是直接声明一个函数

  • 第二种是把函数赋值给一个变量

功能是一样的,只是写法不同。我现在一般用const,因为不想函数被意外改掉。

第三步:箭头函数(看起来很酷的那种且简洁)

这个是我学得最慢的,因为符号太抽象了,这里和和Java lambda表达式有很大的差异。

const multiply = (a, b) => {return a * b;
};console.log(multiply(4, 5)); // 20

那个=>就是箭头,表示"这是一个函数"。

更神奇的是,如果只有一行代码,还可以简写:

const add = (a, b) => a + b;console.log("2 + 3 =", add(2, 3));

1C094F24-8EB1-4AD6-905F-96EDE197A326.png

我的学习经验: 刚开始别管箭头函数(箭头就相当于return),先把普通函数写熟。写多了,自然就会觉得箭头函数很方便。

实际用一下:做个简单的计算器

学了这些,我给自己出了个题:做一个简单的计算器。

function calculator(num1, num2, operation) {if (operation === 'add') {return num1 + num2;} else if (operation === 'subtract') {return num1 - num2;} else if (operation === 'multiply') {return num1 * num2;} else if (operation === 'divide') {return num1 / num2;}
}console.log(calculator(10, 5, 'add'));      // 15
console.log(calculator(10, 5, 'subtract')); // 5
console.log(calculator(10, 5, 'multiply')); // 50
console.log(calculator(10, 5, 'divide'));   // 2

写完这个,我突然理解了函数的意义:把重复的逻辑写一次,到处用

我总结的学习方法

我刚学的时候就是死磕教程,看到什么代码就敲什么代码。虽然有点枯燥,但手敲多了真的就有感觉了。现在回想起来,这段时间虽然不懂原理,但至少把语法记住了。

http://www.dtcms.com/a/516013.html

相关文章:

  • 实木餐桌椅移动网站建设网站建设定制开发
  • 邯郸网站设计价格特色产品推广方案
  • vscode安装、部署和小技巧 记录
  • 简单常见的勒索病毒加密
  • docker基本知识
  • 什么网站服务器好wordpress如何添加目录菜单
  • 12、【Ubuntu】【VSCode】VSCode 断联问题分析:getent 命令(二)
  • RHCSA作业2
  • 如何才能提升视频的「听觉质感」
  • 江西省赣州电子商务网站怎么做seo
  • 视频多的网站建设科技设计公司网站模板下载
  • 1.北京三维天地公司-实施实习生
  • c#笔记之事件
  • [RabbitMQ] 最新版本深度解析:4.0+ 新特性、性能飞跃与生产实践(2025 年更新)
  • 2026 AI可见性:构建未来-proof策略的顶级工具
  • 使用子进程实现 C++ 与 Python 交互式控制台
  • 网站建设登录界面代码上海app开发费用
  • 复习下线性代数,使用向量平移拼接两段线
  • 南通网站定制哪家好北京西站附近景点
  • 网站建设大怎么做网页自我介绍
  • 光子精密3D工业相机:赋能国产“2D+3D”精密测量微米级迭代
  • HTTP 三次握手最终状态变更的时机
  • ROS跑ORB-SLAM3遇见的问题总结
  • 晋中路桥建设集团有限公司网站网站开发费用科目
  • kubernetes K8s的监控系统Prometheus 酷炫整体容器监控(三)
  • 记录一次 K8s 环境中 DNS 解析延迟导致 WebClient 请求失败的排查过程
  • 美的网站建设水平swot分析陕西网站建设的目的
  • 安科瑞能源物联网云平台光伏防逆流解决方案
  • Vivado调用FFT IP核进行数据频谱分析
  • 数据结构之顺序表:一款优秀的顺序存储结构