数组、冒泡排序、函数、作用域、对象、Math

数组

1.定义数组:
a)通过字面量的方式定义数组

let ary=[1,2,3,4]

b)通过定义构造函数的方式定义数组:

let 数组名=new Array(,,);
数组的操作方式

a)增

//在数组末尾添加值
arr.push(新增的内容)
//在数组的开始添加值
arr.unshift(新增的内容)

b)删

//删除数组末尾的值
arr.pop()
//删除数组首部的值
arr.shift()
//删除指定的值
arr.splice(操作的下标,删除的个数)

排序

冒泡排序(js提供的实现方式)
//对数组进行冒泡排序:js提供了一个方法 sort()
//1.升序排列写法
sort(function(a,b){
return a-b;})
//2.降序排列写法
arr。sort(function(a,b){
return b-a;})

函数

注意点:+prompt(),prompt前面加➕,变字符串类型为数值

//定义一个函数
//行参可以直接在函数名()中声明,前面不用加let关键字
//调用函数的时候,给实参赋值即可
//形参的本质上就是一个变量,所以形参的命名完全可以按照变量的命名规则设置(叫什么都可以)
functtion 函数名(形参,形参){功能};
函数返回值
//如果希望在函数外部使用函数内部变量的值,则必须加返回值
//1.在函数内部将需要返回的值前面加return
//2.在函数外部定义一个变量接收函数内部的返回值:let变量=函数()
//举例
function fn()
{
let a=123;
let b=456;
let c='abc';
//如果要返回多条数据
return [a,b,c];
}
//返回一个数组
let res=fn();
函数补充

1.两个相同的函数,后面的会覆盖前面的
2.实参和形参的个数不一致时,如果形参过多,会自动填上undefined
3.函数一旦碰到return 就不会往下执行了,函数的结束用return

匿名函数(没有名字的函数)
function(){}
//函数只有被调用才可以执行,匿名函数连名字都没有,如何调用执行的呢
//解决方案:
//a)将匿名函数赋值给一个变量
let fn=function(){}
//然后变量名()
fn();
//b)让我们的匿名函数自己调用自己:自调用函数(自执行函数)
//语法:(函数体)();
//注意:自调用函数后面必须写分号;
(function(){})();

作用域

1.let定义的变量或者const定义的变量,在同一个作用域中不能重复
2.程序在执行代码的时候,先从当前的作用域中找变量,如果当前作用域中没有变量,则要去全局作用域中找变量,找到就执行,否则报错

对象

对象定义

通俗理解:对象也是一个容器,对象容器中保存的就是各种数据(比数组还要强大)
专业理解:对象是一种数据类型(以键值对形式保存数据的一种数据类型且数据是没有顺序的)
对象可以解决更复杂的问题----从Ajax开始遇到的所有数据90%以上都是对象格式

定义对象
//写法1(推荐)
let 自定义对象名=属性名:属性值,
方法名:函数
}
//构造函数写法
let 自定义对象名=new Object();//例子
对象的使用
//查
对象.属性值
//改
对象.属性=//增
对象名.新属性名=新值
//删(很少这么用)
delete 对象名.属性名
增加对象中的值
a)在对象中新增属性:对象名['自定义属性名']=值;
b)对象名.自定义属性名=值
c)在对象中新增方法:对象名['自定义方法名']=function(){}
d)对象名.方法名=function(){}
遍历对象
//通过遍历对象来获取对象中的每一个值
for(let 变量(随意) in 要被遍历的对象)
{
}
//语法解释:
//1.for in语法也是一个循环,循环次数会自动根据对象中的属性个数进行遍历
//2.for in语法中 变量就是对象中的属性名(方法名)
//3.哪个对象要被遍历,就把当前对象写到in后面
//4.获取对象中的值,必须通过对象名[变量]获取let obj={
uname:'张三',
age:23,
myheight:180
//如果出现方法,还需要特殊处理eat: function () { console.log('chifan'); }
}
//要求:将对象中的每一个属性值输出到控制台中
for(let abc in obj)
{
//abc这个变量保存了对象中所有的属性和方法
console.log(abc);}
//获取对象中的每一个属性对应的值
console.log(obj[abc]);

在这里插入图片描述

获取数组中的对象
<script>// 输出数组中的每一个值let ary = ['a', 'b', 'c'];for (let i = 0; i < ary.length; i++) {console.log(ary[i]);}// 遍历数组中的每一个对象let students = [{ name: '小米', age: 18, gender: '男', hometown: '河北省' },{ name: '小军', age: 18, gender: '女', hometown: '山西省' },{ name: '小飞', age: 21, gender: '男', hometown: '山东省' },{ name: '小超', age: 18, gender: '男', hometown: '河男省' }]for (let j = 0; j < students.length; j++) {console.log(students[j]);// 分贝输出每一个对象的姓名和年龄// students[j]代表每一个对象for (let abc in students[j]) { console.log(students[j][abc]) }}</script>

