从今天开启每天看书记笔记模式,《JavaScript高级程序设计(第3版)》

1、 Javascript最初是为了解决输入验证器的问题,现在已经发展成一门复杂的语言;

2、  语言标准为ECMAScript(ek-ma-script),一个完整的Javascript有三部分组成:

核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)

(1)       ECMAScript规定了Javascript语言的组成部分:语法、类型、语句、关键字、保留字、操作符、对象;

ECMAScript第5版-包括原生JSON对象(用于解析和序列化JSON数据)、继承的方法和高级属性定义、严格模式对ECMAScript的引擎解释和执行代码进行了补充。

(2)       DOM是针对XML但经过扩展用于HTML的应用程序编程接口;DOM把整个页面映射为一个多层节点结构,HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含不同类型的数据;

DOM级别:

DOM1-映射文档结构

DOM2-视图(跟踪不同文档视图的接口)、事件(事件和事件处理的接口)、样式(基于CSS为元素应用样式的接口)、遍历和范围(遍历和操作文档树的接口)

DOM3-统一方式加载和保存文档,新增验证文档的方法;

(3)       BOM可以访问和操作浏览器窗口,可以控制浏览器显示的页面以外的部分

BOM处理浏览器窗口和框架,以及一些针对浏览器的Javascript扩展;

如弹出新浏览器窗口、移动缩放和关闭浏览器窗口、提供浏览器详细信息的navigator对象、提供浏览器所加载页面的详细信息的location对象、提供用户显示器分辨率详细信息的screen对象、对cookies的支持、像XMLHttpRequest和IE的ActiveXObject这样的自定义对象;

3、<script>元素属性

async:可选,在不影响页面其他操作的情况下,立即下载脚本,只对外部脚本文件有效;

charset:可选,src属性指定代码的字符集,现在很少用;

defer:可选,外部脚本文件可以延迟到文档完全被解析和显示之后再执行;

language:已废弃;

src:可选,要执行代码的外部文件;

type:可选,一般为text/javascript,默认也是这个;

(1)       直接在页面中嵌入Javascript代码,如下所示

<script type="text/javascript> function sayHi(){ alert("Hi");}</script>

Javascript代码从上到下执行,上面代码中,解释器会把函数的定义保存在自己的环境中,在解释器对<script>元素内部的所有代码求值完毕以前,页面中的其余内容不会被浏览器加载或显示;

(2)       加载外部Javascript脚本

<script src="try.js" type="text/javascript"></script>

标签之间不准包含额外的Javascript代码,若包含,会被忽略;

也可以包含来自外部域的Javascript代码

<script src="http://www.***./try.js" type="text/javascript"></script>

只要不存在defer和async属性,浏览器会按照<script>元素在页面中出现的先后顺序对它们进行解析;

加载外部脚本文件时,一般会把<script>标签放到body元素的最后位置;

(3)       延迟脚本

<script src="try.js" type="text/javascript" defer="defer"></script>

脚本立即下载,但延迟执行;

(4)       异步脚本

<script src="try.js" type="text/javascript" async ></script>

标记为async的脚本并不保证按照它们的先后顺序执行,制定async属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容;

(5)       <noscript>元素可以指定在不支持脚本的浏览器中显示的替代内容,但在启用了脚本的情况下,浏览器不会显示<noscript>元素中的任何内容;

<noscript> <p>本页面需要浏览器支持(启用)JavaScript.</p></noscript>

