js高程读书笔记(1-3章)

时间:2022-12-19 14:25:46

一、js简介

js是一种专为与网页交互而设计的脚本语言,由以下三个不同的部分组成:

1.ECMAScript,由ECMA-262(它规定了语言的这些组成部分:语法,类型,语句,关键字,保留字,操作符,对象)定义,提供核心语言功能;(ECMAScript就是对实现该标准ECMA-262规定的各个方面内容的语言的描述。)

2.文档对象模型(DOM)是针对XML但经过扩展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构。

如下面这个HTML页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>mytitle_Dom</title>
</head>
<body>
<p>hello world!</p>
</body>
</html>

在DOM中,这个页面可以如1.1所示的分层节点图表示

aaarticlea/png;base64,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" alt="" />

3.浏览器对象模型(BOM),处理浏览器窗口和框架。

总而言之,理解下:

1.ECMAScript 是ECMA(欧洲计算机制造协会)注册的标准,除此之外还有微软的Jscript标准 和网景的JavaScript 标准。
2.dom和bom 都是JavaScript 中的宿主对象。
一般来说JavaScript 都指的是ECMAScript

二、在HTML中使用JS

2.1<script>元素

HTML4.01为<script>定义了下列5个属性。

1)charset:可选。表示通过src属性指定的代码的字符集,大多数浏览器会忽略这个值。

2)defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。

3)language:已废弃。原来用于表示编写代码使用的脚本语言,大多数浏览器会忽略这个值。

4)src:可选。表示包含要执行代码的外部文件。

5)type:必需。可以看成是language的替代属性;表示编写代码使用的脚本语言的内容类型(也成为MIME类型)。虽然text/javascript和text/ecmascript都已经不被推荐使用,但还是可以看到经常使用text/javascript。实际上,服务器在传送JS文件时使用的MIME类型通常是application/x-javascript,但在type中设置这个值却可能导致脚本被忽略。

2.1.1标签的位置

  按照惯例,所有<script>元素都应该放在页面的<head>元素中,这种做法的目的是把所有外部文件(包含CSS文件和JavaScript文件)的引用都放在相同的地方。可是,在文档<head>元素中包含所有JavaScript文件,意味着必须等到全部JS代码都被下载,解析和执行完成以后,才能呈现页面的内容(浏览器遇到<body>标签才开始显示内容)。如果有很多JS代码要加载,那么会导致浏览器呈现明显的延迟,延迟期间,浏览器窗口将会是一片空白。为了避免这个问题:

①可将JS引用放在<body>元素中,放在页面的内容后面。

②延迟脚本,<script>标签定义了defer属性。这个属性的用途是表明脚本在执行时不会影响页面构造,也就是说,脚本会被延迟到整个页面都解析完毕后再运行。

2.1.2在XHTML中的用法

  在HTML中,有特殊的规则则用以确定<script>元素中的哪些内容可以被解析,但这些特殊的规则在XHTML中不适用。如小于号("<")在XHTML中就需要用"&lt",不过可以用一个CData片段来包含JS代码

<script type="text/javascript">
<![CDATA[
function compare(a,b){}
]]
</script>

三、基本概念

3.1变量

ECMAScript的变量是松散类型(可以用来保存任何类型的数据)的,每个变量仅仅是一个保存值的占位符而已。定义变量时用var操作符(var是一个关键字),后跟变量名(即一个标识符)。

  注:在函数体内用var 定义的变量是局部变量,函数退出后就会被销毁。不过在函数体内定义的变量省略var操作符后,此变量就是全局变量,只要调用过一次函数,此变量就有了定义,在函数外部可以被访问到。

3.2数据类型

参见http://www.cnblogs.com/wj204/p/3402204.html

3.3操作符

①一元操作符:

递增和递减操作符:

var s1="2";

var s2="z";

var b=false;

var f=1.1;

var o={valueOf:function(){return -1;}};

s1++;//值变成数值3

s2++;//值变成NaN

b++;//值变成数值1

f--;//值变成0.100000000(由于浮点舍入错误所致)

o--;//值变成数值-2

一元加和减操作符:

var s1="01";

var s2="1.1";

var s3="z";

var b=false;

var f=1.1;

var o={valueOf:function(){return -1;}};

s11=+s1;//值变成数值1

s12=-s1;//值变成数值-1

s21=+s2;//值变成数值1.1

s22=-s2;//值变成数值-1.1

s31=+s3/-s3;//值变成NaN

b=+b/-b;//值变成了数值0

f11=+f;//值仍然是1.1

f12=-f;//值变成-1.1

o11=+o;//值变成数值-1

o12=-o;//值变成数值1

3.4函数

3.4.1理解参数

  在ECMAScript中的参数在内部用一个数组来表示。在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。其实,arguments对象只是与数组类似,因为可以使用方括号语法访问它的每一个元素(即第一个元素是arguments[0],第二个元素是arguments[1])

function howManyArgs(){

  alert(arguments.length);

}

howManyArgs("string",45);  //2

howManyArgs);  //0

howManyArgs(12);  //1

与参数有关的方面:

①“重载”特性:

function doAdd(){

  if(arguments.length==1){

    alert(arguments[0]+10);

  }else if(arguments.length==2){

    alert(arguments[0]+arguments[1]);

  }

}

doAdd(10); //20

doAdd(30,20);//50

②arguments对象可以与命名参数一起使用,如:

function doAdd(num1,num2){

  if(arguments.length==1){

    alert(num1+10);

  }else if(arguments.length==2){

    alert(arguments[0]+num2);

  }

}

doAdd(10); //20

doAdd(30,20);//50

  在重写后的这个doAdd()函数中,两个命名参数num1,num2都与arguments对象一起使用。由于num1的值与arguments[0]的值相同,因此它们可以互换使用。

注:没有传递值的命名参数将被自动赋予undefined值。这就跟定义了变量却没有初始化一样。(ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数。)

3.4.2没有重载

  如果在ECMAScript中定义了两个名字相同的函数,则该名字只属于后定义的函数(前面定义的函数将无效)【要做到重载可以跟3.4.1.①一样,通过检查函数中参数的类型和数量并作出不同的反应,这模仿了方法的重载】

小结:

  JavaScript的核心语言特性在ECMA-262中是以名为ECMAScript的伪语言的形式来定义的。ECMAScript中包含了所有基本的语法、操作符、数据类型以及完成基本的计算任务所必需的对象,但没有对取得输入和产生输出的机制做出规定。理解ECMAScript及其纷繁复杂的各种细节,是理解其在Web浏览器中的实现--javascript的关键。目前大多数实现所遵循的都是ECMA-262第三版中定义的ECMAScript。以下简要总结下ECMAScript中的基本要素:

①:ECMAScript中的基本数据类型包括undefined,null,boolean,number和string;

②:ECMAScript没有为整数和浮点数值分别定义不同的数据类型,Number类型可用于表示所有数值;

③:ECMAScript中也有一种复杂的数据类型,即Object类型,该类型是这门语言中所有对象的基础类型;

④:ECMAScript提供了很多与C及其他类C语言中相同的基本操作符,包括算术操作符、布尔操作符、关系操作符、相等操作符及赋值操作符等。

⑤:ECMAScript从其他语言中借鉴了很多流控制语句,例如if语句、for语句和switch语句等。ECMAScript中的函数与其他语言中的函数有不同之处(没注意到)

⑥无须指定函数的返回值,因为任何ECMAScript函数都可以在任何时候返回任何值。

7:未指定返回值的函数返回的是一个特殊的undefined值。ECMAScript中也没有函数签名的概念,因为其函数参数是以一个包含零或多个之的数组的形式传递的。