在这里插入图片描述

将数组中的对象渲染成表格
    <script>// 输出数组中的每一个值// let ary = ['a', 'b', 'c'];// for (let i = 0; i < ary.length; i++) {//     console.log(ary[i]);// }// 遍历数组中的每一个对象let students = [{ name: '小米', age: 18, gender: '男', hometown: '河北省' },{ name: '小军', age: 18, gender: '女', hometown: '山西省' },{ name: '小飞', age: 21, gender: '男', hometown: '山东省' },{ name: '小超', age: 18, gender: '男', hometown: '河男省' }]//1.表格中有多少条数据,就要创建爱你多少个tr标签//2.tr标签中有5个td标签//3.td标签中的数据不是随便写的,td标签中的数据,就是对象中的每一个属性值document.write(`<table>`);document.write(`<tr><th>序号</th><th>姓名</th><th>年龄</th><th>性别</th><th>家乡</th></tr>`)//根据数组中的数据,动态的在页面中创建tr标签for (let i = 0; i < students.length; i++) {document.write(`<tr><td>${i + 1}</td><td>${students[i].name}</td><td>${students[i].age}</td><td>${students[i].gender}</td><td>${students[i].hometown}</td></tr>`);}document.write(`</table>`);</script>

在这里插入图片描述

Math

Math为内置对象
提供的方法
a)random:生成0-1之间的随机数(包含0,不包含1)
b)ceil:向上取整
c)floor:向下取整
//max:找最大数
//min:找最小数
//pow:幂运算
//abs:绝对值

生成任意范围内的随机数
//生成N-M之间的随机数
Math.floor(Math.random()*(M-N+1))+N

点名 解决名字总是重复出现,可以将已经出现过的名字从数组中删除

专业术语

在这里插入图片描述

数据类型的存储方式

数据类型的分类:简单类型(数字、字符串、布尔、undefined)+引用类型(对象)
简单类型在栈上保存数据,引用类型在堆上保存数据
在这里插入图片描述
这里的对象是复杂类型保存在堆上,而对象赋值给obj,obj是简单类型保存在栈中,栈中存储的是对象的地址

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

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

相关文章

Redis主从复制+Redis哨兵模式+Redis群集模式

Redis主从复制Redis哨兵模式Redis群集模式一、Redis主从复制1、主从复制的作用2、主从复制过程3、搭建Redis主从复制3.1 所有节点服务器安装redis3.2 修改Redis配置文件(Master节点操作)3.3 修改Redis配置文件(Slave节点操作)3.4 验证主从效果 二、Redis哨兵模式1、哨兵模式的作…

8、IBOScms代码审计

一、sql注入 1、sql注入(Ⅰ) 限制 rreport/api/getlist {"offset":0,"type":"send","keyword":{"subject":"111) AND (updatexml(1,concat(0x7e,(select user()),0x7e),1))-- qw"}}复现 POST /?rreport/api/…

Vue开发实例(十一)用户列表的实现与操作

用户列表的实现与操作 一、创建用户页面和路由二、表格优化1、表头自定义2、表格滚动3、加入数据索引4、利用插槽自定义显示 三、功能1、查询功能3、增加4、删除5、修改 一、创建用户页面和路由 创建用户页面 在 src/components/Main 下创建文件夹user&#xff0c;创建文件Us…

Java ZooKeeper-RocketMQ 面试题

Java ZooKeeper-RocketMQ 面试题 前言1、谈谈你对ZooKeeper的理解 &#xff1f;2、Zookeeper的工作原理&#xff08;Zab协议&#xff09;3、谈谈你对分布式锁的理解&#xff0c;以及分布式锁的实现&#xff1f;4、 zookeeper 是如何保证事务的顺序一致性的&#xff1f;5、 zook…

设计模式之策略模式详解

目录 什么是策略模式 应用场景 业务场景实现 抽象类 实现类 Context上下文 测试类 策略模式的优缺点 什么是策略模式 他将定义的算法家族、分别封装起来&#xff0c;让他们之间可以相互替换&#xff0c;从而让算法的变化不会影响到使用算法的用户。 策略模式使用的就是…

进来吧,给自己10分钟,这篇文章带你直接学会python

