JavaScript 阶段小结

  JavaScript
是一种脚本语言,主要用在浏览器中,实现对网页的文档对象的操作和一些用户交互动作的处理。李炎恢老师所讲的一百多集视频,对JavaScript进行了一次比较彻底的剖析,作为初学者感觉老师讲了好多的东西。这是缺乏全局观的表现,没有在全局上对JavaScript进行分析,只是一头扎进视频里不能自拔,所以才觉得知识琐碎,没有联系。但是对视频中琐碎的知识进行整理才发现:

  JavaScript一共分为三部分:ECMAScript、DOM、BOM。

  ECMAScript实际上是一种脚本语言在语法和语义上的标准,定义了脚本语言的所有属性、方法和对象。这些基础的知识就不再多说了,这里主要提一下JavaScript的继承机制是怎么实现的。

  作为面向对象的语言,JavaScript也必须支持继承机制,但是他的继承却与其他语言略有不同。

  1、 对象冒充

  构造函数使用this关键字给所有属性和方法赋值。因为构造函数只是一个函数,所以可使ClassA的构造方法称为ClassB的方法,然后调用它。ClassB就会收到ClassA的构造方法中定义的属性和方法。

  这样变量b中就包含了ClassA中定义的方法。

	function ClassA(name){
            this.name=name;
            this.getName=function(){
                return this.name;
            }
        }

        function ClassB(name,password){
            this.ClassA=ClassA;
            this.ClassA(name);
            delete this.ClassA;

            this.password=password;
            this.getPassword=function(){
                return this.password;
            }
        }

        var b =new ClassB('wwww','1123');
        document.write(b.getName());

  此外,我们还可以通过call()和apply()方法实现对象冒充,不再举例。

  2、原型链

  原理是:对象的构造函数可以从其他对象中继承方法,它创建出一个原型对象后,所有其他的新对象都可以基于这个原型对象来构建。原型本身并不会从其他原型或者构造函数中继承属性,而属性都是从实际对象那里继承过来的。

	function Person(name){
            this.name=name;
        }

        Person.prototype.GetName=function(){
            return this.name;
        }

        function User(name,password){
            this.name = name;
            this.password = password;
        }

        User.prototype = new Person();
        User.prototype.GetPassword=function(){
            return this.password;
        }

  解释:

  User.prototype = new Person();这句话如何理解呢?User是对User对象构造函数的引用,new Person()使用person构造函数创建了一个Person对象,然后把Person对象的原型置为这个操作的结果。也就是说,当每次new User()时,得到的新User对象都会带有Person对象的所有方法

  DOM--对象文档模型(Document Object Model),是 HTML 和 XML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。HTML
或 XML 页面的每个部分都是一个节点的衍生物,用 DOM API 可以轻松地删除、添加和替换节点。通过这种机制使我们对文档的内容和结构具有空前的控制力,大大提高了页面的交互能力。

  HTML DOM树形图:

  BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,我们可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。

  其中就包括浏览器检测,由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤。虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能;但在现实中,浏览器之间的差异,以及不同浏览器的“怪癖”却是非常多的,因此浏览器检测除了是一种补救措施,更是一种行之有效的开发策略。作为开发者,我们更应该全面的考虑问题,提高系统的健壮性、可靠性!

  总结:

          ECMAScript 描述了JavaScript语言的语法和基本对象;——核心

          DOM 描述了处理网页内容的方法和接口;

          BOM 描述了与浏览器进行交互的方法和接口。

JavaScript的学习才刚刚开始。。

时间: 2024-10-18 06:26:03

JavaScript 阶段小结的相关文章

javascript 学习小结 (二) by FungLeo

javascript 学习小结 (二) by FungLeo 前言 前面写过一个学习小结javascript 学习小结 JS装逼技巧(一) by FungLeo 那篇博文总结的东西还是比较多的. 但是JS有很多的内容,都是很有用的知识点,不可能一下子记住.因此,我的学习小结的会一直更新. 因为学习进度的不同,可能每篇博文的长短也不一样,有的学的东西多,就长点. 查询某个字符串在某个数组中的索引值 笨方法 我的基础比较差,所以很多东西是记不住的.因此,我在需要这样做的时候,我写了如下代码 var

Javascript数组小结

Javascript数组小结 Javascript将指定的数字索引值转换成字符串--索引值1变成"1"--然后将其作为属性名来使用. 数组的length修改后,数组中大于设定值的元素将被删除 数组的添加删除: 1)  修改length属性值(删除) 2)  push.pop在数组的尾部进行插入.删除操作并返回操作元素:unshift和shift()在数组的首部进行插入.删除操作 3)  delete可以删除数组元素,但它不会改变数组的length属性,只是将该值置空. 4)  spli

