1.javascript包含 
◆ECMAScript:规定的js的语法规范。
◆DOM:Document Object Model 文档对象模型(一种数据结构),提供了一套操作页面元素的API。
◆BOM:Browser Object Model 浏览器对象模型,也是提供了一套操作浏览器的API。

2.javascript的数类型
◆基本数据类型:string number boolean undefined。
◆复杂数据类型(引用类型):Array、Date、Object、RegExp、String、Boolean、Number、Function、Math、null 、...。
◆空类型:null、undefined。

3.in关键字
◆in关键字可以用来for遍历
◆可以用来判断是否是一个对象的成员的键,如 var obj={name:'zj'}; console.log("name" in obj);//true
◆可以用来判断是否是一个数组的成员的索引,如 var arr=[1,2,3,4];console.log(0 in arr);//true;

4.时间对象
◆GMT 格里尼治标准时间 (一个天文台制定的时间)
◆UTC 世界协 调时间

5.对象的动态特性
◆当对象被创建出来后,可以使用这个对象加.运算符或使用中括号[]的方式来直接添加新的属性和方法。

6.delete关键字
◆delete关键字用于删除对象的属性,还有未使用var关键字声明的变量。
◆delete关键字有返回值,用来表示删除属性是否成功。
◆如果 删除的是不存在的属性,返回值为true。
◆如果 删除的属性是存在原型当中的,那么就不会删除,但是返回值还是true,不过因为原型中的属性是属于基类的,所以无法真正删除。

7.通过浏览器进行调试(开发人员工具)
◆Elements,可以看到页面的代码,也能够看到页面的样式,还可以看到通过计算后最终的样式,还可以看到,页面的元素的dom对象。
◆Consoles,是拥有和页面的script对一样的环境,可以直接在这里书写js代码。
◆Sources,可以对页面的js 代码进行调试,通过打断点和添加监视项来进行调试的操作,也是这样来获取代码执行的状态和你想要得到的一些信息,调试的操作【
◇点击的是逐过程运行,遇到函数调用,就会直接执行完函数,拿到返回值,不会跑到函数中一步步执行代码。
◇点击的是逐步运行,遇到函数调用,会进到函数里面,一步一步的执行代码,知道执行完函数中所有的代码再跳出函数。
◇点击的是跳出当前函数,这个操作是在逐步运行时在函数里面的时候才能使用的,方便你立即跳出当前函数。
◇点击的是切换断点激活状态,这个操作是让你在打了断点之后,但是暂时还不想使用断点,可以通过切换断点的激活状态为非激活状态来停止当前所有断点的时候,并不会清空掉你打的断点。
◇点击的是启动代码异常时暂停,这个操作是,当你的代码出现错误了,会在出错的一瞬间暂停下来,并且会跳到出错的代码哪里,这样你就能够监视出哪里出现问题了,如果启动了就不会在控制台报错了,而是在报错的地方暂停下来。
◇Watch 是添加监视的表达式,可以手动添加,也可以使用鼠标右键添加,只要书写表达式即可,也 就是js代码。
◇Call Stack 是函数调用栈,一般情况下用不到。
◇Scope 是变量作用域,当你进入函数的时候,会把当前的变量作用域罗列出来。
◇Breakpoints 是断点,当你所有打的断点之后就会在这里面罗列出来,也可以在这里将你打的某个断点取消激活状态。
◇条件断点,这个非常实用,是在打断点的地方右键添加Add conditional breakpoint,然后书写表达式,如你在一个for循环1000次中,那么你写的表达式可以是 i==956,那么就不必一次一次的点击逐步执行了,它就会在i等于956的时候才会进 入断点了。





◆Network,用来监视请求信息的,无论是发送出去的请求还是接收回来的响应,都能够获取到信息,比如说请求报文请求信息和响应报文的响应信息,还有一些其它选项【
◇Preserve log,选中这个复选框,表示保存当前所有的请求,就算你页面跳转也能够保存之前的信息,默认是页面跳转时清空之前的信息。
◇No throttling,切换这个下拉列表,可以模拟用户的在线状态,也就是在不同网速下的运行效果如何。





】。

8.定义函数的三种方式
◆直接声明函数 function funcName(){}
◆使用函数表达式 var functionNmae1=function name(){},可以写name也可以不写,就算你写了name,也没有多大用,因为这个name在函数外部并不能使用,只能在函数内部使用,而且并不是所有浏览器都会支持,因为这种写法并不在标准之内,所以函数表达式最好是使用匿名函数。
◆创建函数对象的方式,var functionaName2=new Function("console.log('haha');");,这种方式与函数表达式的方式类似,指定是原理类似。

