《javaScript高级程序设计》笔记(一)

第一章 JavaScript简介

1、一个完整的JavaScript实现,应该由一下三个部分组成:

  • 核心(ECMAScript):提供核心语言功能。
  • 文档对象模型(DOM):提供访问和操作网页内容的方法和接口。
  • 浏览器对象模型(BOM):提供与浏览器交互的方法与接口。


第二章 在HTML中使用JavaScript

1、<script>元素

(1)<script> 定义了下列 6 个属性:

  • async :可选。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。
  •  charset :可选。表示通过 src 属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少有人用。
  •  defer :可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。IE7 及更早版本对嵌入脚本也支持这个属性。
  •  language :已废弃。原来用于表示编写代码使用的脚本语言(如 JavaScript 、 JavaScript1.2或 VBScript )。大多数浏览器会忽略这个属性,因此也没有必要再用了。
  •  src :可选。表示包含要执行代码的外部文件。
  •  type :可选。可以看成是 language 的替代属性;表示编写代码使用的脚本语言的内容类型(也称为 MIME 类型)。虽然 text/javascript 和 text/ecmascript 都已经不被推荐使用,但人们一直以来使用的都还是 text/javascript 

(2)带有src属性的<script></script>标签之间,不应该再包含额外的JavaScript代码。如果包含了嵌入的代码,只会下载并执行外部的脚本文件,嵌入的代码会被忽略。

(3)src属性支持引入外部域的完整的URL。例如:

<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>

扫描二维码关注公众号,回复: 2646740 查看本文章

(4)<script>标签的位置,放在<head>中会影响页面的加载速度,在将script下载,解析,执行完之后才开始呈现页面的内容。所以将<script>标签放在<body>中页面内容的后面,这样在解析js代码之前,页面内容将完全呈现在浏览器中,不会显示空白页面,会使用户感觉页面的加载速度变快了。

(5)defer属性相当于告诉浏览器:立即下载,但延迟执行,脚本会被延迟到整个页面解析完毕后再运行。延迟脚本不一定会按照顺序执行,因此最好只包含一个延迟脚本。例如:

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

(6)若同时存在两个script使用async,则确保两者之间互不依赖非常重要。指定 async 属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。

为此,建议异步脚本不要在加载期间修改 DOM。


第三章 基本概念

1、typeof是一个操作符而不是函数,所以要得到一个变量的类型可以:typeof 变量,圆括号是可以省略的,不是必须的。

2、从逻辑角度来看, null 值表示一个空对象指针,而这也正是使用 typeof 操作符检测 null 值时会返回 "object" 的原因。

typeof(null) // "object"

3、当字符串转换为Boolean值时,任何非空字符串转换为true,空字符串""转换为false。

4、数值的精度:

浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。例如:0.1+0.2的结果不是0.3,而是 0.30000000000000004。

5、确定一个数值是不是有穷的,可用isFinite() 函数,这个函数在参数位于最小与最大数值之间时会返回 true,ECMAScript 能够表示的最小数值保存在 Number.MIN_VALUE 中——在大多数浏览器中,这个值是 5e-324;能够表示的最大数值保存在

Number.MAX_VALUE 中——在大多数浏览器中,这个值是 1.7976931348623157e+308。

6、NaN:非数值。有两个特点:首先,任何涉及NaN的操作,都会返回NaN。其次,NaN和任何值都不相等,包括NaN本身。

7、位操作符:

(1)计算一个数的二进制补码:

        1.求这个数绝对值的二进制(32位)

        2.求二进制反码,1替换为0,0替换为1

        3.得到的二进制反码加1


(2)按位非(NOT)

        按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码。按位非是

ECMAScript 操作符中少数几个与二进制计算有关的操作符之一。


对 25 执行按位非操作,结果得到了-26。这也验证了按位非操作的本质:操作数的负值减 1。

(3)按位与(AND)

(4)按位异或(XOR)

        按位异或操作符由一个插入符号(^)表示,也有两个操作数。相同为0,不同为1

        

(5)根据规则,任何操作数与 NaN 进行关系比较,结果都是 false 。


(6)相等操作符


"55"==55                              true

"55"===55                           false

8、函数中,可以使用arguments来访问函数的参数,函数的参数依次为arguments[0],arguments[1]...,通过arguments.length来获取函数的参数个数。

猜你喜欢

转载自blog.csdn.net/weixin_42138029/article/details/80828532