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问题和答案

什么是MySQL&#xff1f;MySQL的存储引擎有哪些&#xff1f;它们有什么区别&#xff1f; MySQL是一个开源的关系型数据库管理系统&#xff0c;用于存储和管理大量结构化数据。 MySQL的存储引擎包括InnoDB、MyISAM、Memory等。它们在事务支持、并发性能、数据完整性等方面有所不…

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…

【MogDB】解读MogDB5.0.6版本中有关兼容性的一些更新

前言 MogDB于2024-03-30发布了其5.0版本的补丁版本—5.0.6&#xff0c;其在MogDB 5.0.5的基础上新增部分特性并修复了部分缺陷&#xff0c;具体内容可参考官方文档 # MogDB 5.0.6发布说明 相信有一些伙伴和我一样对兼容性的部分感兴趣&#xff0c;因此本篇就针对本次更新的一些…

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;但是看一些常用…

vue知识点: v-if和v-for为何不能同时使用?

在vue2和vue3的官方文档里都写到不推荐 v-if和v-for同时使用&#xff0c;如下代码所示&#xff1a; <li v-for"todo in todos" v-if"!todo.isComplete">{{ todo.text }} </li> 一、vue3文档&#xff1a;列表渲染 | Vue.js 在vue3中&#xff…

将Python程序打包为Windows安装包

本文使用创作助手。 如果你想将Python程序打包为Windows安装包&#xff0c;你可以使用NSIS&#xff08;Nullsoft Scriptable Install System&#xff09;工具。NSIS是一个免费的Windows安装包创建工具。 以下是使用NSIS将Python程序打包为Windows安装包的步骤&#xff1a; 首…

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.新…

pytorch中的torch.nn.Linear

torch.nn.Linear是pytorch中的线性层&#xff0c;应该是最常见的网络层了&#xff0c;官方文档&#xff1a;torch.nn.Linear。 torch.nn.Linear(in_features, out_features, biasTrue, deviceNone, dtypeNone)其中&#xff0c;in_features表示输入的维度&#xff1b;out_featu…

大模型LLM论文整理

Gemini&#xff1a;一族功能强大的多模态模 论文名称&#xff1a;Gemini: A Family of Highly Capable Multimodal Models 论文地址&#xff1a;https://arxiv.org/pdf/2312.11805 会议&#xff1a; 论文方法&#xff1a;该论文介绍了一种新的多模态模型系列&#xff0c;Gem…

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 引用特性…

代码随想录第九天: 字符串完结

语言: Java 参考资料: 代码随想录、ChatGPT3.5 28. 实现 strStr() 力扣题目链接(opens new window) 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串&#xff0c;在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在&#…

问题大全——C语言及数据结构篇(自用)

目录 printf函数中那些%d %f等等的作用 运算符的优先级 选择排序 冒泡排序 快速排序 折半查找 归并排序 strcat strcpy scanf可以限制输入格式么 c语言实现链式队列&#xff0c;输入数字入队&#xff0c;输入字符出队。 统计一个范围内的素数 打印水仙花数 打印杨…

Android Q(10)黑暗模式适配的实现

一、引言 随着 AndroidQ&#xff08;10&#xff09;的发布&#xff0c;黑暗模式成为了系统级别的特性。为了满足用户在不同环境下的使用需求&#xff0c;应用程序需要及时进行黑暗模式的适配。本文将详细介绍如何在 AndroidQ&#xff08;10&#xff09;上实现黑暗模式的适配&a…

【架构篇】看完这篇,不要再说你不会性能调优了

调优方向 系统调优是一个复杂且多方面的任务&#xff0c;主要目标是提高系统的性能和效率。它可以针对不同的层面和组件进行&#xff0c;包括硬件、操作系统、网络、软件应用程序等。以下是一些常见的系统调优方面&#xff1a; 硬件优化&#xff1a; CPU性能优化&#xff1a;…

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

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

补代码随想录算法训练营第39天 | 62.不同路径、63. 不同路径 II

慢慢开始有点感觉了 初始化很巧妙 62.不同路径 本题大家掌握动态规划的方法就可以。 数论方法 有点非主流&#xff0c;很难想到。 代码随想录 视频讲解&#xff1a;动态规划中如何初始化很重要&#xff01;| LeetCode&#xff1a;62.不同路径_哔哩哔哩_bilibili 63. 不同路径…

DreamSim技术小结

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