JavaScript(二)---【js数组、js对象、this指针】

零.前言

JavaScript(一)---【js的两种导入方式、全局作用域、函数作用域、块作用域】-CSDN博客

一.js数组

js中也有数组的概念,数组使用“[]”定义,其中数组中还可以嵌套数组从而达到多层数组的作用。

访问数组中的某个元素,我们可以直接使用“下标索引”来访问。

(其实就是Python中的列表,一毛一样,怀疑jspython是否师出同门)

定义数组的时候,我们通常也使用“var”和“let”定义数组并且将数组赋值给某个变量,至于作用于嘛,和作者上一篇文章讲的一样没有改变。

例如:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var listDimension1 = ["小明",160,100];console.log(listDimension1);var listDimension2 = [["小明",160,100],["小红",180,1110]]console.log(listDimension2);</script>
</body>
</html>

 效果:

二.js对象

因为js可以面向对象,因此也有“对象”的概念。

在最新的ES标准中,js也有“”了。。。

跟“Python”的类对象相似,js对象也具有“属性”和“方法”两个概念。

js对象中,属性用:“属性:属性值键值对来表示,而方法就是一个函数

在外部访问js对象中的属性或者方法可以使用:

对象名.属性(方法)”或者“对象名[属性]”使用索引只能访问对象属性,而不能访问对象方法

又跟Python一样,学会Python == 学会js

2.1对象属性

例如,我们创建一个只有属性的对象:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var car = {type:"轿车",model:"e300L",价格:299999};console.log(car);console.log(car.type);console.log(car.model);console.log(car.价格);</script>
</body>
</html>

效果:

值得注意的是,在上面的例子中,"价格"属性是一个中文,我们在应用中并不建议使用中文做属性,因为这在某些地方可能会因为编码的问题出现崩溃。

2.2对象方法

严格来说对象方法也是对象属性的一种,不过为了便于区分,我们还是单独拿出来讲,大家只需要记住对象方法底层也是一个对象属性就好了。

对象方法是在“对象上执行的动作”,因此这个方法绝大多数情况下是对:“对象自身”进行某些操作。

例如一个包含对象方法的js对象:

var person = {firstName: "Bill",lastName : "Gates",id       : 678,fullName : function() {return this.firstName + " " + this.lastName;}
};

当我们在程序外部调用它时:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var person = {firstName: "Bill",lastName : "Gates",id       : 678,fullName : function() {return this.firstName + " " + this.lastName;}};console.log(person.fullName())</script>
</body>
</html>

效果:

如果我们使用不带“()这种方式来访问方法,那么将返回“函数定义”:

console.log(person.fullName)

 效果:

 所谓“函数定义”就是:函数内部的代码罢了

2.3this指针

其实this指针完全可以单独作为一章拿出来讲,不过既然上面例子用到了,所以我们就浅浅的讲一下。

如果你学过Python,那么你就可以立马明白“this”指针的含义。

this”指针跟Python对象中的“self”指针一模一样,都是用来代指对象自身

什么意思呢?this指针就是用来表示,这个对象是谁,是以谁的身份来执行这个函数的

例如上面的例子中的this指针就是:“person”对象。

2.4使用new关键字创建系统内置对象

除了“将对象显式的写出赋值给变量”这种方式来创建对象以外,我们还可以使用“new”关键字来创建对象(没错,和C++的new关键字一个尿性....)。

其中我们可以“自定义一个类”(后面篇章再讲),也可以使用“内置对象

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var x = new String();    //定义x为String对象var y = new Number();    //定义y为Number对象var z = new Boolean();    //定义z为Boolean对象console.log(typeof x,typeof y,typeof z)var x = "123";    //定义x为字符串var y = 123;    //定义y数值var z = true;    //定义z为布尔console.log(typeof x,typeof y,typeof z)</script>
</body>
</html>

效果:

可以明显看到三者的差别。

PS:请尽量避免使用“String、Number、Boolean对象,这会大大降低代码运行速度!!

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

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

相关文章

pymysql使用记录

最近由于需要来学习一下pymysql。 先来认识一下pymysql&#xff1a; PyMySQL 是 Python 中一个用于连接 MySQL 数据库的库。它允许 Python 程序通过简单的 API 调用来连接、操作和管理 MySQL 数据库。PyMySQL 是在 Python 中使用纯 Python 编写的&#xff0c;因此它可以在几…

MySQL编程实战LeetCode经典考题

文章简介 本文主要收集了LeetCode上关于MySQL的一些经典考题。 后续也会陆续把所有经典考题补充完整。 175.组合两个表 175.组合两个表 解答&#xff1a; select p.FirstName as firstName, p.LastName as lastName,a.City as city, a.State as state from Person p l…

loadbalancer 引入与使用

在消费中pom中引入 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> 请求调用加 LoadBalanced 注解 进行服务调用 默认负载均衡是轮训模式 想要切换…

【b站李炎恢】Vue.js Element UI 下 | 十天技能课堂 | 更新中... | 李炎恢

课程地址&#xff1a;【Vue.js Element UI | 十天技能课堂 | 更新中... | 李炎恢】 https://www.bilibili.com/video/BV1U54y127GB/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 备注&#xff1a;虽然标题声明还在更新中&#xff0c;但是看一些常用…

