HTML+JavaScript-03

JavaScript函数

定义函数的格式

JavaScript 函数是通过 function 关键词定义的。

function sum(a, b){//函数体return a + b;//返回值为a、b的和
}

函数的调用

调用函数时直接书写函数名即可

function show(){alert("函数show被调用");
}
show();

函数的相互调用

function fun1(){fun2();console.log("函数1");
}
function fun2(){fun3();console.log("函数2");
}
function fun3(){console.log("函数3");
}
fun1();

image-20240122155902322

形参和实参

定义函数时参数为形参

调用函数传入的参数为实参

函数调用流程是实参传值给形参供函数体使用

function sum(a, b){//a和b都是形参return a + b;
}
//调用函数
sum(1, 99);//1和99是实参

实参的数量以及数据类型要和形参一致,若传入实参过多,则函数不接收多余的部分,若传入实参过少,则会出现undefined

函数的返回值

return 返回值;

return有终止函数的作用

案例-1-使用函数实现判定某个数字是不是素数是返回true不是返回false

// 使用函数实现判定某个数字是不是素数是返回true不是返回false
function primeNumber(number) {if (number <= 1) {return false;}for (let i = 2; i < number; i++) {if (number % i == 0) {return false;}}return true;
}
let B = Number(prompt("输入一个数"));
alert(primeNumber(B));

案例-048

案例-2-编写函教实现去除任意数组中重复的值

// 编写函教实现去除任意数组中重复的值
function removeValue(params) {for (let i = 0; i <= params.length - 1; i++) {for (let j = params.length; j >= i + 1; j--) {if (params[i] == params[j]) {params.splice(j, 1);}}}// alert(params);return params;
}
const A = [1, 1, 1, 3, 3, 3, 1, 2, 4, 7, 5, 4];
console.log(removeValue(A));

image-20240122161922935

案例-3-写一个函数,输入两个年份,用来计算两个年之间的闰年有多少个。

// 写一个函数,输入两个年份,用来计算两个年之间的闰年有多少个。
function leapNumber(yearA, yearB) {let max = yearA > yearB ? yearA : yearB;let min = yearA < yearB ? yearA : yearB;let num = 0;for (min; min < max; min++) {if ((min % 4 == 0 && min % 100 != 0) || min % 400 == 0) {num++;}}document.write(yearA + "年到" + yearB + "年有闰年" + num + "个");
}
let A = +prompt("请输入第一个年份");
let B = +prompt("请输入第二个年份");
leapNumber(A, B);

案例-049

案例-4-定义一个方法用来检测数组里面是否有某一个值

// 定义一个方法用来检测数组里面是否有某一个值// 循环查找数组中的数
function haveNum(array, params) {// const array = [1, 2, 3, 4, 5, 6, 7, 8, 11, 22, 33, 44, 55, 66, 777];for (let i = 0; i <= array.length - 1; i++) {if (params == array[i]) {alert(array + "数组中有" + params);break;}if (i == array.length - 1 && params != array[array.length]) {alert("false");break;}}
}// 输入长度为arrLength的数组
function arr(arrLength) {const array = [];for (let j = 0; j <= arrLength - 1; j++) {array.push(prompt("输入第数组中的" + (j + 1) + "个数"));}return array;
};let length = +prompt("输入数组长度");
const array = arr(length);
alert("数组"+array);let num = Number(prompt("输入你要查找的数"));
haveNum(array, num);

案例-050

案例-5-求数组当中的最大值并返回

