zoukankan      html  css  js  c++  java
  • Javascript的简介和使用

    摘要:先讨论JavaScript的由来和一些比较容易混淆的概念,又讨论了JavaScript的实现,紧接着说明了在网页中怎么有效地更好地引入js代码。

    JavaScript的由来

    是从一个简单的输入验证器变成的一门强大的解释型编程语言。

    JavaScript和Java关系不大。Java 和Javascript是雷锋和雷峰塔的关系。(来自佚名的《JS继承机制》的故事)

    JavaScript、JScript和ECMAScript的关系

    JavaScript 和JScript的关系一定程度上类似于Java和C#的关系,不同的是Javascript和JScript部分相兼容。

    ECMAScript是欧洲计算机制造商协会(ECMA) 联合一些公司的程序员一起制定的脚本语言的标准。

    JavaScript的实现

    JavaScript的实现由下列三个不同的部分组成:

    • 核心:ECMAScript   由ECMA-262定义,提供核心语言功能
    • 文档对象模型:DOM  提供访问和操作网页内容的方法和接口
    • 浏览器对象模型:BOM  提供与浏览器交互的方法和接口

    (1)ECMAScript与Web浏览器没有依赖关系,本身不包含输入和输出定义。

        ECMAScript的宿主环境包括Web浏览器,Node(一种服务端JavaScript平台)和Adobe Flash。

        宿主环境不仅提供基本的ECMAScript实现,也提供了该语言的扩展,以便语言与环境之间进行交互。(Web浏览器提供的就是DOM)

    (2)DOM是针对XML但经过扩展用于HTML的应用程序编程接口(API). 

        DOM把整个页面映射成一个多层节点结构。

    (3)BOM提供与浏览器交互的方法和接口。



    JavaScript的使用

    <script>元素负责引入JavaScript代码。

    有两种引入方式:(不做举例,详细参考w3school里的讲解)

    • 直接在<script>标签内写JavaScript代码。
    • 编写JavaScript代码,并保存成独立的js文件,引入到页面中。

    尽可能使用外部文件来包含JavaScript代码。 可维护性,可缓存,适应未来。。

    该元素有六个属性:

    • async:可选(只对外部脚本文件有效)。表示应该立即下载脚本(但延迟执行),但不妨碍页面中的其他操作,不保证按照指定的先后顺序执行。
      比如下载其他资源,或者等待加载其他脚本。目的是不让页面等待两个脚本下载和执行。这种情况下保持各个脚本的互不依赖很重要。
    • charset: 可选(很少用)。 表示通过src属性指定的代码的字符集。大多数浏览器会忽视该属性。
    • defer:可选(只对外部脚本有效)。 表示脚本可以延迟到文档完全被解析和显示之后执行。脚本执行时要求得按照顺序执行,但实际中不一定。
    • language:(已废弃)会被浏览器忽视。
    • src:可选。表示包含要执行代码的外部文件。
    • type:可选(language属性的替代品),表示编写代码使用的脚本语言的内容类型(MIME类型)。text/javascript(这个也是默认值)。

    一些我不太注意的知识点:

    只要不存在defer和async属性,在解释器对<script>元素内部的所有代码求值完毕前(包括下载外部代码文件时),

    页面中的其余内容都不会被浏览器加载。

    带有src属性的<script>标签之间不应该包含额外的Js代码,只会下载并执行外部脚本文件,而忽略嵌入的代码。

    <script> 标签的位置

    (1) 传统做法,所有<script>元素都应该放在<head>元素中。

    意味着必须等到全部JavaScript代码都被下载、解析和执行完成后,才开始呈现页面的内容(浏览器在遇到<body>才开始呈现内容)。

    问题:JS代码很多,很大。则网站体验就囧了。

    解决方法,参见(2)

    (2)  现代的做法,把全部JavaScript引用放在<body>元素中页面内容的后面。

    .
  • 相关阅读:
    HttpServletRequest对象(转)
    HttpServletResponse对象(转)
    springboot+mybatis 用redis作二级缓存
    springboot+JPA 整合redis
    如何使用RedisTemplate访问Redis数据结构之Zset
    如何使用RedisTemplate访问Redis数据结构之Hash
    如何使用RedisTemplate访问Redis数据结构之list
    如何使用RedisTemplate访问Redis数据结构之字符串操作
    Spring Boot中使用Swagger2构建强大的RESTful API文档
    Centos之目录处理命令
  • 原文地址:https://www.cnblogs.com/googny/p/3681375.html
Copyright © 2011-2022 走看看