您的位置:首页 > Web前端 > JavaScript

【JavaScript 1—基础知识点】:宏观概述

2015-05-27 09:56 330 查看
导读:JavaScript是一门新的(也可以说是旧的或者半新语言),里面有很多的知识点都能和已有的知识产生共鸣。但是,虽然简单,相同点也有很多,也有不同点。我脑袋也不好使,所以对于我来说,还是有必要再重复的总结回顾一下,增添一下印象。

一、俯瞰

1,定义

JavaScript:是一种具有面向对象能力的、解释性的程序设计语言。它基于对象和事件驱动并具有相对安全性的客户端脚本语言。它不需要再一个语言环境下运行,而只需要支持它的浏览器即可。它的主要目的是,验证发往服务器端的数据,增加Web互动,加强用户体验度等。

2,图示



3,说明

3.1,问题1

:注释很重要,帮助人们理解程序,但为什么在代码嵌入的时候,不需要提供注释?

:在代码嵌入的过程中,以前使用注释是为了让不支持JavaScript的浏览器能直接跳过JavaScript语言代码,而使其界面友好。现在的浏览器,均支持JavaScript语言,所以,在代码嵌入的时候,无需提供注释。

3.2,问题2

:为什么代码嵌入的时候,无添加代码?

:当JS代码很多很庞大的时候,我们需要将其另存为一个文件(封装),然后通过src标签进行调用。在封装好的文件中,已经包括你要执行的所有代码,所以不需要添加代码。如果有需要,则需要在另外的标签里填写,或者修改封装好的代码文件。

理解:就像是我们封装好了一个方法,当我们在别处调用时,我们不能在调用的过程中,再对封装好的方法进行修改,而如有必要的要,我们也只能返回原有类中的方法进行修改。

二、近看

1,注释

ECMAScript使用C风格的注释,包括单行注释和块级注释。

//单行注释

/*

 *多行(块级)注释

 *

*/

2,变量

在JavaScript里,变量的定义通过操作符Var,比如说定义一个字符串变量:var strTest=“测试”,而我们在别的地方,C#中,则会这么定义:String strTest=“测试”,如果在VB中,则可能会出现Dim strTest  as  string等。

虽然这些都有差异,但我认为这都不是问题,就像人的头发可以这么梳也可以那么梳一样,说到底还就是一把头发,一个方式而已。

3,面向对象

在JavaScript里,有对于庞大JS代码的抽象文件,我将这个理解为封装。也有属于它的继承机制(通过原型实现的继承),虽然没有见到多态,但我觉得它也是一种面向对象的语言,虽然形式和以前的不一样。在这里,我得说明一下,什么叫做通过原型实现的继承机制。

3.1,基于类的面向对象 和基于原型的面向对象方式比较(摘抄:全面理解面向对象的 JavaScript

在基于类的面向对象方式中,对象(object)依靠 类(class)来产生。而在基于原型的面向对象方式中,对象(object)则是依靠 构造器(constructor)利用 原型(prototype)构造出来的。举个客观世界的例子来说明二种方式认知的差异。例如工厂造一辆车,一方面,工人必须参照一张工程图纸,设计规定这辆车应该如何制造。这里的工程图纸就好比是语言中的 类 (class),而车就是按照这个 类(class)制造出来的;另一方面,工人和机器 ( 相当于 constructor) 利用各种零部件如发动机,轮胎,方向盘
( 相当于 prototype 的各个属性 ) 将汽车构造出来。

事实上关于这两种方式谁更为彻底地表达了面向对象的思想,目前尚有争论。但笔者认为原型式面向对象是一种更为彻底的面向对象方式,理由如下:

首先,客观世界中的对象的产生都是其它实物对象构造的结果,而抽象的“图纸”是不能产生“汽车”的,也就是说,类是一个抽象概念而并非实体,而对象的产生是一个实体的产生;

其次,按照一切事物皆对象这个最基本的面向对象的法则来看,类 (class) 本身并不是一个对象,然而原型方式中的构造器 (constructor) 和原型 (prototype) 本身也是其他对象通过原型方式构造出来的对象。

再次,在类式面向对象语言中,对象的状态 (state) 由对象实例 (instance) 所持有,对象的行为方法 (method) 则由声明该对象的类所持有,并且只有对象的结构和方法能够被继承;而在原型式面向对象语言中,对象的行为、状态都属于对象本身,并且能够一起被继承(参考资源),这也更贴近客观实际。

最后,类式面向对象语言比如 Java,为了弥补无法使用面向过程语言中全局函数和变量的不便,允许在类中声明静态 (static) 属性和静态方法。而实际上,客观世界不存在所谓静态概念,因为一切事物皆对象!而在原型式面向对象语言中,除内建对象 (build-in object) 外,不允许全局对象、方法或者属性的存在,也没有静态概念。所有语言元素 (primitive) 必须依赖对象存在。但由于函数式语言的特点,语言元素所依赖的对象是随着运行时 (runtime) 上下文 (context)
变化而变化的,具体体现在 this 指针的变化。正是这种特点更贴近 “万物皆有所属,宇宙乃万物生存之根本”的自然观点。在 程序清单 1中 window 便类似与宇宙的概念。

三、感受

年纪增长,越来越发现自己的脑子不记事儿了。不过,这也好,正是这不记事儿的脑子,催促我学习了就回头总结。

有时候,一看那个知识点觉得非常非常的熟悉,就不想总结,总觉得什么都差不多,总结也没多大收获。但是,事实上是没有两个完全一样的东西的,还是总结吧。一样的知识,权当重复+回顾+新体会;不一样的知识,嘿嘿嘿嘿.......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: