第一章 JavaScript简史  20170510

JavaScript 组成部分: 核心(ECMAScript)  文档对象模型(DOM)浏览器对象模型(BOM)

Netscape Navigator(Mozilla) 4.06发布JavaScript 1.3 版本完全兼容ECMAScript-262 并对Unicode标准支持 实现所有平台中立化。

98年W3C(万维网联盟)指定DOM标准并在DOM2标准中引入了 视图(view),事件(events),样式(style),遍历和范围.DOM3中增加了对DOM核心扩展开始支持XML规范。

IE5.5-IE8支持DOM1 IE9+支持DOM 1 2 3

BOM只是处理浏览器窗口和框架 并无标准可言 习惯上吧浏览器扩展算作BOM一部分例如cookie,navigator对象,location对象和xmlhttprequest与IE的activexobject这种自定义对象等等。

Netscape Navigator(Mozilla)6.0+之后开始专注FireFox浏览器开发。

BOM在HTML5标准中被纳入但是还是存在浏览器差异。

第二章 HTML中使用JavaScript 20170511

  <script>元素 6个属性(部分属性已经废弃)

      async :可选属性 立即下载脚本,不妨碍其他脚本加载   只对外部脚本文件有效

charset: 可选属性 通过src指定代码字符集 大多数浏览器忽略 很少用

defer: 可选属性 延迟加载脚本 IE7之前也支持  只对外部脚本有效

language: 已废弃 编写脚本的语言 没必要在定义这个属性了

src: 可选属性 需要执行代码的外部文件

type:可选属性 替代language 定义脚本语言内容类型(MIME类型) 默认text/javascript

<script type="text/javascript">
function sayHi() {
alert("Hi");
}
</script> //正确添加外部脚本文件链接
<script type="text/javascript" src="common.func.js"></script> //可能会出现兼容问题尤其是IE
<script type="text/javascript" src="common.func.js"/>

页面最佳加载方式:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
</head>
<body>
<!--这里放内容-->
<script type="text/javascript" src="http://apps.bdimg.com/libs/zepto/1.1.4/zepto.min.js"></script> //延迟加载最好放在最后 并且每个页面最好只有一个
<script defer="defer" type="text/javascript" src="http://apps.bdimg.com/libs/zepto/1.1.4/zepto.min.js"></script>
</body>
</html>

注意!!async 属性虽然也是立即下载脚本文件 但是程序加载顺序却是不一定的,也就是如果有 两个外部脚本本件同时使用了async 属性 程序会立即下载这两个脚本文件 但是加载的时候就不一定是按顺序加载了,而且async属性存在的意义为了快速展现页面 页面无需等待脚本加载完毕就可以异步展现出来了,所以在此期间尽量不要操作DOM 尤其实在异步加载外部脚本文件的时候.

嵌入代码与外部文件

嵌入在html页面中的代码虽然没有问题,但是还是尽量推荐使用外部文件 主要有以下三点:

1.可维护性,不同页面js代码需要嵌入不同的页面 如果把这些js代码归类在一个文件夹中维护起来就轻松多了.

2.可缓存性,浏览器会根据设置缓存所有外部文件,如果两个文件引用相同js文件那么缓存一次就够了 提高了页面加载速度

3.适应未来,外部文件无须使用单独针对浏览器进行兼容测试(hack) 因为html文件和其他外部文件语法是相同的

文档模式(Doctype)

IE5.5中引入文档模式(Doctype) 最初只有混杂模式和标准模式  随后其他浏览器纷纷效仿 弱未设置文档模式 默认混杂模式 在HTML5中 没有DTD也就没有严格模式与宽松模式的区别,主要做到尽可能向后兼容实现统一

在 XHTML 与 HTML 4.01文档中包含完整的Doctype类型 默认是标准模式

 <!--超文本严格类型 HTML-->
<!DOCTYPE HTML
  PUBLIC "-//W3C//DTD HTML 4.01//en"
  "http://www.w3. org/TR/html4/strict.dtd"> <!--超文本过度类型 HTML-->
<!DOCTYPE HTML
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//en"
"http://www.w3. org/TR/html4/loose.dtd"> <!--超文本框架类型 HTML-->
<!DOCTYPE HTML
PUBLIC "-//W3C//DTD HTML 4.01 Frameset//en"
"http://www.w3. org/TR/html4/frameset.dtd"> <!--可扩展超文本严格类型 XHTML-->
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//en"
"http://www.w3. org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!--可扩展超文本过度类型 XHTML-->
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//en"
"http://www.w3. org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!--可扩展超文本框架集类型 XHTML-->
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//en"
"http://www.w3. org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

