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

JS基础之【对象详解 -- 对象的属性与方法、遍历对象与内置对象】

🚀 个人简介:某大型国企高级前端开发工程师,7年研发经验,信息系统项目管理师、CSDN优质创作者、阿里云专家博主,华为云云享专家,分享前端后端相关技术与工作常见问题~

💟 作    者:码喽的自我修养🥰
📝 专    栏:JavaScript基础 🎉

🌈 创作不易,如果能帮助到带大家,欢迎 收藏+关注  💕

🌈🌈文章目录

一、对象的声明与访问

1.声明语法

2.属性和访问

3.方法和调用

4.null

5.遍历对象

二、内置对象

Math

属性

方法

一、对象的声明与访问

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

1.声明语法

声明一个对象类型的变量与之前声明一个数值或字符串类型的变量没有本质上的区别

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>JavaScript 基础 - 对象语法</title>
</head>
<body><script>// 声明字符串类型变量let str = 'hello world!'// 声明数值类型变量let num = 199// 声明对象类型变量,使用一对花括号// user 便是一个对象了,目前它是一个空对象let user = {}</script>
</body>
</html>

2.属性和访问

数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的。

  1. 属性都是成对出现的,包括属性名和值,它们之间使用英文 : 分隔

  2. 多个属性之间使用英文 , 分隔

  3. 属性就是依附在对象上的变量

  4. 属性名可以使用 ""'',一般情况下省略,除非名称遇到特殊符号如空格、中横线等

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>JavaScript 基础 - 对象语法</title>
</head>
<body><script>// 通过对象描述一个人的数据信息// person 是一个对象,它包含了一个属性 name// 属性都是成对出现的,属性名 和 值,它们之间使用英文 : 分隔let person = {name: '小明', // 描述人的姓名age: 18, // 描述人的年龄stature: 185, // 描述人的身高gender: '男', // 描述人的性别}</script>
</body>
</html>

声明对象,并添加了若干属性后,可以使用 .[] 获得对象中属性对应的值,我称之为属性访问

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>JavaScript 基础 - 对象语法</title>
</head>
<body><script>// 通过对象描述一个人的数据信息// person 是一个对象,它包含了一个属性 name// 属性都是成对出现的,属性名 和 值,它们之间使用英文 : 分隔let person = {name: '小明', // 描述人的姓名age: 18, // 描述人的年龄stature: 185, // 描述人的身高gender: '男', // 描述人的性别};// 访问人的名字console.log(person.name) // 结果为 小明// 访问人性别console.log(person.gender) // 结果为 男// 访问人的身高console.log(person['stature']) // 结果为 185// 或者console.log(person.stature) // 结果同为 185</script>
</body>
</html>

扩展:也可以动态为对象添加属性,动态添加与直接定义是一样的,只是语法上更灵活。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>JavaScript 基础 - 对象语法</title>
</head>
<body><script>// 声明一个空的对象(没有任何属性)let user = {}// 动态追加属性user.name = '小明'user['age'] = 18// 动态添加与直接定义是一样的,只是语法上更灵活</script>
</body>
</html>

3.方法和调用

数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数

  1. 方法是由方法名和函数两部分构成,它们之间使用 : 分隔

  2. 多个属性之间使用英文 , 分隔

  3. 方法是依附在对象中的函数

  4. 方法名可以使用 ""'',一般情况下省略,除非名称遇到特殊符号如空格、中横线等

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>JavaScript 基础 - 对象方法</title>
</head>
<body><script>// 方法是依附在对象上的函数let person = {name: '小红',age: 18,// 方法是由方法名和函数两部分构成,它们之间使用 : 分隔singing: function () {console.log('两只老虎,两只老虎,跑的快,跑的快...')},run: function () {console.log('我跑的非常快...')}}</script>
</body>
</html>

声明对象,并添加了若干方法后,可以使用  . 调用对象中函数,我称之为方法调用。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>JavaScript 基础 - 对象方法</title>
</head>
<body><script>// 方法是依附在对象上的函数let person = {name: '小红',age: 18,// 方法是由方法名和函数两部分构成,它们之间使用 : 分隔singing: function () {console.log('两只老虎,两只老虎,跑的快,跑的快...')},run: function () {console.log('我跑的非常快...')}}// 调用对象中 singing 方法person.singing()// 调用对象中的 run 方法person.run()</script>
</body>
</html>

扩展:也可以动态为对象添加方法,动态添加与直接定义是一样的,只是语法上更灵活。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>JavaScript 基础 - 对象方法</title>
</head>
<body><script>// 声明一个空的对象(没有任何属性,也没有任何方法)let user = {}// 动态追加属性user.name = '小明'user.['age'] = 18// 动态添加方法user.move = function () {console.log('移动一点距离...')}</script>
</body>
</html>