9.dom操作(增删改查)
◆获取元素操作:getElementById、getElementsByTagName、getElementsByClassName、getElementsByName
◆元素节点操作:appendChild、insertBefore、removeChild、replaceChild、cloneNode,createElement、createTextNode(创建文本节点)
◆属性节点操作:getAttribute、setAttribute、removeAttribute
◆常用的DOM属性:className、innerHTML、innerText/textContent、value、children

10.异常处理 
◆异常捕获关键字: try catch finally
◆异常捕获完整语法:【
try {
a();
//可能会出现的问题的代码
} catch(e) {
console.log(e);//e表示异常信息
//出现异常后的处理代码
}finally {
//不管有没有异常,这里的代码都会执行
console.log("finally");
//实际上这个地方在node.js中使用
//做为释放资源的操作。
}

◆异常最大的特征,就是一旦出现代码异常,后面的代码就不会再执行,为了保证后面代码在出现异常之后,后面的代码能够继续执行,那么就需要使用异常捕获,异常捕获之后就不会影响剩下的代码执行了。
◆自定义异常:手动抛出异常使用throw关键字,如【
try {
throw "你的代码坏掉了,赶快修修";
}catch(e) {
console.log(e);
}

★但是语法错误就捕获不了,因为js在预解析时就会检查语法错误,而捕获异常是在js执行时才会进行。

11.面向过程与面向对象
◆面向过程的思维方式:就是把解决问题的关注点,放到解决问题的每一个详细的步骤上面(方法)!如【
洗衣服:
1.收集衣服
2.打开洗衣机盖子
3.把衣服放进去
4.关洗衣机盖子
5.设定洗衣程序
6.打开洗衣机盖子
7.晾衣服
8.收衣服

◆面向对象的思维方式:就是把解决问题的关注点,放到解决问题需要的一系列对象身上,如【
洗衣服:
1.找个女朋友

◆面向过程与面向对象的思维方式进行对比

☆去餐馆吃饭
◇面向过程的思维方式【
1.进餐馆
2.点菜
3.做菜
4.上菜
5.吃菜
6.结账
7.拍拍屁股走人

◇面向过程的思维方式【
1.我
2.餐馆


★面向过程就像是一个公司里的员工,它做的都是最底层的,需要注意每一个详细的步骤,只有这样才能做好,出了问题就需要去找每一个详细步骤,然后解决问题。
★面向对象就像是一个公司里的老板,它要做什么只需要下一个命令然后命令下面的员工去做,具体详细步骤老板不管,让底下的员工去就可以了,出了问题就找员工,让员工再去解决问题。

12.类与对象
◆对象:万物皆对象,对象是一个具体的事物,它有具体的特征,也正是因为这些特征才能够描述某一个具体的对象。
◆编程中的对象是由特征和行为组成,如人的特征有name age gender height,人的行为有 吃 跑 跳 睡 唱 抽烟 喝酒 烫头。
◆在js当中,键值对儿的组合就是对象。

13.封装
◆使用函数来进行封装,会出现全局变量的污染,因为函数要放到最外面,并且函数名不能够重复,如果重复了可读性也不好,因为你不知道你调用的哪一个,并且在js中,后面的函数会覆盖掉前面的函数,并且在最外面写那么多函数,维护起来很麻烦,看起来代码的结构不是很清晰。
◆使用对象进行封装,会将一些变量和函数放到对象中,相当于给了那些变量和函数一个命名空间,那么就不会造成变量的全局污染,并且维护起来很方便,因为只需要找到对应的对象,然后不断更新对象的特征和行为即可,但是使用对象封装实际上就是给原来那些变量还有函数分配了指定的合适的命名空间,也就是把对应的变量和函数以键值对的方式放到一个对象中,使用的时候可以通过对象.的方式和对象[]的方式来进行调用。
◆使用函数来进行封装的好处是,能够小范围的将代码划分为一个功能模块儿,防止重复性代码的出现,但是封装的函数是全局的,也就是说不能够重名,而且维护的时候有点麻烦。
◆使用对象来进行封装的好处是,暴露在全局的只有一个对象名,不会造成全局变量的污染,在对象中也可以进行函数的封装,并且这样更加利于将代码进行功能模块儿的划分,有利于日后的维护。

转载于:https://www.cnblogs.com/jwlLWJ2018/p/9247779.html

