美文网首页
JavaScript初恋 我来给你划重点 01

JavaScript初恋 我来给你划重点 01

作者: Hellolad | 来源:发表于2019-01-14 11:06 被阅读18次
    JavaScript

    JavaScript高级程序设计是入门web前端开发的神级书籍,简称小红书。由于公司业务的发展,我不得不从iOS转向前端开发。目前已上线一款小程序《熊猫超级名片》,在开发过程中,也感受到了一个半吊子前端的困惑和无奈。所以想要从基础开始,打好底子,往后才会事半功倍。

    JS = JavaScript , ES = EMACScript, AS = ActionScript

    第1-2章

    1. EMACScript

    ES和WEB浏览器没啥关系,WEB浏览器只是提供了一个宿主环境给ES,宿主环境提供了ES的实现,同时也给他提供了扩展功能。ES本身也没有输出和输入的功能(交互),例如DOM就是宿主环境对其的扩展,才有了和浏览器交互的功能。其他的宿主环境包括:Node,Adobe Flash。
    ES规定的内容主要包括:

    • 语法
    • 类型
    • 语句
    • 关键字
    • 保留字
    • 操作符
    • 对象

    JS 实现了 ES, AS 也实现了 ES

    ES详细介绍:https://baike.baidu.com/item/ECMAScript/1889420?fr=aladdin

    2. DOM(文档对象模型)

    文档对象模型(DOM, Document Object Model)是用于HTML的应用程序编程接口(API , Application Programming Interface)。DOM把HTML页面映射为多层节点结构,HTML的每个组成部分都是不同类型的节点。例如:

    <html>
      <head>
      </head>
      <body>
        <p>JS高程</p>
      </body>
    </html>
    

    通过DOM创建的文档结构树图,我们可以借助DOM的API来轻松的对文档接口进行增删改的操作。

    DOM详细介绍:https://baike.baidu.com/item/DOM/50288

    3. BOM(浏览器对象模型)

    BOM(Browser Object Model) 其实就是操作浏览器的接口。例如放大缩小浏览器,打开新窗口,移动等。


    上面开篇基本带你进入了JS的世界,但也只是一段段的介绍,后面才开始真的JS之旅。


    4. JavaScript (和Java没有一毛钱的关系)

    上面我们说了JS是对ES的实现,我们要和WEB页面进行交互就需要用到JS。非常简单的就不再描述,在这里只说一些平常不注意的地方,和没了解到的点。
    会用到一些HTML和CSS的知识,如果是完全没基础,请移步:http://www.w3school.com.cn/做一些基础的了解再回来。

    Netscape(网景): 相当于是JS的老妈,生了它。

    把JS放到网页中执行,就要使用到HTML,当初网景为了解决怎样让JS和HTML共存,同时又能在其他浏览器中展示同样的效果,经过讨论实践,最终决定增加了一个标签 <script>。向HTML中插入JS,添加<script>标签是一个主要的方法。

    <html>
      <head></head>
      <body>
        <script async charset defer language src type>
        
        </script>
      </body>
    </html>
    

    可用属性介绍:

    • async: 可选。表示应该立即下载脚本,不影响页面其他操作,异步。
    • charset:可选。表示通过 src 属性指定的代码的字符集。很多浏览器会忽略
    • defer:可选。表示要等到文档结构加载完成之后再加载脚本。只对外部JS文件有效。
    • language:已被弃用。
    • src:可选。加载外部JS文件。
    • type: 可选。默认就是text/javascript,可不写。

    <script src="..."></script>如果包含了外部的JS文件,不要在标签内再添加JS代码。如果你用了外域的JS文件, 一定要小心,要么是受信任的,要么是你自己服务器上的。例如:

    <script src="https://www.somewhere.com/abc.js"></script>
    

    最好要确保这个文件的安全性。

    只要不存在defer, async 属性浏览器都会按照<script>标签的 先后 顺序执行。

    <script>标签插入时机

    传统的做法是放在<head>标签里:

    <html>
      <head>
        <script src="./js/abc.js"></script>
        <script src="./js/efg.js"></script>
      </head>
      <body>
        <!-- 内容 -->
      </body>
    </html>
    

    这样做的后果就是你需要下载所有的标签里的JS文件然后后面的文档才能渲染,如果下载较慢,则会出现白屏的现象。
    这样使用:

    <html>
      <head>
      </head>
      <body>
        <!-- 内容 -->
        <script src="./js/abc.js"></script>
        <script src="./js/efg.js"></script>
      </body>
    </html>
    

    将标签插入到文档流body节点内的最后,使用户进来就能先看到内容,这样就会感觉页面的速度变快了。

    HTML5中的 async属性
    <html>
      <head>
        <script src="./js/abc.js" async></script>
        <script src="./js/efg.js" async></script>
      </head>
      <body>
        <!-- 内容 -->
      </body>
    </html>
    

    async 上面说的是,异步加载,就是他不会按照script标签出现的先后顺序加载,所以使用的时候小心了,尽量不要两个文件中的代码互相引用。

    嵌入代码和外部文件

    没有任何硬性规定必须使用外部文件。但是使用外部文件有几个好处:

    • 可维护性强:把所有的JS文件和HTML文件分开,大大提高的可读性和维护性。
    • 可缓存:如果多个页面同时使用了同一个JS文件,那么浏览器只会下载其中的一个,剩下的使用到的都会去读缓存里存在的JS文件。
    <noscript></noscript>标签

    和script标签对立的一个标签,它在以下两点中起作用:

    • 浏览器不支持JS脚本
    • 浏览器支持JS脚本,但被用户禁用了
    <html>
      <head>
      </head>
      <body>
        <!-- 内容 -->
        <noscript>
          <p>需要用户支持(开启)JavaScript脚本</p>
        </noscript>
      </body>
    </html>
    

    当这句话显示出来的时候,就意味着你需要开启JS脚本支持.

    该篇简单介绍了JS的学习前知识点, 从读这本书前两章,这些笔记是我看到的比较重点的东西,所以就记录了下来。后面会根据这本书的内容不定期不间断的更新JS的学历历程。

    -- 以此来记录JS学习历程

    相关文章

      网友评论

          本文标题:JavaScript初恋 我来给你划重点 01

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