:无论是属性或是方法,同一个对象中出现名称一样的,后面的会覆盖前面的。

4.null

null 也是 JavaScript 中数据类型的一种,通常只用它来表示不存在的对象。使用 typeof 检测类型它的类型时,结果为 object

5.遍历对象

let obj = {uname: 'pink'
}
for(let k in obj) {// k 属性名  字符串  带引号    obj.'uname'     k ===  'uname'// obj[k]  属性值    obj['uname']   obj[k]
}

for in 不提倡遍历数组, 因为 k 字符串

二、内置对象

回想一下我们曾经使用过的 console.logconsole其实就是 JavaScript 中内置的对象,该对象中存在一个方法叫 log,然后调用 log 这个方法,即 console.log()

除了 console 对象外,JavaScritp 还有其它的内置的对象,诸如Array、Object、Date、Math等等,下面重点演示Math对象自带的属性和方法👇👇👇

Math

Math 是 JavaScript 中内置的对象,称为数学对象,这个对象下即包含了属性,也包含了许多的方法。

属性
  • Math.PI,获取圆周率

// 圆周率
console.log(Math.PI);
方法
  • Math.random,生成 0 到 1 间的随机数

// 0 ~ 1 之间的随机数, 包含 0 不包含 1
Math.random()

Math.ceil,数字向上取整

// 舍弃小数部分,整数部分加1
Math.ceil(3.4)

Math.floor,数字向下取整

// 舍弃小数部分,整数部分不变
Math.floor(4.68)

Math.round,四舍五入取整

// 取整,四舍五入原则
Math.round(5.46539)
Math.round(4.849)

Math.max,在一组数中找出最大的

// 找出最大值
Math.max(10, 21, 7, 24, 13)

Math.min,在一组数中找出最小的

// 找出最小值
Math.min(24, 18, 6, 19, 21)

Math.pow,幂方法

// 求某个数的多少次方
Math.pow(4, 2) // 求 4 的 2 次方
Math.pow(2, 3) // 求 2 的 3 次方

Math.sqrt,平方根

// 求某数的平方根
Math.sqrt(16)

数学对象Math提供了比较多的方法,这里不要求强记,主要是通过演示数学对象的使用,来加深对对象的理解。

到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家点点收藏+关注~💕 

  更多专栏订阅推荐:

🥕 JavaScript深入研究

👍 前端工程搭建
💕 vue从基础到起飞

✈️ HTML5与CSS3

⭐️ uniapp与微信小程序

📝 前端工作常见问题汇总

✍️ GIS地图与大数据可视化

📚 常用组件库与实用工具

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PCL 点云圆柱邻域搜索
  • 中国计算机学会(CCF)推荐中文科技期刊目录(2019年)
  • 【云原生监控】Prometheus之Alertmanager报警
  • SpringBoot 消息队列RabbitMQ 消息确认机制确保消息发送成功和失败 生产者确认
  • 什么是HTTP DDOS,如何防护
  • C++速通LeetCode中等第12题-矩阵置零(空间O(1)含注释)
  • xml中的转义字符
  • Java-使用反射来处理对象,并构建新的JSON数据结构
  • windows C++ 并行编程-异步消息块(四)
  • Java集合(List篇)
  • fiddler抓包06_抓取https请求(chrome)
  • 财富通公司开发维修售后小程序,解决售后维修问题
  • 【摘抄】软件工程师认知
  • 量子噪声流加密(一:整体框架描述)
  • 惠海H6118 DC-DC 降压恒流芯片30V36v40V48V降12V9V24V36V 1.2A大电流 调光降压芯片IC舞台灯
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 《深入 React 技术栈》
  • 【391天】每日项目总结系列128(2018.03.03)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • CSS 提示工具(Tooltip)
  • ECS应用管理最佳实践
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • JavaScript设计模式之工厂模式
  • Java多线程(4):使用线程池执行定时任务
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • maven工程打包jar以及java jar命令的classpath使用
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 如何在 Tornado 中实现 Middleware
  • 小程序开发之路(一)
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 函数计算新功能-----支持C#函数
  • ​ssh免密码登录设置及问题总结
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​马来语翻译中文去哪比较好?
  • #includecmath
  • (02)vite环境变量配置
  • (1) caustics\
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (二十六)Java 数据结构
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (过滤器)Filter和(监听器)listener
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (接口封装)
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转) Android中ViewStub组件使用
  • (转)memcache、redis缓存
  • (转载)CentOS查看系统信息|CentOS查看命令
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET CORE Aws S3 使用
  • .net mvc部分视图
  • .net连接MySQL的方法