JavaScript 学习笔记(Day5)

「写在前面」

本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容:
1. JavaScript 学习笔记(Day1)
2. JavaScript 学习笔记(Day2)
3. JavaScript 学习笔记(Day3)
4. JavaScript 学习笔记(Day4)


目录

  • 1 对象
  • 2 综合案例
  • 3 拓展

1 对象

今日内容和实战安排:

P64:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=64

1.1 什么是对象

P65:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=65

对象(object):是 JavaScript 数据类型的一种,之前已经学习了数值类型、字符串类型、布尔类型、undefined。对象数据类型可以被理解成是一种数据集合。它由属性方法两部分构成。

1.2 对象使用

1. 对象声明语法
let 对象名 = {}

let 对象名 = new Object()

实际开发中,我们多用花括号。{} 是对象字面量

2. 对象有属性和方法组成
  • 属性:信息或叫特征(名词)。 比如 手机尺寸、颜色、重量等…
  • 方法:功能或叫行为(动词)。 比如 手机打电话、发短信、玩游戏…
let 对象名 = {
属性名: 属性值,
方法名: 函数
}
3. 属性
  • 属性都是成对出现的,包括属性名和值,它们之间使用英文 : 分隔
  • 多个属性之间使用英文 , 分隔
  • 属性就是依附在对象上的变量(外面是变量,对象内是属性)
  • 属性名可以使用 "" 或 '', 一般情况下省略,除非名称遇到特殊符号如空格、中横线等
let obj = {
uname: 'pink老师',
age: 18,
gender: '女'
}

P66:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=66

对象本质是无序的数据集合, 操作数据无非就是 增 删 改 查 语法:

alt

1. 属性-查

语法:对象名.属性

let person = {
uname: 'pink老师',
age: 18,
gender: '女'
}
console.log(person.uname) // pink老师
console.log(person.age) // 18
console.log(person.gender) // 女

2. 属性-改

语法:对象名.属性 = 新值

let person = {
uname: 'pink老师',
age: 18,
gender: '女'
}
person.gender = '男'
console.log(person.gender) // 男

3. 属性-增

语法:对象名.新属性 = 新值

let person = {
uname: 'pink老师',
age: 18,
gender: '女'
}
person.address = '武汉黑马'
console.log(person) // {uname: 'pink老师', age: 18, gender: '女', address: '武汉黑马'}

4. 属性-删

语法:delete 对象名.属性

let person = {
uname: 'pink老师',
age: 18,
gender: '女'
}
delete person.gender
console.log(person) // {uname: 'pink老师', age: 18}

属性-查的另外一种写法

P67:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=67

  • 对于多词属性或则 - 等属性,点操作就不能用了。
  • 我们可以采取: 对象 ['属性']方式, 单引号和双引号都可以
let person = {
'user-name': 'pink老师',
age: 18,
gender: '女'
}
console.log(person.user-name) // NaN
console.log(person['user-name']) // pink老师
4. 方法

P68:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=68

  • 方法是由方法名和函数两部分构成,它们之间使用 : 分隔
  • 多个属性之间使用英文 , 分隔
  • 方法是依附在对象中的函数
  • 方法名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
let obj = {
uname: '刘德华',
song: function (x, y) {
console.log(x + y)
}
}
// 调用方法
obj.song(1, 2) // 3

1.3 遍历对象

P69:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=69

  • 一般不用这种方式遍历数组、主要是用来遍历对象
  • for in 语法中的 k 是一个变量, 在循环的过程中依次代表对象的属性名
  • 由于 k 是变量, 所以必须使用 [ ] 语法解析
  • 一定记住: k 是获得对象的 属性名对象名[k] 是获得 属性值
// 数组,不推荐用 for in 遍历数组
let arr = ['pink', 'red', 'blue']
for (let k in arr) {
console.log(k) // 输出数组的索引号 '0' '1' '2',但是是字符串
console.log(arr[k]) // 输出 'pink' 'red' 'blue'
}
// for in 遍历对象
let obj = {
uname: 'pink老师',
age: 18,
gender: '男'
}
for (let k in obj) {
console.log(k) // 输出属性名 'uname' 'age' 'gender'
console.log(obj[k]) // 输出属性值 'pink老师' 18 '男'
}

P70:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=70

alt

1.4 内置对象

P71:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=71

内置对象:JavaScript内部提供的对象,包含各种属性和方法给开发者调用

内置对象-Math:

Math 对象是 JavaScript 提供的一个“数学”对象

