根据之前看了面向对象相关的视频,按照自己的理解,整理出相关的笔记,以便自己的深入理解。

javascript面向对象:

突发奇想,注意:===全等:是指既比较值,也比较类型(题外话,可忽略)

逻辑运算符(短路),如果前面num=num是真,则直接返回,是不会对后面”没有参数“这个进行运算。||(或)

框架中常用到的验证(做能力检测的技巧):

1、Delect用法:

例子1:

结论:删除数组中,只会删除掉这个数字,而该显示的长度是没有改变的,因为该删除的数字3被赋值为underfined。

例子2:

在查看元素中,按F11可以进行查阅代码的一步一步的进行情况:

结论:可以删除一个对象中的属性与方法。

例子3:

结论:规则就是:只能删除没有var声明的变量,有var声明的不能删除。

2、异常处理(报错):

例子:

在查看元素中显示结果如下:

注意:自己抛出错误:

3、函数的创建(有三种):

注意:函数的声明式是没有分号结尾的,有分号结尾的是表达式,函数的声明式是不允许有表达式出现的,但是函数的字面量(表达式也是字面量)可以出现在任意一个地方,声明可以在前面调用。

表达式在前面无法调用fn(),函数的字面量是:表达式的存在,是将一个表达式function(){ };赋值给变量var fn。后面一定要有分号。

注意:

凡是出现在表达式 中的函数声明,要么报错,要么自动转换成表达式,会自动转换成系统所需要的布尔类型或者是数值等等

例子:

if (true){
       function f(){
              console.log(123);
       }
}
f();
 
注意:
 function f(){console.log(123);   } 这个是声明,浏览器在第一遍读取的时候,不管你是什么,都会将function f(){console.log(123); }这个声明的部分提取出来。
 
看浏览器的运行流程:

 当断点在if (true)这个的时候,按“往下走一步”的时候,直接跳到f()这一个断点里,浏览器是会直接忽略里面的function f(){console.log(123);   } 这个声明;

注意:因为代码再一步一步执行的时候,根本不看这个声明,有跟没有是一样的,凡是声明,浏览器会忽略,

例如:var f =function func(){   }; 
 
这句话是正确的,浏览器是不会报错的,function func(){   }这个函数部分是表达式,不是声明,有冒号。
 
如果在这个表达式的前面调用函数: func();   var f =function func(){   };
会显示:

因为表达式无法在前面调用函数。
 
注意:当你将这样的代码:var f =function func(){   } 写在表达式中的时候,浏览器会自动转换成表达式。
 
例如:

while (函数写在这里,这里是表达式的位置){ },将函数写在圆括号里面,就不叫声明,而是表达式,写在圆括号里面的函数,要么报错,要么自动转换成表达式。

4、什么是面向对象 ?

从3个方向去谈:
1、面向对象的思想过程中的异同:
2、在JavaScript中,面向对象的表达形式:
3、在其他语言,面向对象的表达形式:
 
面向对象与面向过程的区别:

个人总结:

在传统面向对象中,是一步一步亲力亲为去做,一步都不能错。这叫做过程,一步一步的执行。
 
在面向过程中(传统面向对象中),是一步一步的去完成,一步都不能错,相当于一个执行者。而面向对象是:将这一个事情交给一个有能力的人去完成,将你这个执行者变成调动者(或者说是管理者),这个调动者就是找到这个对象,让它去执行。一种思想的转变。
 
再回到上面的例子:在jq的面向对象中,面向对象是直接告诉 jq:我要这样一个<p>标签。然后加到body里面。
 
面向对象是对面向过程的封装。

例子:给<div> </div> 和 <p> </p>添加边框

传统面向对象:

也可以:

改良:

为让函数更好用,修改一下函数名:

题外话:全局污染

console.log(a) 是可以访问到var a=123,是一个全局变量

例子:

代码一步一步往下解析,又遇到同样的var a,浏览器会默认将第二个var a=123  转换成a

为什么要有面向对象:

最简方式:

这个tag方法采用的不是等号,而是冒号的方式。同时也在圆括号里传递参数tagName.访问的时候,直接用itacast去访问执行。
id同上。

形式参数:占位符,形式参数就是公式里面用来替换数据的变量。

注意:面向对象的优势:

将一个复杂的结构进行封装,并且让我们全局作用域下的污染变得更少,在封装我们面向对象的时候还有一个优势是:将我们所有功能相近的代码组合到一个对象的下面,这样在维护的时候,也更加的方便,容易找出它的那些错误。

5、面向对象的形式组织结构

这样的一个好处是:将所有的这样一个功能,归类到一个属性下面,将功能进行归类,在全局作用域里面,只有一个对象(itcase)存在,但是它又可以灵活的去使用这个对象里面的每一个模块,每一个都将变成一个模块:

同时在维护起来,将更加的方便。

