zoukankan      html  css  js  c++  java
  • 【JavaScript 1—基础知识点】:宏观概述

    导读: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 便类似与宇宙的概念。


    三、感受

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

    有时候,一看那个知识点觉得非常非常的熟悉,就不想总结,总觉得什么都差不多,总结也没多大收获。但是,事实上是没有两个完全一样的东西的,还是总结吧。一样的知识,权当重复+回顾+新体会;不一样的知识,嘿嘿嘿嘿.......



  • 相关阅读:
    Oracle SQL语句收集
    SqlParameter In 查询
    SQL 性能优化
    Entity Framework
    【XLL API 函数】 xlfSetName
    【XLL API 函数】xlfUnregister (Form 2)
    【XLL API 函数】xlfUnregister (Form 1)
    【Excel 4.0 函数】REGISTER 的两种形式以及VBA等效语句
    【Excel 4.0 函数】REGISTER
    【Bochs 官方手册翻译】 第一章 Bochs介绍
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010428.html
Copyright © 2011-2022 走看看