专栏首页赖权华的笔记JS笔记(三):数组、函数、类

JS笔记(三):数组、函数、类

(一) 数组

 1 //创建数组
 2 var the_array = [1,2,3,4,'5']
 3 
 4 console.log(the_array[0]) //读取索引为0的数据
 5 the_array[5] = '赋值' //写数据
 6 
 7 //在数组末尾添加一个元素,,允许添加多个数据,例如:the_array.push('1','2')
 8 the_array.push('末尾添加一个数据')
 9 console.log(the_array)
10 //pop删除数组末尾的数据并返回,和PYTHON列表的POP类似(不同的是JS只能删除末尾的数据)
11 //另外还有shift()和unshift(),shift()删除,unshift()添加1个或多个元素。不同的是,这2个方法操作的数据数组头部的元素
12 console.log(the_array.pop())
13 //Array.join()连接所有元素并返回一个字符串,都差不多
14 console.log(the_array.join())
15 A = the_array.join()
16 //String.split()则将字符串拆分为数组
17 console.log(A.split(','))
18 //另外还有,Array.sort()排序,Array.slice()切片 (例如A.slice(0,3))

(二) 函数调用和方法调用

 1 //定义一个函数
 2 function f(x,y) {
 3     return x*y
 4 }
 5 //调用函数
 6 var x = f(1,2)
 7 console.log(x)
 8 //创建对象
 9 var the_obj = {}
10 //给对象the_obj定义一个名为m()的方法
11 the_obj.m = f
12 //看输出可以发现,对象the_obj的属性m的值是一个函数,这个时候称m()是对象the_obj的一个方法
13 console.log(the_obj)
14 //调用对象the_obj的方法m()
15 console.log(the_obj.m(1,2))

(三) 类

 1 //通过工厂函数定义一个类
 2 function people(pename,gender,age,hobby) {
 3     //通过括号里的(people.methods)和下面13行的people.methods对象定义类公有的方法(行为)
 4     //这里创建对象的时候,也可以用自己自定义的函数
 5     var r = new Object(people.methods)
 6     r.pename = pename
 7     r.gender = gender
 8     r.age = age
 9     r.hobby = hobby
10     return r
11 }
12 //定义该类事物共同的行为(类的方法)
13 people.methods = {getName:function () {return this.pename},
14     getMultiple:function (x) {return x*x}
15 }
16 var zs = people('张三','男','1000','修道')
17 console.log(zs)
18 console.log(zs.getName())
19 console.log(zs.getMultiple(2))
 1 //通过构造函数定义类
 2 //这里遵循一个常见的编程约定,定义构造函数即是定义类,并且类名首字母大写
 3 //而普通的函数和方法都是首字母小写
 4 function People(pename,gender,age,hobby) {
 5     this.pename = pename
 6     this.gender = gender
 7     this.age = age
 8     this.hobby = hobby
 9     
10 }
11 //属性名必须是prototype
12 //被所有People对象继承
13 People.prototype = {getName:function () {return this.pename},
14     getMultiple:function (x) {return x*x}
15 }
16 
17 var zs = new People('张三','男','1000','修道')
18 console.log(zs)
19 console.log(zs.getName())
20 console.log(zs.getMultiple(2))

(三) 类的继承

 1 //通过构造函数定义类
 2 function People(pename,gender,age,hobby) {
 3     this.pename = pename
 4     this.gender = gender
 5     this.age = age
 6     this.hobby = hobby
 7 
 8 }
 9 //属性名必须是prototype
10 //被所有People对象继承
11 People.prototype = {getName:function () {return this.pename},
12     getMultiple:function (x) {return x*x}
13 }
14 
15 
16 //仅定义子类
17 function Boy() {
18     //仅链接到父类
19     //调用父类的构造函数来初始化对象
20    People.apply(this,arguments)
21 
22 }
23 //将Boy设置为People的子类
24 Boy.prototype = new People()
25 Boy.prototype.constructor = Boy
26 
27 //重写父类的getName()方法
28 Boy.prototype.getName = function () {return this.age}
29 
30 var the_boy = new Boy('张三','男','1000','足球')
31 
32 console.log(the_boy)
33 console.log(the_boy.getMultiple(2))
34 console.log(the_boy.getName())

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 测试工程师的一些面试题目(python)和总结

        1、输入:JSON {"a":"aa","b":"bb","c":{"d":"dd","e":"ee"}}   输出:字典 {'a': 'aa', 'b...

    free赖权华
  • Python笔记(六):推导数据

    (一)  准备工作 创建1个文件记录运动员的跑步成绩 james.txt  2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-...

    free赖权华
  • JS笔记(一):基础知识

    free赖权华
  • JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝

    栈内存与堆内存 、浅拷贝与深拷贝,可以说是前端程序员的内功,要知其然,知其所以然。

    夜尽天明
  • 不靠谱的 console

    作为一名前端, console 估计会时时刻刻陪伴我们,其实各个端都会有输出变量的值的方法,以便调试,这里我指的 console 单纯指的是前端中的 conso...

    GopalFeng
  • 科学家研发能学习论文的人工智能技术

    据美国亚利桑那大学新闻网报道,该校一个研究团队正在采用人工智能算法学习成千上万篇研究论文,以获得改善治疗癌症患者的方法。 如何使每年发表的新科学数据(包括一百万...

    人工智能快报
  • 回应 LiveBot:基于视觉和文字语境生成视频直播评论(CS CL)

    实时视频评论系统是在线视频网站的一个新兴功能。最近中国视频分享平台 Bilibili,流行了一种新颖的字幕系统,用户的评论以移动字幕流的形式显示在视频播放画面上...

    刘持诚
  • 更多的 JavaScript 控制台功能

    你可能在 JavaScript 项目中用了console.log。这是一种查看变量值或程序运行中发生的事情的便捷方法。但是 JavaScript console...

    疯狂的技术宅
  • 「小技巧」console的用法,不仅仅只有console.log()

    在JavaScript开发调试中,console.log()是我们最常用的方法,但是还有其它几个常用的方法,值得我们试一试,也许会起到意想不到的效果。

    前端达人
  • 【C#】SM2C多云平台安全数据库应用

    下文为论文中的程序实现进行了英文描述,在此做备份,该应用上传在Github上https://github.com/qqxx6661/SMC_Yang,欢迎for...

    后端技术漫谈

扫码关注云+社区

领取腾讯云代金券