JavaScript高级程序设计 学习笔记1 - 什么是JavaScript

news/2024/7/4 7:44:09

内容均摘自JavaScript高级程序设计第四版,仅用于记录学习过程。

第一章 什么是JavaScript

  • 一.历史回顾
    • 1.1 简短的历史回顾
  • 二.JavaScript是什么
    • 1.2 JavaScript实现
      • 1.2.1 ECMAScript
      • 1.2.2 DOM
      • 12.3 BOM
  • 三.小结

一.历史回顾

1.1 简短的历史回顾

随着Web的流行,对客户端脚本语言的需求越来越强。为了验证简单的表单,需要与服务器往返通信成为用户的痛点。

想象一下,当你填写完表单,点击“提交”按钮,等待了30s处理才看到一条消息,告诉你有一个必填字段没填写。

  • 网景为当时即将发布的Netscape Navigator2开发了一个脚本语言。
  • 在Netscape Navigator2正式发布前,将其改名为JavaScript,搭上当时炒作Java的顺风车。
  • JavaScript 1.0很成功,这时候微软发布了IE3,其中包括自己名为JScript(为避免与网景发生许可纠纷)的JavaScript实现。
  • 这意味着出现了两个版本的JavaScript:Netscape Navigator中的JavaScript, IE 中的 JScript。JavaScript当时还没有规范其语法的标准,两个版本的并存让JavaScript必须踏上标准化的征程
  • 1997年,JavaScript 1.1 交由来自网景、Sun、微软等公司的工程师,来打造这门脚本语言的标准。ECMAScript(发音为“ek-ma-script”)作为新的脚本语言标准诞生

二.JavaScript是什么

1.2 JavaScript实现

完整的JavaScript实现包含以下部分:

  • 核心ECMAScript
  • 文档对象模型DOM
  • 浏览器对象模型BOM
    在这里插入图片描述

1.2.1 ECMAScript

  • ECMAScript并不局限于Web浏览器,这门语言只是被作为一个基准,以便在其之上构建更稳健的脚本语言。
  • Web浏览器只是ECMAScript实现的一种可能的宿主环境。宿主环境提供ECMAScript的基准实现和环境自身交互必需的扩展(比如DOM)。
  • ECMAScript定义了什么?
    • 语法
    • 类型
    • 语句
    • 关键字
    • 保留字
    • 操作符
    • 全局对象

1.2.2 DOM

文档对象模型(DOM)是一个应用编程接口(API),用于在HTML中使用扩展的XML。

  • DOM将整个页面抽象为一组分层结点
  • DOM通过创建文档树,让开发者可以随心所欲地控制网页内容和结构。
  • 使用DOM API,可以轻松地删除、添加、替换、修改节点
  • 为什么DOM必需?
    • 网景和微软采用不同思路开发动态HTML,导致开发者无法写一个HTML页面就可以在任何浏览器中运行。为了保持Web跨平台的本性,W3C开始制定DOM标准。

12.3 BOM

浏览器对象模型(BOM) API,用于支持访问和操作浏览器的窗口。

  • 使用BOM,开发者可以操控浏览器显示页面之外的部分。
  • HTML5的出现,改变了BOM没有相关标准的问题
  • BOM主要针对浏览器窗口和子窗口(frame),但人们通常把特定于浏览器的扩展都归于BOM
    • 弹出新浏览器窗口的能力
    • 移动、缩放、关闭浏览器窗口的能力
    • navigator对象,提供关于浏览器的详尽信息
    • location对象,提供浏览器加载页面的详尽信息
    • screen对象,提供关于用户屏幕分辨率的详尽信息
    • performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息
    • cookie的支持
    • 其他自定义对象,如XMLHttpRequest和IE的ActiveXObject

三.小结

JavaScript是一门用来与网页交互的脚本语言,包含以下三个组成部分

  • ECMAScript:提供核心功能
  • DOM:提供与网页内容交互的方法和接口
  • BOM:提供与浏览器交互的方法和接口

http://www.niftyadmin.cn/n/4217510.html

相关文章

JavaScript高级程序设计 学习笔记2 - HTML中的JavaScript

内容均摘自JavaScript高级程序设计第四版&#xff0c;仅用于记录学习过程。 第二章 HTML中的JavaScript一. <script>元素2.1 <script>元素2.1.1 标签位置2.1.2 推迟执行脚本2.1.3 异步执行脚本2.1.4 动态加载脚本二.行内代码与外部文件2.2 行内代码与外部文件三.文…

深入了解Linux的守护进程(daemons)

Linux服务器在启动时需要启动很多系统服务&#xff0c;它们向本地和网络用户提供了Linux的系统功能接口&#xff0c;直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程&#xff08;daemons&#xff09;来执行的。守护进程是生存期长的一种进程。它们独立于控…

ACM算法笔记(一)基本概念递归思想常见递归问题

一、基本概念和术语 1、算法复杂度 复杂度分析&#xff1a; 事后统计法 大0表示法&#xff1a;T(n)O(f(n)) 2、时间复杂度分析 只关注循环次数最多的一段代码 总复杂度等于最高阶的复杂度 嵌套代码的复杂度等于嵌套内外代码复杂度的乘积 推导大O阶 1.用常数…

GRUB 引导程序配置大全

引自&#xff1a;http://blog.chinaunix.net/u/30557/showart_312917.html 1. GRUB 介绍计算机在启动的时候&#xff0c;首先由BIOS中的程序执行自检&#xff0c;自检通过后&#xff0c;就根据CMOS的配置找到第一个可启动磁盘的MBR中的Boot Loader程序&#xff08;一般在启动盘…

ACM算法笔记(二)斐波那契数列数组类型

一、斐波那契数列 定义 与爬楼梯问题的区别是&#xff1a;终止条件不同 代码参考爬楼梯问题 二、数组类型 1.两数之和 给定一个整数数组nums和一个整数目标值target&#xff0c;请你在该数组中找到目标值target的那两个整数&#xff0c;并返回他们的数组下标 例如&#xff1…

ACM算法笔记(三)链表算法

一、合并两个有序链表 将两个升序链表合并为一个升序链表后返回&#xff0c;新链表是通过拼接两个链表的节点组成的 思路&#xff1a;分别比较两个链表头部的节点&#xff0c;将较小节点的连接到新链表后 public ListNode mergeTwoList(ListNode l1,ListNode l2) {if(l1 null…

Vue学习Day1 vue安装、vue体验程序、vue中的MVVM、vue的生命周期、vue的一些简单指令

想利用暑假时间好好学习一下vue&#xff0c;会记录每一天的学习内容。 今天是学习vue的第1天&#xff01; 起起伏伏乃人生常态&#xff0c;继续加油&#xff5e; 学习内容1. Vue.js 安装方式一&#xff1a;直接CDN引入方式二&#xff1a;下载和引入方式三&#xff1a;NPM安装2.…

Linux 小问题&小技巧

001&#xff1a;建立管理员组内一般用户(CentOS)&#xff1a;  在一般情况下&#xff0c;一般用户通过执行 "su - " 命令&#xff0c;再输入正确root密码就可登录root桌面&#xff0c;现建功立业一个管理员的组&#xff0c;只允许这个组的用户执行 " su - &qu…