js+面向对象相关笔记(一)相关推荐

  1. js+面向对象相关笔记(六)

    1.绘制作用域链 ◆先画0级作用域链 ◆在全局作用域中查找,函数和变量的声明,然后将这些变量和函数,以小方块儿的形式放到0级作用域链上 ◆从0级作用域中的函数引出1级作用域 ◆再去每个1级作用域中查找 ...

  2. ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能

    前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...

  3. JS面向对象一:MVC的面向对象封装

    JS面向对象一:MVC的面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) 面向对象里面向的意思是以...为主,面向对象编程既以对象为主的编程. 面向对象的一 ...

  4. js面向对象思想封装拖拽功能,兼容pc和移动端

    我们在开发项目过程中,很可能会碰到页面上某块需要可以拖拽移动的功能需求,网上已经有不少前辈分享了相关功能的案例,插件或者代码,但是考虑到项目功能需求,我们可能仅需要实现拖拽移动功能就可以,不需要其他功 ...

  5. JS逆向学习笔记 - 持续更新中

    JS逆向学习笔记 寻找深圳爬虫工作,微信:cjh-18888 文章目录 JS逆向学习笔记 一. JS Hook 1. JS HOOK 原理和作用 原理:替换原来的方法. (好像写了句废话) 作用: 可 ...

  6. 一文读懂JS继承相关知识点

    一文读懂JS继承相关知识点 Javascript 面向对象编程(一):封装 一. 生成实例对象的原始模式 二. 原始模式的改进 三. 构造函数模式 四.构造函数模式的问题 五. Prototype模式 ...

  7. js面向对象编程基础

    js面向对象 文章目录 js面向对象 对象的引用 原型和原型链 系统对象与包装对象 面向对象相关语法 对象的引用 类型比较方式      对象比较时,值跟引用地址都相同时才相等. 类型赋值方式     ...

  8. node.js服务端笔记文档学会写接口,学习分类:path、包、模块化、fs、express、中间件、jwt、开发模式、cors。

    node.js 学习笔记 node.js服务端笔记文档学会写接口,path.包.模块化.fs.express.中间件.JWT.开发模式.cors. gitee:代码接口笔记 1什么是node.js n ...

  9. Python--从基础到面向对象全过程笔记

    从基础到面向对象全过程笔记 01--类型转换.py 02--输入与输出.py 03--比较运算.py 04--分支.py 05--判断输入的年份是否是闰年.py 06--条件语句嵌套.py 07--随 ...

  10. Vue.js 框架基础笔记

    Vue.js 框架基础笔记 1. Vue.js 基本概念 1.1 遇见 Vue.js 1.1.1 为什么要学习 Vue.js 1.1.2 前端开发的复杂化 1.1.3 Vue.js 特点 1.1.4 ...

最新文章

  1. 无法启动MySQL数据库
  2. 【赫夫曼树详解】赫夫曼树简介及java代码实现-数据结构07
  3. ArcGIS实验教程——实验二十一:DEM分析
  4. 如何文件服务器安装打印机,如何安装打印机方法图解
  5. 不能随意切换的Tab选项卡页面
  6. 非常简单,让log4j输出mybatis的sql语句和执行结果
  7. matplotlib无法显示图片的解决方法(non-gui backend)
  8. Unigui使用IconFont图标
  9. 智能车基于RT1064+无线串口透传模块利用MATLAB辅助调节PID参数
  10. 腾讯2020校园招聘笔试题解
  11. 电脑换新季让我终于脱离了盗版屌丝群
  12. Python-温度转换
  13. 7. 成功解决:io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
  14. 未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)
  15. TFS二次开发系列:七、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)
  16. moto+早期android手机,王者归来 MOTO近期Android手机汇总
  17. 计算机专业郑州粮食批发市场,什么是期货呢????
  18. Mysql 物理备份
  19. 图的应用---最短路径问题 用迪杰斯特拉算法解决 《地铁换乘问题》
  20. window hello指纹设置不了,弹窗闪退。

热门文章

  1. 【渝粤教育】国家开放大学2018年春季 0043-21T计算机文化 参考试题
  2. 【渝粤教育】国家开放大学2018年春季 0032-21T农业经济学 参考试题
  3. caffe loss layer
  4. Numpy系列(一)array对象以及创建array的方法总结
  5. Python基础:字典(dict)与集合(set)
  6. linux下常见软件安装
  7. [转]英特尔为什么能在CPU方面领跑?
  8. vs code安装使用ESLint,typescript
  9. JAVA学习笔记(五)
  10. Image Style Transfer:多风格 TensorFlow 实现