Python库使用介绍 LivermorE AI Projector for Computed Tomography LEAP

Python库使用介绍 LivermorE AI Projector for Computed Tomography LEAP 前言Projector 用于设定投影参数的类参数解释&#xff1a;其它功能load_param(str filepath)forward(ipt, project_mode"forward") 样例代码后记 前言 github开源代码 python API文档 作为一…

TypeScript-自动编译

1.生成文件 tsc --init 2.修改配置文件 说明&#xff1a;通过CTRLF搜索到以下单词&#xff0c;进行修改。 "strict": true, //是否开启严格模式 "outDir": "./outFile", //表示ts文件最终编译为js文件&#xff0c;js文件存放的位置 3.新…

C++心决之命名空间、重载函数和引用

目录 1. C关键字(C98) 2. 命名空间 2.1 命名空间定义 2.2 命名空间使用 3. C输入&输出 4. 缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 5. 函数重载 5.1 函数重载概念 5.2 C支持函数重载的原理--名字修饰(name Mangling) 6. 引用 6.1 引用概念 6.2 引用特性…

基于spark的大数据分析预测地震受灾情况的系统设计

基于spark的大数据分析预测地震受灾情况的系统设计 在本篇博客中,我们将介绍如何使用Apache Spark框架进行地震受灾情况的预测。我们将结合数据分析、特征工程、模型训练和评估等步骤,最终建立一个预测模型来预测地震造成的破坏程度,同时使用可视化大屏的方式展示数据的分布…

DreamSim技术小结

paperhttps://arxiv.org/abs/2306.09344codehttps://github.com/ssundaram21/dreamsimorgMiT个人博客主页http://myhz0606.com/article/dream_sim 1 Motivation 目前较为成熟度量图片相似性的做法是通过模型将图片转为embedding&#xff0c;再用余弦相似度来度量相似性。虽然…

【数据分析面试】1. 计算年度收入百分比(SQL)

题目 你需要为公司的营收来源生成一份年度报告。计算截止目前为止&#xff0c;在表格中记录的第一年和最后一年所创造的总收入百分比。将百分比四舍五入到两位小数。 示例&#xff1a; 输入&#xff1a; annual_payments 表 列名类型amountINTEGERcreated_atDATETIMEstatusV…

Linux企业级别日志的查找

企业级别日志的查找 查看mysql数据库的日志错误日志&#xff08;Error Log&#xff09;查询日志&#xff08;General Query Log&#xff09;慢查询日志&#xff08;Slow Query Log&#xff09;事务日志&#xff08;Transaction Log&#xff09;二进制日志&#xff08;Binary Lo…

Thread 之start 和run 的区别

Java Thread 之start 和run 的区别 用start方法来启动线程&#xff0c;真正实现了多线程运行&#xff0c;这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程&#xff0c;这时此线程处于就绪&#xff08;可运行&#x…

【MATLAB源码-第23期】基于matlab的短时傅里叶STFT信号变换仿真,得到信号的时频曲线图。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 短时傅里叶变换&#xff08;Short-Time Fourier Transform&#xff0c;STFT&#xff09;是傅里叶变换的一种扩展&#xff0c;用于分析信号在时域和频域上的变化。描述如下&#xff1a; 1. **时域与频域分析**&#xff1a; …

【Chapter2】进程、线程与作业,计算机操作系统教程,第四版,左万利,王英

文章目录 [toc] 一、多道程序设计1.1单道程序设计的缺点1.2多道程序设计的提出1.3多道程序设计存在的问题 二、进程的引入2.1进程的概念2.2进程的组成2.2.1进程控制块2.2.2程序 2.3进程的类型及特征2.3.1进程的类型2.3.2进程的特征 2.4进程的状态及转换2.4.1进程的状态创建态就…

【对比golang和java的区别】

&#x1f308;个人主页:程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

【LeetCode: 330. 按要求补齐数组 + 贪心 + 构造区间】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Beans模块之工厂模块DisposableBean

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

【STM32嵌入式系统设计与开发】——12IWDG(独立看门狗应用)

这里写目录标题 一、任务描述二、任务实施1、ActiveBeep工程文件夹创建2、函数编辑&#xff08;1&#xff09;主函数编辑&#xff08;2&#xff09;USART1初始化函数(usart1_init())&#xff08;3&#xff09;USART数据发送函数&#xff08; USART1_Send_Data&#xff08;&…

2025中国跨境电商交易会(春季福州)

2025中国跨境电商交易会&#xff08;春季福州&#xff09; 时间&#xff1a;2025年3月18-20日 地点&#xff1a;福州海峡国际会展中心 预订以上展会详询陆先生 I38&#xff08;前三位&#xff09; I82I&#xff08;中间四位&#xff09; 9I72&#xff08;后面四位&#x…

系统慢查询的思考

系统慢查询的思考 在一个系统中发现慢查询的功能或很卡的现象。你是怎么思考的&#xff1f;从哪几个方面去思考&#xff1f;会用什么工具&#xff1f; 一个系统使用了几年后都可能会出现这样的问题。原因可能有以下几点。 数据量的增加。系统中平时的使用中数据量是有一个累…