JavaScript面向对象编程指南 第一、二章知识点整理

第一章、 面向对象的JavaScript

面向对象程序设计(OOP,Object -Oriented Programming)中最常用到的概念: 对象:是指"事物"在程序设计语言中的表现形式。 这里的"事物"可以是任何东西。例如,对于猫这种常见对象来说,我们可以看到它们具有某些明确的特征(如颜色、名字、体型等),能执行某些动作(如喵喵叫、睡觉等)。在OOP语义中,这些对象特征都叫做属性,而那些动作则被称为方法。 :在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象(又称 "实例")共有的属性和方法 JavaScript与C++或Java这种传统的面向对象语言不同,他实际上压根儿就没有类。该语言的一切都是基于对象的,其依靠的是一套原型(prototype)系统。而原型本身实际上也是一种对象。 在传统的面向对象语言中,我们一般会这样描述:"我基于Person类创建了一个叫做Bob的新对象"。而在这种基于原型的面向对象语言中,我们则要这样描述:“我将现有的Person对象扩展成了一个叫做Bob的新对象。” 封装:封装主要用于阐述对象中所包含的内容,通常由两部分组成。

  • 相关的数据(用于存储属性)。
  • 基于这些数据所能做的事(所能调用的方法)。

聚合:将几个现有对象合并成一个新对象的过程。 继承:在传统的OOP环境中,继承通常指的是类与类之间的关系,但由于JavaScript中不存在类,因此它的继承只能发生在对象之间。通过继承这种方式,我们可以非常优雅地实现对现有代码的重用。 多态:不同对象通过相同的方法调用来实现各自行为的能力,我们就称之为多态。

第二章、基本数据类型、数组、循环及条件表达式

2.1 基本数据类型综述 2.1.1JavaScript语言中有五大基本数据类型:

  • 数字;
  • 字符串;
  • 布尔值;
  • undefined;
  • null。

任何不属于基本类型的东西都属于对象。 2.1.2 数字类型可以储存的数据包括:正负整数、浮点数、十六进制与八进制数、指数以及特殊数值NaN、Infinity、 -Infinity。 2.1.3 字符串类型存储的是一对引号之间的所有字符。 2.1.4 布尔类型的值只有两个:true和false。 2.1.5 null类型的值只有一个:null。 2.1.6 undefined类型的值只有一个:undefined。 2.1.7 绝大部分值在转换为布尔类型事都为true,但以下6种falsy值除外:

  • ""(空字符串,若" "引号里面有空格结果就不一样了,转换为布尔类型为true);
  • null;
  • undefined;
  • 0;
  • NaN;
  • false。

2.3.2 Infinity Infinity表示的是最大的数,-Infinity表示的是最小的数,任何数除以0结果也为Infinity,不包括0,0除以0得到的是NaN。正负Infinity做算术运算得到的是NaN,Infinity与其他任何操作数(即数字类型里除了NaN和正负Infinity)执行任何算数运算的结果也都等于Infinity。 2.3.4 惰性求值 a&&b:将a,b转换为Boolean类型,在执行逻辑与,true返回b,false返回a; a||b:将a,b转换为Boolean类型,在执行逻辑或,true返回a,false返回b 2.9 练习题 编写一个打印乘法口诀的脚本程序。提示使用嵌套语句来实现。

for(var i=1;i<10;i++){
    for(var j=1;j<=i;j++){
        document.write(j+"*"+i+"="+i*j+" ");
    }
    document.write("<br>");
}

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏debugeeker的专栏

《coredump问题原理探究》Linux x86版6.7节多继承

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

661
来自专栏菩提树下的杨过

python中的zip、lambda、map操作

python 中有几个比较酷炫的操作,比如:zip、lambda、map 一、zip操作 zip字面意思:拉链。这么记,把几个东西扔到一个包里,拉上拉链,就算打...

3076
来自专栏python学习指南

python字典

本篇将介绍Python里面的字典,更多内容请参考:Python学习指南 Python是什么? Python内置了字典dict的支持,dict全称dicti...

2488
来自专栏Micro_awake web

es6(二):解构赋值

ES中允许按照一定格式从数组,对象值提取值,对变量进行赋值,这就是解构(Destructuring) 1 let [a,b,c]=[1,10,100] 2 ...

1985
来自专栏SeanCheney的专栏

《利用Python进行数据分析·第2版》第3章 Python的数据结构、函数和文件3.1 数据结构和序列3.2 函数3.3 文件和操作系统3.4 结论

本章讨论Python的内置功能,这些功能本书会用到很多。虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具...

4526
来自专栏我是攻城师

Java里面关于数组拷贝的几种方式

2834
来自专栏marsggbo

c++学习笔记之继承篇

一 继承方式 public ? protected ? private ? 二 多继承和多重继承 举个例子就明白了 多继承 :农民工就算是多继承。 graph...

1877
来自专栏Crossin的编程教室

关于函数参数传递,80%人都错了

https://docs.python.org/3/faq/programming.html#how-do-i-write-a-function-with-ou...

1153
来自专栏九彩拼盘的叨叨叨

JavaScript 数组练习题

** 题 1:查找数组对象中 age 大于 18 对象 ** 编写函数 filterAdult,满足

751
来自专栏数据科学与人工智能

【Python环境】Python函数式编程指南(2):函数

2. 从函数开始 2.1. 定义一个函数 如下定义了一个求和函数: def add(x, y): return x + y 关于参数和返回值的语法细节可以参考...

2165

扫码关注云+社区