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对象,这会大大降低代码运行速度!!

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是洋洋a

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值