美文网首页
javascript 20170628自学总结

javascript 20170628自学总结

作者: ea203453e188 | 来源:发表于2017-06-28 15:51 被阅读59次

    JavaScript历史

    要了解JavaScript,我们首先要回顾一下JavaScript的诞生。

    在上个世纪的1995年,当时的网景公司正凭借其Navigator浏览器成为Web时代开启时最著名的第一代互联网公司。

    由于网景公司希望能在静态HTML页面上添加一些动态效果,于是叫Brendan Eich这哥们在两周之内设计出了JavaScript语言。你没看错,这哥们只用了10天时间。

    为什么起名叫JavaScript?原因是当时Java语言非常红火,所以网景公司希望借Java的名气来推广,但事实上JavaScript除了语法上有点像Java,其他部分基本上没啥关系。

    ECMAScript

    因为网景开发了JavaScript,一年后微软又模仿JavaScript开发了JScript,为了让JavaScript成为全球标准,几个公司联合ECMA(European Computer Manufacturers Association)组织定制了JavaScript语言的标准,被称为ECMAScript标准。

    所以简单说来就是,ECMAScript是一种语言标准,而JavaScript是网景公司对ECMAScript标准的一种实现。

    那为什么不直接把JavaScript定为标准呢?因为JavaScript是网景的注册商标。

    不过大多数时候,我们还是用JavaScript这个词。如果你遇到ECMAScript这个词,简单把它替换为JavaScript就行了。

    JavaScript版本

    JavaScript语言是在10天时间内设计出来的,虽然语言的设计者水平非常NB,但谁也架不住“时间紧,任务重”,所以,JavaScript有很多设计缺陷,我们后面会慢慢讲到。

    此外,由于JavaScript的标准——ECMAScript在不断发展,最新版ECMAScript 6标准(简称ES6)已经在2015年6月正式发布了,所以,讲到JavaScript的版本,实际上就是说它实现了ECMAScript标准的哪个版本。

    由于浏览器在发布时就确定了JavaScript的版本,加上很多用户还在使用IE6这种古老的浏览器,这就导致你在写JavaScript的时候,要照顾一下老用户,不能一上来就用最新的ES6标准写,否则,老用户的浏览器是无法运行新版本的JavaScript代码的。

    不过,JavaScript的核心语法并没有多大变化。我们的教程会先讲JavaScript最核心的用法,然后,针对ES6讲解新增特性。

    1. 使用javaScript能做什么?
      数据可视化
      移动端应用: Cordova
      服务端:Node.js
      桌面应用: NW.js 和 Electron
      游戏
      VR
      AR
      硬件
      物联网

    2. javaScript语言特点?
      JavaScript是一门动态的,弱类型,基于原型的脚本语言。在JavaScript中“一切皆对象”,在这一方面,它比其他的OO语言来的更为彻底,即使作为代码本身载体的function,也是对象,数据与代码的界限在JavaScript中已经相当模糊。虽然它被广泛的应用在WEB客户端,但是其应用范围远远未局限于此。下面就这几个特点分别介绍:
      动态性
      动态性是指,在一个Javascript对象中,要为一个属性赋值,我们不必事先创建一个字段,只需要在使用的时候做赋值操作即可,如下例:
      //定义一个对象
      var obj = new Object();
      //动态创建属性name
      obj.name = "an object";
      //动态创建属性sayHi
      obj.sayHi = function(){
      return "Hi";
      }
      obj.sayHi();

    假如我们使用Java语言,代码可能会是这样:
    class Obj{
    String name;
    Function sayHi;
    public Obj(Sting name, Function sayHi){
    this.name = name;
    this.sayHi = sayHi;
    }
    }
    Obj obj = new Obj("an object", new Function());

    弱类型
    

    与Java,C/C++不同,Javascript是弱类型的,它的数据类型无需在声明时指定,解释器会根据上下文对变量进行实例化,比如:
    //定义一个变量s,并赋值为字符串
    var s = "text";
    print(s);
    //赋值s为整型
    s = 12+5;
    print(s);
    //赋值s为浮点型
    s = 6.3;
    print(s);
    //赋值s为一个对象
    s = new Object();
    s.name = "object";
    print(s.name);

    结果为:
    text
    17
    6.3
    Object

    可见,Javascript的变量更像是一个容器,类似与Java语言中的顶层对象Object,它可以是任何类型,解释器会根据上下文自动对其造型。
    弱类型的好处在于,一个变量可以很大程度的进行复用,比如String类型的name字段,在被使用后,可以赋值为另一个Number型的对象,而无需重新创建一个新的变量。不过,弱类型也有其不利的一面,比如在开发面向对象的Javascript的时候,没有类型的判断将会是比较麻烦的问题,不过我们可以通过别的途径来解决此问题。
    解释与编译
    通常来说,Javascript是一门解释型的语言,特别是在浏览器中的Javascript,所有的主流浏览器都将Javascript作为一个解释型的脚本来进行解析,然而,这并非定则,在Java版的Javascript解释器rhino中,脚本是可以被编译为Java字节码的。
    解释型的语言有一定的好处,即可以随时修改代码,无需编译,刷新页面即可重新解释,可以实时看到程序的结果,但是由于每一次都需要解释,程序的开销较大;而编译型的语言则仅需要编译一次,每次都运行编译过的代码即可,但是又丧失了动态性。

    1. javaScript的学习阶段?
      基础语法结构
      页面浏览器操作
      深入学习---数据交互、组件实现、框架使用等

    javaScript出现的位置
    行间
    <input type="button" onclick="alert(1);" value="Click" />

    优点:直接,简单明了
    缺点:可读性差,不易维护,不易扩展
    

    内嵌
    <script>
    alert(1)
    </script>
    优点: js和html分离,可以复用代码
    缺点:代码不能多文件使用

    外链js文件
    <script src="demo.js"></script>
    优点:多文件共用

    js变量
    我们为了区分盒子,可以用BOX1,BOX2等名称代表不同盒子,BOX1就是盒子的名字(也就是变量的名字)。


    我们赶快给变量取个好名字吧!变量名字可以任意取,只不过取名字要遵循一些规则:
    1.必须以字母、下划线或美元符号开头,后面可以跟字母、下划线、美元符号和数字。如下:
    正确: mysum mychar $numa1
    错误: 6num //开头不能用数字 %sum //开头不能用除(
    $)外特殊符号,如(% + /等) sum+num //开头中间不能使用除(_ $)外特殊符号,如(% + /等)
    2.变量名区分大小写,如:A与a是两个不同变量。
    3.不允许使用[JavaScript]关键字和保留字做变量名。

    相关文章

      网友评论

          本文标题:javascript 20170628自学总结

          本文链接:https://www.haomeiwen.com/subject/hfmucxtx.html