javascript 学习小结 JS装逼技巧(一) by FungLeo

javascript 学习小结 JS装逼技巧(一) by FungLeo 前言 最近一直在做javascript方面的工作.但是本身我的javascript水平比较低,因此在学习过程中比较困难.而最近又接触到了很多的知识点.好记性不如烂笔头,因此写这篇零碎的博文,记一记我学到的一些好玩的东西. 简单的新建各种元素 创建各种元素都有相对应的方法,例如,创建一个数组可以这样写var arr = new Array 当然,这样做是对的,但是我英文很烂,并且不喜欢这样的代码.我喜欢的是下面这样的. //

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo 前言 在JS学习中,对于原生的很多东西我理解得并不透彻.但是使用jQuery来操作DOM,基本上还是非常熟练的.但是对于AJAX数据交互的处理,我不是很理解. 近期团队交给我一个后端全接口提供给我的项目.我要利用这些接口来自己组织前端代码.为了学习,我决定不使用VUE或者其他的前端框架来做.而是只使用jQuery框架,数据的部分全部使用拼接字符串的形式实现. 获取数据,显示数据,提交数据. 在这个项目中(

莫队阶段小结

莫队阶段小结 首先,为什么要叫小结呢,因为我只学了一点点,后续可能更多 莫队 莫队是一种离线处理区间问题的神器.答题思路就是你将原数列分成\(\sqrt{n}\)块,将所有查询左端点定位,并按照左端点所在的块进行排序,相同则按照右端点排序 大体就是这个样子 inline bool cmp(Q x,Q y){ return belong[x.li] == belong[y.li] ? x.ri < y.ri : x.li < y.li; } 这样的话我们每个快内都暴力求 时间复杂度为\(O(m\

考试系统阶段小结(一)

做考试系统有两个半月了,1.0迭代已经结束,现在进入V2.0阶段都有将近一个星期的时间了.总体来说还是有很大收获的,无论是从技术上.思想上还是自己的学习方法上等. 先从技术上说吧,自己以前学B/S时候都是看看视频,敲敲例子,也很少自己像当初学习VB时候还一段一段代码那样写了,都是看一行写一行,但实现完成后的满足感却丝毫没有减少.这样就造成了盲目赶进度,基础没有打扎实.在Javascript和Ajax的项目使用中尤为明显,做着比较有难度. 自己的代码调适能力通过项目有了一定的提高. 从调试方法上来

JavaScript阶段总结(一)

在牛腩新闻发布系统中我们曾经接触过JavaScript和JQuery这两个概念,但是具体是什么呢?那时候只是简单的了解了一下,并没有作深入的研究.而随着我们学习的深入,所接触的东西也就越来越深入,现在也就开始了JavaScript的详细学习. 这部分的学习视频大概是150集,所以为了避免因为学着后边的而把前边的忘记,阶段总结是必须的,既是对所学的知识的一个统筹把握,也是为下一步学习打基础. 什么是JavaScript? JavaScript是一种具有面向对象能力的.解释型的程序设计语言.基于对象

javascript事件小结(事件处理程序方式)--javascript高级程序设计笔记

1.事件流:描述的是从页面中接收事件的顺序. 2.事件冒泡:IE的事件流叫做事件冒泡,即事件开始从具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到不具体的节点(文档). 3.事件捕获:指不太具体的节点应该更早接收到事件,而具体的节点应该是最后接收到事件. 4.DOM事件流:“DOM2级事件”规定的事件流包含三个阶段:事件捕获,处于目标阶段和事件冒泡阶段.(实际的目标元素在捕获阶段接不会收到事件) IE不支持DOM事件流,Opera.safari.chrome.firefox支持

Android 手机卫士--阶段小结1

本文地址:http://www.cnblogs.com/wuyudong/p/5904528.html,转载请注明源地址. 本文对之前手机卫士开发进行一个小结. 1.SplashActivity 版本名称的展示,从清单配置文件中获取版本名称,PackageManager 服务端新版本的检测(本地版本号<服务器版本号) 展示logo 2.手机防盗 sim卡绑定:每一款手机都会有相应的卡的序列号,一旦替换掉原有电话卡,序列号会发生改变 3.手机卫士分包 基础课程分包方式,每一个类包名, com.it