Math 对象包含的方法有:

  • random:生成0-1之间的随机数(包含0不包括1)
  • ceil:向上取整
  • floor:向下取整
  • round:四舍五入
  • max:找最大数
  • min:找最小数
  • pow:幂运算
  • abs:绝对值
console.log(Math.ceil(1.1)) // 2
console.log(Math.floor(1.1)) // 1
console.log(Math.round(1.1)) // 1
console.log(Math.round(1.5)) // 2
console.log(Math.max(1,2,3)) // 3
console.log(Math.min(1,2,3)) // 1

P72:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=72

Math.random() 随机数函数, 返回一个0 - 1之间,并且包括0不包括1的随机小数 [0, 1)

// 如何生成0-10的随机数呢?
Math.floor(Math.random() * (10 + 1))

// 如何生成5-10的随机数?
Math.floor(Math.random() * (5 + 1)) + 5

// 如何生成N-M之间的随机数
Math.floor(Math.random() * (M - N + 1)) + N

案例:

P73:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=73

alt

P74:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=74

alt

P75:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=75

alt

2 综合案例

P76:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=76

alt

3 拓展

P77:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=77

3.1 术语解释

术语解释举例
关键字在JavaScript中有特殊意义的词汇let、var、function、if、else、switch、case、break
保留字在目前的JavaScript中没意义,但未来可能会具有特殊意义的词汇int、short、long、char
标识(标识符)变量名、函数名的另一种叫法
表达式能产生值的代码,一般配合运算符出现10 + 3、age >= 18
语句一段可执行的代码If () for()

3.2 基本数据类型和引用数据类型

简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型

  • 值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型
    • string ,number,boolean,undefined,null
  • 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型
    • 通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等

堆栈空间分配区别:

  1. 栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈; 简单数据类型存放到栈里面

2、堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。引用数据类型存放到堆里面

简单类型
简单类型
复杂类型
复杂类型
// 简单类型
let num = 10
let num2 = num
num = 20
console.log(num2) // 20

// 复杂类型
let obj1 = {
age: 18
}
let obj2 = obj1
obj1.age = 20
console.log(obj2) // 20

「结束」
alt

本文由 mdnice 多平台发布

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

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

相关文章

数据结构奇妙旅程之二叉树初阶

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

IDEA无法解析jdk自带的类的解决办法

1.问题 IDEA在有些时候,会出现这个错误,就是jdk自带的java类找不到而报错。 例如下面的就是Object找不到,我们知道jdk自带的类是不用import包的,这里报错了,IDEA会提示你去导入类,其实这个提示也不是真正…

Ubuntu 22.04 基础环境搭建

这是Ubuntu软件安装系列的第一篇,我们来聊聊基础环境搭建。 这个专栏主要讲一些常见服务端软件的安装和配置,当然也包括对软件架构和作用的分析,以及使用的场景的介绍。 注意我们这里使用的Ubuntu的版本是22.04,基本上大厂的云服…

CentOS安装maxwell

CentOs安装maxwell 一、简介二、准备工作三、安装1、下载安装包2、解压3、编写配置文件4、启动maxwell5、验证6、停止maxwell 四、说明1、更新数据2、插入数据3、删除数据 五、遇到问题 一、简介 maxwell是由美国Zendesk公司开源,它通过读取mysql的binlog日志&#…

vscode mysql cmake windows 常见问题和推荐文章

1.在windows中安装mingw64和cmake(可查一下网上的安装教程),配置环境变量 2.在vscode中用CMake构建项目的时候,可能会出现这样的问题:“The C compiler identification is unknownn...”,可参考这篇博客 在windows下使用Vscode用…

面试题之ElasticSearch

面试题之ElasticSearch 1.es的基础知识2. es的集群、节点、分片、副本分片的定义?3. es为什么快?4. 倒排索引的原理是什么?5. es的segment是什么?6. es的分段存储和分段索引的概念及区别?7. 索引相关的问题&#xff1f…

服务器感染了.DevicData-P-XXXXXXXX勒索病毒,如何确保数据文件完整恢复?

引言: 在当今数字化时代,勒索病毒已成为网络安全威胁的一个严峻问题。其中,.DevicData-P-XXXXXXXX 勒索病毒以其恶意加密文件的手段引起了广泛关注。本文将介绍该病毒的特点、数据恢复方法以及如何预防遭受其攻击。 如不幸感染这个勒索病毒&…

【Java数据结构】03-二叉树,树和森林

