一、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中也没有函数签名的概念,因为其函数参数是以一个包含零或多个之的数组的形式传递的。

js高程读书笔记(1-3章)的更多相关文章

  1. JS高程读书笔记-第一、二章-内附在线思维导图和quizlet卡片

    之前在kindle上买了高程,今天又到了纸质的<JavaScript语言精粹>,<高性能JavaScript>,<JavaScipt设计模式>,开始读书之旅啦. 我 ...

  2. js高程读书笔记(第4章--变量、作用域和内存)

    JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何总数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变. 1. ...

  3. 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度

    <Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...

  4. 《Linux内核设计与分析》第六周读书笔记——第三章

    <Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...

  5. 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度

    20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...

  6. 《Linux内核分析》读书笔记(四章)

    <Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...

  7. 《LINUX内核设计与实现》第三周读书笔记——第一二章

    <Linux内核设计与实现>读书笔记--第一二章 20135301张忻 估算学习时间:共2小时 读书:1.5 代码:0 作业:0 博客:0.5 实际学习时间:共2.5小时 读书:2.0 代 ...

  8. 《Linux内核设计与实现》第四周读书笔记——第五章

    <Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...

  9. 《Linux内核设计与实现》第五周读书笔记——第十一章

    <Linux内核设计与实现>第五周读书笔记——第十一章 20135301张忻 估算学习时间:共2.5小时 读书:2.0 代码:0 作业:0 博客:0.5 实际学习时间:共3.0小时 读书: ...

随机推荐

  1. js实现xml转化成字符串

    xml字符串转xml dom经常遇到在js里面需要解析xml的问题,然而有时候,后台返回的不是dom 而是string 字符串,需要将字符串转换成dom对象,然后才可以进行节点值解析和读取functi ...

  2. Await, and UI, and deadlocks! Oh my!

    It’s been awesome seeing the level of interest developers have had for the Async CTP and how much us ...

  3. Java日期格式化及其使用例子收集

    1 SimpleDateFormat担当重任,怎样格式化都行 import java.util.Date; import java.text.SimpleDateFormat; public clas ...

  4. wampserver 2.5 首页链接问题,wampserver Your Projects

    在wampserver 2.5之后,在首页的Your projects里面,链接的地址为http://直接加你的系统名称,会导致无法访问, 正常的应该为http://localhost+你的系统名称, ...

  5. <2048>游戏问卷调查心得与体会

    这是我的首次做问卷调查,刚开始感到不知所措,不知道该怎么去完成它,但是其中也充满了所谓的新鲜感,以前总是填别人做的问卷调查,但是现在是我们小组自己讨论得到的一张属于自己的问卷,可以说感受很深,一张小小 ...

  6. 修改TFS2013服务账户或者密码

    修改TFS2013服务账户或者密码 TFS作为微软软件开发的全生命周期管理解决方案,可以很好的与windows的域管理结合使用,方便多系统下用户的管理和授权.如果TFS使用的服务账户设置的域账户密码过 ...

  7. 【vscode】如何在vscode 中配置:TypeScript开发node环境

    入门流程,大神绕行. 安装环境 这就不多说了,安装开发的环境. 安装vscode 下载地址:https://code.visualstudio.com/ 安装Nodejs 下载地址:https://n ...

  8. 在GitHub注册账户的过程

    (1)第一步:首先起一个属于自己用户的名字(username),用户名字只能包含字母数字的字符或者单个连字符,不能只用单个连字符开始或者结束(only contain alphanumeric cha ...

  9. Silverlight无法启动调试,错误“Unable to start debugging. The Silverlight Developer Runtime is not installed. Please install a matching version.” 解决办法

    今天调试Silverlight出现了以下错误: 意思是“无法启动调试,因为Silverlight Developer Runtime没有安装,请安装一个匹配的版本”.但是按Ctrl + F5可以调试运 ...

  10. FusionCharts简单教程(四)-----基本数字格式

          在统计图例中什么是最基本,最重要的元素?那就是数据.一个数据的统计图像那就是一堆空白.但是数据存在多种形式,比如小数,比如千分位等等.又如若一个数据是12.000000001,对于数据要求 ...