// 编写一个函数求数组当中的最大值并返回 如果数组为空返回undefined
function arrMax(array) {let max = 0;if (array.length == 0) {alert(undefined);} else {for (let i = 0; i <= array.length - 1; i++) {if (array[i] > max) {max = array[i];}}// alert("max=" + max);return max;}
}
const array = [14, 4, 3, 15, 77, 34, 55, 998, 102, 1111110];
alert(arrMax(array));

image-20240122163353372

案例-6-双色球

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>双色球</title>
</head><body><script>function getReds() {const reds = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12, 13, 14, 15, 16, 17, 18, 19, 20,21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33];const newReds = [];for (let i = 0; i < 6; i++) {let index = parseInt(Math.random() * reds.length);// newReds.push(reds[index]);flag = true;for (let j = newReds.length; j >= 0; j--) {if (newReds[j] == reds[index]) {i--;flag = false;break;}}if (flag) {newReds[i] = reds[index];}}return newReds;}function getBlue() {const blues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12, 13, 14, 15, 16];let index = parseInt(Math.random() * blues.length);return blues[index];}function wanning() {const a = getReds();const b = getBlue();a.push(b)return a;}function contrast(wanningNum, myNum) {let redNum = 0;let blueNum = 0;for (let i = 0; i <= wanningNum.length - 1; i++) {for (let j = 0; j < myNum.length - 1; j++) {if (wanning[i] == myNum[j]) {redNum++;}}}if (wanningNum[wanningNum.length - 1] == myNum[myNum.length - 1]) {blueNum++;}if (redNum == 6 && blueNum == 1) {return "一等奖";} else if (redNum == 6 && blueNum == 0) {return "二等奖";} else if (redNum == 5 && blueNum == 1) {return "三等奖";} else if (redNum == 5 || redNum == 4 && blueNum == 1) {return "四等奖";} else if (redNum == 4 || redNum == 3 && blueNum == 1) {return "五等奖";} else if (blueNum == 1 || (redNum == 1 && blueNum == 1) || (redNum == 2 && blueNum == 1)) {return "六等奖";} else {return "未中奖";}}// document.write(getReds());// document.write("<br/>");// document.write(getBlue());// document.write("<br/>");// document.write(wanning());const A = wanning();document.write(A);document.write("<br/>");const B = wanning();document.write(B);document.write("<br/>");document.write(contrast(A, B));</script>
</body></html>

案例-051

JavaScript 对象

真实生活中的对象,属性和方法

真实生活中,一辆汽车是一个对象。

对象有它的属性,如重量和颜色等,方法有启动停止等:

image-20240122163859457

所有汽车都有这些属性,但是每款车的属性都不尽相同。

所有汽车都拥有这些方法,但是它们被执行的时间都不尽相同。

JavaScript 对象

对象也是一个变量,但对象可以包含多个值(多个变量),每个值以 name:value 对呈现。

var car = {name:"丰田",model:"500",weight:"850kg",color:"white"
};

定义JavaScript对象时可以跨越多行,不同属性间用,隔开。

也可以用函数来创建对象性的属性,然后调用函数创建对象。

function Person(name, age, sex) {this.name = name;this.age = age;this.sex = sex;
}
var tom = new Person("tom", 11, "男");
console.log(tom);

image-20240122165636225

可以再创建一个Person对象

var jerry = new Person("jerry", 14, "女");

查找jerry的age属性

jerry.age

也可以对Person类的对象新添加属性

tom.hobby = "篮球";

可以看到只对tom添加了该属性,jerry的属性并没有增加。

image-20240122171633226

删除属性

delete tom.hobby;
delete tom.age;
console.log(tom);

image-20240122172036401

this

this在一个方法中指调用的对象(即谁调用这个函数,函数中的this就指向谁)

比较对象

在 JavaScript 中 objects 是一种引用类型。两个独立声明的对象永远也不会相等,即使他们有相同的属性,只有在比较一个对象和这个对象的引用时,才会返回 true.

// 两个变量,两个具有同样的属性、但不相同的对象
var fruit = { name: "apple" };
var fruitbear = { name: "apple" };fruit == fruitbear; // return false
fruit === fruitbear; // return false

备注: “===” 运算符用来检查数值是否相等:1 === "1"返回 false,而 1 == “1” 返回 true

// 两个变量,同一个对象
var fruit = { name: "apple" };
var fruitbear = fruit; // 将 fruit 的对象引用 (reference) 赋值给 fruitbear
// 也称为将 fruitbear“指向”fruit 对象
// fruit 与 fruitbear 都指向同样的对象
fruit == fruitbear; // return true
fruit === fruitbear; // return true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Docker部署Apache Superset结合内网穿透实现远程访问本地服务

文章目录 前言1. 使用Docker部署Apache Superset1.1 第一步安装docker 、docker compose1.2 克隆superset代码到本地并使用docker compose启动 2. 安装cpolar内网穿透&#xff0c;实现公网访问3. 设置固定连接公网地址 前言 Superset是一款由中国知名科技公司开源的“现代化的…

PSEUDO-LIDAR++:自动驾驶中 3D 目标检测的精确深度

论文地址&#xff1a;PSEUDO-LIDAR: ACCURATE DEPTH FOR 3D OBJECT DETECTION IN AUTONOMOUS DRIVING 论文代码&#xff1a;https://github.com/mileyan/Pseudo_Lidar_V2 摘要 3D 检测汽车和行人等物体在自动驾驶中发挥着不可或缺的作用。现有方法很大程度上依赖昂贵的激光雷…

华为数通方向HCIP-DataCom H12-831题库(判断题:81-100)

第81题 基本QinQ能根据业务种类选择外层Tag封装的方式 正确 错误 答案: 错误 解析: 基本QinQ是基于端口方式实现的,不能根据业务种类选择外层TAG封装的方式。 第82题 display interface GE0/0/0-次,发现Total Error计数(该接口物理层的错误报文总数目)不是此时可以断定当前…

登录页面(附源码)

特色&#xff1a; 点击登录之后卡片翻转效果 话不多说&#xff0c;看展示。 还在等什么&#xff0c;赶快白嫖起来吧 HTML文件 <div id"window" style"display: none"><div class"page page-front"><div class"page-content&…

SCCB接口

文章目录 概述引脚传输时序起始/结束信号三线模式两线模式 传输周期3阶段写传输周期2阶段写传输周期2阶段读传输周期阶段一 ID Address阶段二 子地址/读数据阶段三 写数据 SCCB与IIC区别未完待续(还有代码&#xff09;... 概述 SCCB&#xff08;Serial Camera Control Bus&…

aspose-cells-20.7.jar 去除水印及次数限制

1.使用 jd-gui.exe 反编译查看&#xff0c;直接搜索 License 1.修改 public static boolean isLicenseSet() {return (a ! null);}改成 public static boolean isLicenseSet() {return true;}2.修改 public void setLicense(InputStream stream) {Document document null;if (…

【EI会议征稿通知】2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)

2024年第四届人工智能、自动化与高性能计算国际会议&#xff08;AIAHPC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing 2024第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)将于20…

SpringMVC:拦截器

一般我们会做一些统一的操作这个时候我们需要使用springmvc提供的拦截器&#xff0c;例如token的验证&#xff0c;字段必填的操作&#xff0c;接口超时判断&#xff0c;签名验证&#xff0c;字段加密等操作&#xff0c;所以我们需要了解执行先后顺序。 我们来简单介绍下实现过程…

第6章-路由器、交换机及其操作系统介绍

目录 1. 路由器与交换机的作用与特点 1.1. 路由器 1.2. 交换机 1.3. 路由交换 2. H3C路由器与交换机介绍 3. H3C网络设备操作系统Comware 1. 路由器与交换机的作用与特点 1.1. 路由器 1、定义&#xff1a;路由器&#xff08;Router&#xff09;是连接两个或多个网络的硬…

穿越Flink的时间隧道:解锁实时数据之窗,掌握流处理之巅

目录 Flink中的时间和窗口 1时间语义 1.1Flink中的时间语义 1.1.1处理时间 1.1.2事件时间 1.2那种时间语义更重要 2 水位线 2.1 事件时间和窗口 2.2 什么是水位线 2.3 如何生成水位线 2.3.1使用WatermarkGenerator 2.3.2使用SourceFunction 2.4 水位线的传递 2.5 水位…

R语言中数据框是什么?

在数据分析过程中离不开表格&#xff0c;通常使用Excel来做数据分析&#xff0c;行和列用来存放不同的数据&#xff0c;表格能清晰直观的展示数据&#xff0c;而且可以将多张表组合联系起来&#xff0c;这种不约而同的规范也同样适用于R语言。 R语言中的数据框&#xff08;Data…

2023年度环境电器行业数据分析(洗地机、扫地机器人、吸尘器等)

在家电行业整体消费不振的环境下&#xff0c;环境电器市场也受到影响&#xff0c;2023年度市场大盘销售呈下滑趋势。根据鲸参谋平台的数据显示&#xff0c;2023年京东平台环境电器市场的销量累计约7100万&#xff0c;同比下滑约12%&#xff1b;销售额约360亿&#xff0c;同比下…

【图形学】实现二维几何变换

二维点类 class CPoint2 { public:CPoint2();CPoint2(double x, double y);~CPoint2();friend CPoint2 operator (const CPoint2& p0, const CPoint2& p1);friend CPoint2 operator -(const CPoint2& p0, const CPoint2& p1);friend CPoint2 operator *(const…

云原生 - 微信小程序 COS 对象存储图片缓存强制更新解决方案

问题描述 遇到一个这样的情况&#xff1a;在微信小程序里图片缓存十分麻烦&#xff0c;网上很多说在腾讯云里的 COS 存储对象服务里设置对应的图片缓存&#xff08;Header 头 Cache-Contorl&#xff09;&#xff0c;说实话真不好用&#xff0c;一会儿生效&#xff0c;一会儿没…

excel学习1

直接ctrl cctrl v会报错位移选择粘贴时用123那个数字粘贴而不是ctrl V 只要结果不要公式 上面复制的为数值这里是复制的公式他们两个不一样 这个方法太麻烦了直接用格式刷&#xff0c;选择一个区域一个单元格&#xff0c;不要选择多个一刷就出来了 第一个计算后向下拖就行了&…

FastDFS分布式文件存储

为什么会有分布式文件系统&#xff1f; 分布式文件系统是面对互联网的需求而产生。因为互联网时代要对海量数据进行存储。很显然靠简单的增加硬盘个数已经满足不了我们的要求。因为硬盘传输速度有限但是数据在急剧增长&#xff0c;另外我们还要要做好数据备份、数据安全等。采用…

Git的安装与配置

目录 前言 Linux-centos&#xff1a;下安装 Linux_ubuntu下安装 创建Git本地仓库 配置用户名和Email 前言 Git是一种版本控制器&#xff0c;能够让我们了解一个文件的历史&#xff0c;以及它的发展过程。通俗的将就是可以记录一个工程的每一次改动和版本迭代的一个管理系统…

【vscode】6、调试 shell

文章目录 经常在 IDE 下使用 高级语言后&#xff0c;往往并不习惯 shell 编程&#xff0c;因为没有酷炫的界面。但现在 vscode 可以很方便的调试 shell 脚本。 配置方法如下&#xff1a; vscode 下载 Bash Debug 插件 mac 升级 bash 版本&#xff08;因为此 vscode 插件需要 b…

蓝桥杯重要知识点和赛题直通车

<蓝桥杯软件赛>零基础备赛20周 第 1周(2023-10-23): 蓝桥杯软件赛介绍官方链接零基础能得奖吗&#xff1f; 第 2周(2023-10-30): 常考知识点蓝桥杯怎么判题备赛计划 第 3周(2023-11-06): 填空题&#xff08;分数少但越来越不好做&#xff09; 第 4周(2023-11-13): &#…

更改wpf原始默认按钮的样式

样式 代码 <Window x:Class"WpfApp4.Window1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/2008…