JavaScript读书笔记(1)的更多相关文章

  1. 数据结构与算法JavaScript 读书笔记

    由于自己在对数组操作这块比较薄弱,然后经高人指点,需要好好的攻读一下这本书籍,原本想这个书名就比较高深,这下不好玩了.不过看着看着突然觉得讲的东西都比较基础.不过很多东西,平时还是没有注意到,故写出读 ...

  2. 你不知道的javascript读书笔记3

    概述 这是我看<你不知道的JavaScript(中卷)>中关于类型检查的笔记,供以后开发时参考,相信对其他人也有用. typeof 我们知道js中有七种内置类型:undefined, nu ...

  3. JavaScript读书笔记(一)

    自动类型转换 在JavaScript中,使用 == .=== 和 - 等运算符能够使得类型自动转换. 关于不同类型的值的比较 flase == 0; //true "" == fl ...

  4. 悟透javascript读书笔记

    1.undefined,null,0,""  这四个值转换为逻辑值时是false,其他无论简单类型值,对象或者函数转换过来都是true 2.如图 第一个是“声明了一个变量,给变量赋 ...

  5. 高性能的JavaScript -- 读书笔记

    高性能的JavaScript 一.      加载和运行 将脚本放在底部 脚本下载解析执行时,页面已经加载完成并显示在用户面前 成组脚本 减少外部脚本文件数量,整合成一个文件 延迟脚本 动态脚本元素 ...

  6. <你不知道的JavaScript>读书笔记

    近几天看了一本不错的 JavaScript 的书,是 Kyle Simpson 写的 <You Don't know JS>.这本书是 Kyle Simpson 在 Github 上的开源 ...

  7. 编写可维护的Javascript读书笔记

    写在前面:之前硬着头皮参加了java方面的编程规范培训,收货良多,工作半年有余的时候,总算感觉到一丝丝Coding之美,以及造轮子的乐趣,以至于后面开发新功能的时候,在Coding style方面花了 ...

  8. 高性能JavaScript读书笔记

    零.组织结构 根据引言,作者将全书划分为四个部分: 一.页面加载js的最佳方式(开发前准备) 二.改善js代码的编程技巧(开发中) 三.构建与部署(发布) 四.发布后性能检测与问题追踪(线上问题优化) ...

  9. JavaScript读书笔记(4)-变量、作用域和内存问题

    1.ECMAScript数据类型分为:基本类型值和引用类型值: ECMAScript中所有函数的参数都是按值传递的: 检查对象的类型:varible instanceof constructor Al ...

随机推荐

  1. bzoj1566【Noi2009】管道取珠

    题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1566 两个栈不断pop,共C(n+m,n)种,ai表示每个相同序列的方案数,求∑(ai^2) ...

  2. python解析yaml文件

    YAML语法规则: http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/ 下载PyYAML: http://www.yaml.org/ 解压 ...

  3. hdu 5974 A Simple Math Problem gcd(x,y)=gcd((x+y),lcm(x,y))

    题目链接 题意 现有\[x+y=a\\lcm(x,y)=b\]找出满足条件的正整数\(x,y\). \(a\leq 2e5,b\leq 1e9,数据组数12W\). 思路 结论 \(gcd(x,y)= ...

  4. hdu 1099(数学)

    Lottery Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  5. python笔记3:注释命名风格

    6.注释: 行注释采用  # 开头,多行注释使用三个单引号 (''') 或三个双引号 ("' '"),注释不需要对齐 三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保 ...

  6. pycharm上传代码到码云错误现象用户密码

    >>出现此时错误说明在pycharm>git登录用户名或密码是错误的(必须填成是自己注册的码云邮箱和密码 不允许出现中文)并且无法在当前修改用户名或密码 >>接下来打开电 ...

  7. ES6之Array.includes()函数

    一.定义 includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false. 二.语法 arr.includes(searchElement) arr.includ ...

  8. Eclipse工程中Java Build Path中的JDK版本和Java Compiler Compiler compliance level的区别(转)

    在这里记录一下在eclipse中比较容易搞混淆和设置错误的地方.如下图所示的功能: 最精准的解释如下: Build Path是运行时环境  Compiler是编译时环境  假设,你的代码用到泛型,Bu ...

  9. [bug]Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding

    写在前面 在mysql中这个异常是非常常见的,超时分为连接超时和执行超时,而连接超时,大部分原因是网络问题,或客户端到服务端的端口问题造成. bug场景 有的时候,使用MySqlDataReader在 ...

  10. win10安装 迅雷

    下载安装文件所在目录 ,右键,选择以管理员身份运行,输入程序地址,如D:\download\ThunderMini_dl1.5.3.288.exe,回车,这样就出来了程序安装页面,之后就可以就行正常的 ...