JS面向对象基础2的更多相关文章

  1. JavaScript基础精华02(函数声明,arguments对象,匿名函数,JS面向对象基础)

    函数声明 JavaScript中声明函数的方式:(无需声明返回值类型) function add(i1, i2) {             return i1 + i2;//如果不写return返回 ...

  2. [Js]面向对象基础

    一.什么是对象 对象是一个整体,对对外提供一些操作 二.什么是面向对象 使用对象时,只关注对象提供的功能,不关注其内部细节,比如Jquery 三.Js中面向对象的特点 1.抽象:抓住核心问题 2.封装 ...

  3. JS面向对象基础

    以往写代码仅仅是为了实现特定的功能,后期维护或别人重用的时候,困难很大. Javascript作为完全面向对象的语言,要写出最优的代码,需要理解对象是如何工作的. 1.       对象是javasc ...

  4. 第十四节 JS面向对象基础

    什么是面向对象:在不需要知道它内部结构和原理的情况下,能够有效的使用它,比如,电视.洗衣机等也可以被定义为对象 什么是对象:在Java中对象就是“类的实体化”,在JavaScript中基本相同:对象是 ...

  5. JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)

    什么是面向对象?面向对象是一种思想. 面向对象可以把程序中的关键模块都视为对象, 而模块拥有属性及方法. 这样如果我们把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.   工厂 ...

  6. js面向对象基础总结

     js中如何定义一个类? 定义的function就是一个构造方法也就是说是定义了一个类:用这个方法可以new新对象出来. function Person(name, age){ this.name = ...

  7. JS面向对象基础1

    根据之前看了面向对象相关的视频,按照自己的理解,整理出相关的笔记,以便自己的深入理解.     如果要判断两个数是否相等,将值乘以10或者100,转换成整数再进行比较 例如:a++与++a 短路运算符 ...

  8. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十五 ║Vue基础:JS面向对象&字面量& this字

    缘起 书接上文<从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 & 我的前后端开发简史>,昨天咱们说到了以我的经历说明的web开发经历的 ...

  9. js面向对象开发基础

    js的面向对象开发能力较弱,基本是以prototype为核心的面向对象,虽然现在出了个class这玩意,但本文还是先不做探讨. 面向对象基础——构造函数方法 var Fly = function (s ...

随机推荐

  1. postgresql----serial类型和序列

    postgresql序列号(SERIAL)类型包括smallserial(smallint,short),serial(int)和bigserial(bigint,long long int),不管是 ...

  2. 微信小程序-scroll-view隐藏滚动条

    在书写网页的时候,往往会为了页面的美观,而选择去掉滚动区域默认的滚动条,而在这里,就是为小程序去掉滚动条的其中的一种方法: scroll-view.wxml: scroll-view.wxss scr ...

  3. 转载--初识绘图工具plantUML

    原文出处:http://www.jianshu.com/p/e92a52770832 什么是 PlantUML PlantUML 是一个画图脚本语言,用它可以快速地画出: 时序图 流程图 用例图 状态 ...

  4. [MFC美化] SkinMagic使用详解1- SkinMagic使用流程

    [SkinMagic使用流程] 1.工程配置SkinMagic相关文件 2.初始化SkinMagic皮肤文件,窗体加载皮肤 3.释放皮肤资源 特别声明,SkinMagic要是破解版的,如果不是,可能需 ...

  5. Salesforce自主学习(一)

    Salesforce学习--接触Apex: 学习目标: 1.描述出Apex程序语言的关键特点: 2.保存一个Apex类并用另一个Apex类来调用它的方法: 3.使用Developer Console检 ...

  6. VM虚拟机的配置文件(.vmx)损坏修复

    来源://http://blog.csdn.net/houffee/article/details/18398603 VM虚拟机中使用.vmx文件保存虚拟机的所有软硬件配置,如果意外损坏的话将会出现不 ...

  7. CentOS单独编译安装PHP gd库扩展

    注意:如果您已经编译安装过GD库,请重新编译安装php不带gd库成功后,执行以下操作 安装libpng wget http://jaist.dl.sourceforge.net/project/lib ...

  8. 驱动相关Error

    驱动中 fltKernel.h报 EPROCESS和PETHREAD重定义异常解决办法 驱动编写中经常会莫名出现 error C2371: 'PEPROCESS' : redefinition; di ...

  9. Python学习笔记——基础篇【第五周】——正在表达式(re.match与re.search的区别)

    目录 1.正在表达式 2.正则表达式常用5种操作 3.正则表达式实例 4.re.match与re.search的区别 5.json 和 pickle 1.正则表达式   语法: import re # ...

  10. [SQL基础教程] 2-3 逻辑运算符

    [SQL基础教程] 2-3 逻辑运算符 NOT AND OR 优先级 ( )改变优先级 AND 优先级高于 OR NULL 引入三值逻辑