js高程读书笔记(1-3章)
一、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中就需要用"<",不过可以用一个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章)的更多相关文章
- JS高程读书笔记-第一、二章-内附在线思维导图和quizlet卡片
之前在kindle上买了高程,今天又到了纸质的<JavaScript语言精粹>,<高性能JavaScript>,<JavaScipt设计模式>,开始读书之旅啦. 我 ...
- js高程读书笔记(第4章--变量、作用域和内存)
JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何总数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变. 1. ...
- 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度
<Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...
- 《Linux内核设计与分析》第六周读书笔记——第三章
<Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...
- 《Linux内核设计与实现》 第八周读书笔记 第四章 进程调度
20135307 张嘉琪 第八周读书笔记 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有 ...
- 《Linux内核分析》读书笔记(四章)
<Linux内核分析>读书笔记(四章) 标签(空格分隔): 20135328陈都 第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行 ...
- 《LINUX内核设计与实现》第三周读书笔记——第一二章
<Linux内核设计与实现>读书笔记--第一二章 20135301张忻 估算学习时间:共2小时 读书:1.5 代码:0 作业:0 博客:0.5 实际学习时间:共2.5小时 读书:2.0 代 ...
- 《Linux内核设计与实现》第四周读书笔记——第五章
<Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...
- 《Linux内核设计与实现》第五周读书笔记——第十一章
<Linux内核设计与实现>第五周读书笔记——第十一章 20135301张忻 估算学习时间:共2.5小时 读书:2.0 代码:0 作业:0 博客:0.5 实际学习时间:共3.0小时 读书: ...
随机推荐
- webapi版本升级管理
由于近期公司人员流动,本人临时客串webapi开发,针对开发过程中碰到一些问题做一些改进 1.当前做法 项目webapi项目是居于asp.net框架开发的,每个功能模块新建一个api控制器,比如Use ...
- IIS7 应用程序池回收
原文:http://technet.microsoft.com/zh-cn/library/cc754494 应用到: Windows 7, Windows Server 2008, Windows ...
- Xcode调用旧版本库出现Undefined symbols for architecture x86_64: ld: symbol(s) not found for architecture x86_64
问题:Undefined symbols for architecture x86_64: ld: symbol(s) not found for architecture x86_64 问题原因 ...
- 看到shape文件可以加载到GOOGLE EARTH上的方法,有空可以试试
引用 Shape文件转为KMZ并在Google Earth中显示 (1)在ArcGIS中加载一个Shape文件,笔者加载的是某个地区的道路(双线道路)图层 (2)在ArcToolbox中,依次展开Co ...
- java.lang.RuntimeException: Method setUp in android.test.ApplicationTestCase not mocked. See http://g.co/androidstudio/not-mocked for details.
解决: build.gradle里加入: android { testOptions { unitTests.returnDefaultValues = true } }
- sql 注入的防范(一)
为了保证程序的健壮性,我们必须对用户输入的数据做有效性验证,防止用户恶意提交数据. 关于防止 sql 注入 我主要从三个方面入手: 1.确认为正整数的,强制转化为int,$id =$_GET('id ...
- MVC中使用Ueditor
配置.net mvc4项目使用ueditor编辑器. 1.首先下载Ueditor1.3.6开发版(http://ueditor.baidu.com/website/download.html) 2.将 ...
- RHEL6.5 删除桌面启动器(计算机/Home/回收站)
首先,安装gconf-editor以获得gconftool-2命令 终端命令: gconftool-2 --set /apps/nautilus/desktop/computer_icon_visib ...
- (原创)古典主义——平凡之美 佳作欣赏(摄影,欣赏)
文中图片摘自腾讯文化网:www.cal.qq.com 1.Abstract 生活本就是平淡的,如同真理一般寂静.平时生活中不经意的瞬间,也有它本来的美丽.下面一组图是上上个世纪到上个世纪末一个 ...
- php中的mysql 和 mysqli 区别
mysql是非持续连接函数,每次链接都会打开一个连接进程 mysqli是持续连接函数,多次运行将使用同一连接进程,从而降低服务器开销.