4 二叉树、树和森林 重点章节,在选择,填空,综合中都有考察到。 4.1 掌握二叉树、树和森林的定义以及它们之间的异同点 1. 二叉树(Binary Tree) 定义: 二叉树是一种特殊的树结构,其中每个节点…

Python(wordcloud):根据词频信息(xlsx、csv文件)绘制词云图

一、前言 本文将介绍如何用python根据词频信息(xlsx、csv文件)绘制词云图,除了绘制常规形状的词云图(比如长方形),还可以指定词云图的形状。 二、安装并引入相关的库 1、安装相关的库 pip install jieb…

MinIO上传

简介 MinIO是一个开源的对象存储服务器,兼容Amazon S3 API。它提供了可扩展、高性能和高可用性的存储解决方案,适用于大规模数据存储和分发。 MinIO的设计目标是简单易用、轻量级和高度可定制。它可以在企业内部部署,也可以在公有云上使用。…

深度学习笔记(八)——构建网络的常用辅助增强方法:数据增强扩充、断点续训、可视化和部署预测

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 要构建一个完善可用的神经网络,除了设计网络结构以外,还需要添加一些辅助代码来增强…

【Macos系统】安装VOSviewer及使用VOSviewer教程!!以ESN网络的研究进行案例分析

【Macos系统】安装VOSviewer及使用VOSviewer教程 以ESN网络的研究进行案例分析 本文介绍如何安装和使用VOSviewer软件,并以ESN(Echo State Network)网络的研究为案例进行分析。利用VOSviewer对相关文献进行可视化分析,并深入了解…

Linux之引导和服务篇

系统引导是操作系统运行的开始,在用户能够正常登录之前,Linux的引导过程完成了一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备。 一. 引导过程 开机自检--->MBR引导--->GRUB菜单--->加载Linux内核-…

商汤书生大模型一次可读 30 万汉字;2023 年 Shopee Live 超100万马来人注册;2023年中国出生人口902万人;

今日精选 • 商汤“书生・浦语”2.0 大语言模型开源:200K 上下文,一次可读 30 万汉字• 2023年中国出生人口902万人• 2023 年 Shopee Live 有超 100 万马来人注册并观看直播 投融资 • Airbnb 2 亿美元收购人工智能初创公司 Gameplanner.AI• 哥伦比…

【JavaEEj进阶】 Spring实现留言板

文章目录 🎍预期结果🍀前端代码🎄约定前后端交互接⼝🚩需求分析🚩接⼝定义 🌳实现服务器端代码🚩lombok 🌲服务器代码实现🌴运⾏测试 🎍预期结果 可以发布并…

Vcast工程创建

Vcast工程创建 1.新建项目,创建工程名称 2.创建该工程下的项目组 3.设置项目组环境的名字 4.选择需要测试的源代码文件 5.选择被测文件,点击build 6.出现报错,点击报错窗口的按钮 进入报错详细页,查看详细信息 报错内容如下 Unstubbed Enti…

使用原生input模拟器样式正常,但是真机上 input框溢出

目录 一、问题 二、解决方法 三、总结 tiips:如嫌繁琐,直接移步总结即可! 一、问题 1.使用原生input写了一个搜索框,在模拟器和pc上一切正常。但是打包放到手机上,样式就有问题:这个搜索框的布局是正常的&#xf…

广州银行IPO再添堵:原董事长被查,资产质量承压,罚单频现

撰稿|行星 来源|贝多财经 广州银行的上市之路,或因前高管涉嫌违纪再添一层阴云。 前不久,广州市纪委监委披露的信息显示,广州银行原党委书记、董事长姚建军涉嫌严重违纪违法,正在接受纪律审查和监察调查。据贝多财经了解&#…

代码随想录-刷题第五十七天

42. 接雨水 题目链接:42. 接雨水 思路:本题十分经典,使用单调栈需要理解的几个问题: 首先单调栈是按照行方向来计算雨水,如图: 使用单调栈内元素的顺序 从大到小还是从小到大呢? 从栈头&…

【AI】RTX2060 6G Ubuntu 22.04.1 LTS (Jammy Jellyfish) 部署Chinese-LLaMA-Alpaca-2

下载源码 cd ~/Downloads/ai git clone --depth1 https://gitee.com/ymcui/Chinese-LLaMA-Alpaca-2 创建venv python3 -m venv venv source venv/bin/activate安装依赖 pip install -r requirements.txt 已安装依赖列表 (venv) yeqiangyeqiang-MS-7B23:~/Downloads/ai/Chi…