其中还有一种准标准模式,它与标准模式的差异集合可以忽略不计.

<noscript>元素

  浏览器不支持JavaScript或者是JS被浏览器禁用的时候这个标签内容会显示出来,如果没出现上述情况标签内容永远不会展示.

JavaScript高级程序编程(一)的更多相关文章

  1. JavaScript高级程序编程(二)

    JavaScript 基本概念 1.区分大小写,变量名test与Test 是两个不同的变量,且函数命名不能使用关键字/保留字, 变量命名规范: 开头字符必须是字母,下划线,或者美元符号,ECMAScr ...

  2. JavaScript高级程序编程(四)

    2017.7.12  北京 数伏第一天 本日总结: 1.线上服务器时常显示.woff文件丢失解决办法 (IIS服务器) 添加MIME类型 添加三条: 文件扩展名      MIME类型 .svg    ...

  3. JavaScript高级程序编程(三)

    2017-06-24 更新 北京连续三天下雨啦 乘性操作符   1.ECMA中定义了三种操作符,乘法 除法 和求模 并与其他语言相应操作符相同,再计算之前如果不是数值,会先去调用number()方法转 ...

  4. JavaScript高级程序开发3笔记

      Js对象 注意:js基本数据类型不是对象,但是"abc".match()这种,可以调用对象的方法,是因为调用方法是临时产生了一个wrapper的包装对象,this指向它: Js ...

  5. javascript高级程序语言学习笔记

    1.加法操作符(+)的用法 第一种情况,如果两个操作符都是数值,执行常规的加法计算. 第二种情况,如果两个操作数都是字符串,则将第二个操作数与第一个操作数拼接起来. 第三种情况,只有一个操作数是字符串 ...

  6. javascript高级编程笔记01(基本概念)

    1.在html中使用JavaScript 1.  <script> 元素 <script>定义了下列6个属性: async:可选,异步下载外部脚本文件. charset:可选, ...

  7. JavaScript高级编程(1)——JavaScript初识

    一.javascript的简介 1.1 javascript的历史回顾. Javascript诞生于1995年.当时,它主要的目的是用来处理一些由服务器端处理的输入验证操作.在javascript没有 ...

  8. JavaScript高级编程———JSON

    JavaScript高级编程———JSON < script > /*JSON的语法可以表达一下三种类型的值 简单值:使用与javas相同的语法,可以在JSON中表达字符串.数值.布尔值和 ...

  9. JavaScript高级编程———基本包装类型String和单体内置对象Math

    JavaScript高级编程———基本包装类型和单体内置对象 <script> var stringObject = new String("hello world") ...

随机推荐

  1. Java爬虫https网页内容报错SSLHandshakeException信任(忽略)所有SSL证书

    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building f ...

  2. linux 不能进入系统 Failed to load SELinux policy. Freezing

    错误原因 配置关闭SELinux,结果误操作 应修改配置文件/etc/selinux/config中的“SELINUX”参数的值, # SELINUX=enforcing 原始配置 SELINUX=d ...

  3. WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性)

    原文:WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 本文介绍如何使用 Windows 的 AppBar 相关 API 实现固定停靠在桌面上的特殊窗 ...

  4. jquery跨js文件调用函数示例

    var common_func; (function() { common_func = { load_hot_data: function(AreaCode) { var hot_html = &q ...

  5. Hadoop—MapReduce计算气象温度

    Hadoop-MapReduce计算气象温度 1 运行环境说明 1.1 硬软件环境 主机操作系统:Mac OS 64 bit ,8G内存 虚拟软件:Parallers Desktop12 虚拟机操作系 ...

  6. 2019 网易java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.网易等公司offer,岗位是Java后端开发,因为发展原因最终选择去了网易,入职一年时间了,也成为了面试官,之 ...

  7. Matlab状态模式

    状态模式就是将状态的条件判断语句转化成其函数重写形式,利用了面向对象语言的多态性,本文根据https://blog.csdn.net/lm324114/article/details/78819602 ...

  8. Web网站实现facebook登录

    一.登录facebook开发者中心:https://developers.facebook.com 二.创建应用编号,如下图: 三.添加产品选择Facebook登录,如下图: 四.facebbok登录 ...

  9. PYTHON 文件读写、坐标寻址、查找替换

    读文件 打开文件(文件需要存在) #打开文件 f = open("data.txt","r") #设置文件对象 print(f)#文件句柄 f.close() ...

  10. Jmeter计数器的使用-转载

    说一下jmeter中,配置元件-计数器的使用. 如果需要引用的数据量较大,且要求不能重复或者需要自增,那么可以使用计数器来实现. 1.启动jmeter,添加线程组,右键添加配置元件——计数器,如下图: ...