Python的语言特性 Python是一门具有强类型(即变量类型是强制要求的)、动态性、隐式类型(不需要做变量声明)、大小写敏感(var和VAR代表了不同的变量)以及面向对象(一切皆为对象)等特点的编程语言。 获取帮助 你可以很容易的通过Python解释器获取帮助。如果你想知道一个对象(o…

OJ:链表的中间结点

876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09; 思路 思路&#xff1a;首先最容易想到的思路是什么呢&#xff0c;就是先遍历一遍链表&#xff0c;用一个值count来记录链表的长度&#xff0c;然后我们运用除法&#xff0c;/2&#xff0c;结果是几&#xff0c;就…

【C++干货基地】揭秘C++11常用特性:内联函数 | 范围for | auto自动识别 | nullptr指针空值

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…

平台工程: 用Backstage构建开发者门户 - 2

本文介绍了如何使用开源Backstage构建自己的开发者门户&#xff0c;并基于此实践平台工程。本系列共两篇文章&#xff0c;这是第二篇。原文: Platform Engineering: Building Your Developer Portal with Backstage — Part 2 在本教程第一部分中我们了解了Backstage这个用于构…

外贸网站模板建站

测绘检测wordpress外贸主题 简洁实用的wordpress外贸主题&#xff0c;适合做测绘检测仪器设备的外贸公司使用。 https://www.jianzhanpress.com/?p5337 白马非马衣服WordPress外贸建站模板 白马非马服装行业wordpress外贸建站模板&#xff0c;适用于时间服装企业的官方网站…

Git 如何上传本地的所有分支

Git 如何上传本地的所有分支 比如一个本地 git 仓库里定义了两个远程分支&#xff0c;一个名为 origin&#xff0c; 一个名为 web 现在本地有一些分支是 web 远程仓库没有的分支&#xff0c;如何将本地所有分支都推送到 web 这个远程仓库上呢 git push web --all

Doris实战——银联商务实时数仓构建

目录 前言 一、应用场景 二、OLAP选型 三、实时数仓构建 四、实时数仓体系的建设与实践 4.1 数仓分层的合理规划 4.2 分桶分区策略的合理设置 4.3 多源数据迁移方案 4.4 全量与增量数据的同步 4.5 离线数据加工任务迁移 五、金融级数仓稳定性最佳实践 5.1 多租户资…

Jenkins的Pipeline概念

文章目录 Pipeline什么是Jenkins Pipeline声明式和脚本式Pipeline语法为何使用PipelinePipeline概念PipelineNodeStageStep Pipeline语法概述声明式Pipeline脚本式Pipeline Pipeline示例 参考 Pipeline 什么是Jenkins Pipeline Jenkins Pipeline是一套插件&#xff0c;它支持…

HBM(High Bandwidth Memory)

选择正确的高带宽内存 构建高性能芯片的选择越来越多&#xff0c;但附加内存的选择却几乎没有变化。为了在汽车、消费和超大规模计算中实现最大性能&#xff0c;选择取决于一种或多种 DRAM&#xff0c;而最大的权衡是成本与速度。 尽管多年来人们一直在努力用更快、更便宜或更…

Linux:kubernetes(k8s)搭建mater节点(kubeadm,kubectl,kubelet)(2)

安装k8有多种方式如&#xff1a; minikube kubeadm 二进制安装 命令行工具 我这里就使用kubeadm进行安装 环境 3台centos7 master ip &#xff1a;192.168.113.120 2G运存 2内核 node1 ip &#xff1a;192.168.113.121 2G运存 2内核 node2 ip &#xff1a;192.168.1…

JavaEE:多线程(3):案例代码

目录 案例一&#xff1a;单例模式 饿汉模式 懒汉模式 思考&#xff1a;懒汉模式是否线程安全&#xff1f; 案例二&#xff1a;阻塞队列 可以实现生产者消费者模型 削峰填谷 接下来我们自己实现一个阻塞队列 1.先实现一个循环队列 2. 引入锁&#xff0c;实现线程安全 …

运用qsort函数进行快排并使用C语言模拟qsort

qsort 函数的使用 首先qsort函数是使用快速排序算法来进行排序的&#xff0c;下面我们打开官网来查看qsort是如何使用的。 这里有四个参数&#xff0c;首先base 是至待排序的数组的首元素的地址&#xff0c;num 是值这个数组的元素个数&#xff0c;size 是指每个元素的大小&am…

基于stm32F103的座面声控台灯

1.基本内容&#xff1a; 设计一个放置在桌面使用的台灯&#xff0c;使用220v交流电供电。具备显示屏能够实时显示日期&#xff08;年、月、日和星期&#xff09;&#xff0c;时间&#xff08;小时、分钟、秒&#xff09;和温度&#xff08;摄氏度&#xff09;&#xff1b;能够通…

Python爬取天气数据及可视化分析!(含源码)

天气预报我们每天都会关注&#xff0c;我们可以根据未来的天气增减衣物、安排出行&#xff0c;每天的气温、风速风向、相对湿度、空气质量等成为关注的焦点。本次使用python中requests和BeautifulSoup库对中国天气网当天和未来14天的数据进行爬取&#xff0c;保存为csv文件&…

ArduinoTFTLCD应用

ArduinoTFTLCD应用 ArduinoTFTLCD应用硬件连接软件导入库显示数字、字符显示汉字方案1方案2 显示图片 总结 ArduinoTFTLCD应用 对于手工喜欢DIY的人来说&#xff0c;Arduino驱动的TFTLCD被很多人使用&#xff0c;此处就总结一下&#xff0c;使用的是VScode的PlatformIO插件驱动…