Javascript教案
https://www.360docs.net/doc/e213243080.html,/p-57651799.html教案
Javascript部分
共10天40学时2周
第一天Javascript简介
第一节简介
1.1 Javascript简介:
Javascript的历史
1992年,一家名为Nombas的公司开发一种叫C减减(C-minus-minus,简称Cmm,有点与C++对应的意味)的嵌入式脚本语言。Cmm背后的理念很简单:一个足够强大可以替代宏操作(macro)的脚本语言,同时保持C/C++足够的相似性(C 语言太经典了,特别是其语法有着简洁美),以便开发人员能很快学会。这个脚本语言被捆绑在一个叫做CEnvi的共享软件产品中,它首次向开发人员展示了这种语言的威力。Nombas最终把Cmm的名字改成了ScriptEase,原因是后面的部分(mm)听起来过于“消极”,同时字母“C”令人害怕。现在ScriptEase 已经成为了Nombas产品背后主要驱动力(怎么我觉得这家公司已经不存在了呢?)。当Netscape Navigator(盛极一时的网景的浏览器,结果被微软IE的免费策略搅黄了局)暂露头角时,Nombas开发了一个可以嵌入网页中的CEnvi的版本。这些早期的实验称为Espresso Page,它们代表了第一个在万维网上使用的客户端脚本语言。而Nombas丝毫没有料到它的理念将会
成为internet的一块重要基石。
当internet普及越来越广时,对于开发客户端脚本的需求也逐渐增大。此时,大部分internet用户仅仅通过28.8kbit/s的Modem来连接到网络,即使这时网页已经不断地变得更大和更复杂。加剧用户痛苦的是,仅仅为了简单的表单有效性验证,就要与服务器进行多次的往返交互。设想一下,用户填写完一个表单,点击提交按钮,等待30秒后,看到的却是一条告诉你忘记填写一个必要的字段的信息。那时正处于技术革新最前沿的Netscape,开始认真考虑一种开发客户端语言来处理简单的问题。
当时为Netscape工作的Brendan Erich,开始着手为即将在1995年发行的Netscape Navigator 2.0开发一个称之为LiveScript的脚本语言,当时的目的是同时在浏览器和服务器使用它。Netscape与Sun公司联手及时完成了LiveScript的实现。就在Netscape Navigator 2.0即将正式发布前,Netscape将其更名为Javascript(想当年,也就是95年,正式Java普遍开始流行的一年,Java开始火起来,似乎打上一个Java的标签,也会火起来一样),目的是为了利用Java这个internet时髦词汇。Netscape的这一决定也实现了当初的意图,Javascript从此变成了因特网的必备组件。
因为Javascript 1.0如此成功,Netscape在Navigator 3.0中发布了Javascript 1.1版本。恰巧那个时候,微软决定进军浏览
器市场,发布了IE 3.0b并搭载了一个Javascript的克隆版,叫做Jscript(微软一直是一名成功的模仿者,这样命名是为了避免与Netscape潜在的许可纠纷)。微软步入浏览器领域的这重要一步当然推动了javascript的进行一步发展。
在微软进入后,有3种不同的Javascript版本同时存在:Netsacpe Navigator 3.0中的Javascript、IE中的JScript以及CEnvi 中的ScriptEase。与其他编程语言不同的是,Javascript并没有一个标准来统一其语法或特性,而这3种不同的版本恰恰突出了这个问题,随着用户担心的增加,这个语言标准化显然已经势在必行。
1997年,Javascript 1.1作为一个草案提交给ECMA(欧洲计算机制造商协会)。第39技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”。由来自Netscape、Sun、微软、Borland和其他一些对脚本编程感兴趣的公司的程序员组成的TC39锤炼出了ECMA-262,该标准定义了叫做ECMAScript的全新脚本语言。
在接下来的几年里,ISO/IEC(国际化标准组织及国际电工委员会)也采纳ECMAScript作为标准(ISO/IEC-16262)。从此,Web浏览器就开始努力(虽然有着不同成都的成功和失败)将ECMAScript作为Javascript实现的基础。
Javascript的优点
1.简单性
Javascript是一种脚本编写语言,她采用小程序段的方式实现编程,像其他脚本语言一样,Javascript同样也是一种解释性语言,他提供了一个简易的开发过程,他的基本结构形式与C、C++十分类似,但他不像这些语言一样,需要先编译,而是在程序运行过程中被逐行的解释,他与HTML标记结合在一起,从而方便用户的使用操作。
2.动态性
Javascript是动态的,他可以直接对用户或客户输入作出响应,无须经过web服务程序,他对用户的反映响应,是采用以事件驱动的方式进行的,所谓事件驱动,就是指在页面中执行了某种操作所产生的动作,称为“事件”。比如按下鼠标、移动窗口、选择菜单等都可以视为事件,当事件发生后,可能会引起相应的事件响应。
3.跨平台性
Javascript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持javascript的浏览器就可以正确执行。
4.节省CGI的交互时间
假如提交一个简单的表单,就需要与服务器进行多次的交互,点击提交,等待30秒后被告之没有填写住址等等类似的事
情发生让人感觉非常不舒服,客户端脚本就显得越来越重要,Javascript可以在数据被提交给服务器之前,预处理客户端的数据。
Javascript的局限性
浏览器有很多种,每种对javascript的支持程度是不一样的,效果会有一定的差距。
1.2 主要应用
控制文档的内容和表现
document.write(“
hello,web
”) ;控制浏览器的行为
window.status=“欢迎访问javascript ” ;
和文档的内容相互作用
和用户交互
"https://www.360docs.net/doc/e213243080.html,/TR/xhtml1/DTD/xhtml1-transitional.dtd">
var sum=0;
num=Math.floor()
第二节简介
2.1 javascript不能做的(限制多,安全性高)
设置或检索浏览器参数设置、主窗口外观特性、动作按钮和打印
在客户机上启动一个应用程序
在客户端或服务器上读/写文件或文件夹
重新传输从服务器上捕获的现场数据流
从web站点访问者处向用户发送机密的电子邮件
2.2 javascript并非Java
不同的公司:sun、Netscape(网景);
不同类型:面向对象编译型、基于对象解释型;
独立性:单独执行、嵌入到HTML,不能单独运行;
2.3 javascript在客户端应用的三部分构成
作为核心的ECMAScript:语言基础,定义了基本的语法和语义;
javascript的核心,描述该语言的语法和基本对象ECMA标准
Jscript是ECMAScript的一种实现,功能较多
ActionScript flash AIR Flex
Netscape LiveWire是javascript在服务器端的实现
JavaScript HTML XML Ajax
文档对象模型DOM:操作HTML/XML的API描述处理网页内容的方法和接口W3C标准;
浏览器对象模型BOM:操作浏览器功能的API,描述与浏览器进行交互的方法和接口;
开发环境
1)选择一个自己喜欢的编辑器
●Notepad++
●VIM
●Editplus
●Gedit
●Emacs
●其它
2)符合W3C标准的浏览器
●Firfox
●IE
●Google chrome
●Opera
●Safari
3)调试工具
下的firebug、venkman等, FF-----“辅助选项”-----
●Firefox
“firebug”---安装
或者下载到firebug插件拖入浏览器即可
下的ie developertoolbar, IE---“工具”----“开发人员工
●IE
具”
2.4 javascript的引用
在
内部标记包含式
function showAlert()
{
alert(“web“);
}
Js外部引用式
common.js文件内容
function showAlert(){
alert(“web程序设计“);
}
事件跟随式
第三节语言基础
3.1注意事项
语句分隔符;
注释标记
// 单行注释
/*……..*/ 多行注释
3.2数据类型
三种主要数据类型,两种复合数据类型和两种特殊数据类型
主要(基本)数据类型
●字符串
●数值
●布尔
复合(引用)数据类型
●对象
●数组
特殊数据类型
●null
●undefined
注意事项:
?String字符串类型:字符串是用单引号或双引号来说明的;
?数值数据类型:Javascript支持整数和浮点数。整数可以为
正数、0或者负数;浮点数可以包含小数点、也可以包含一个“e”(大小写均可,表示“10的幂”);
?Boolean类型:true和false,不能用1和0;
?Undefined数据类型:变量创建后未赋值;
?Null数据类型:没有任何值,什么也不表示;
3.3判断数据类型
typeof 运算符
说明:
返回一个用来表示表达式数据类型的字符串
有六种可能:number、string、boolean、object、function、undefined
var a=18;
var b=”今年18”;
var c=true;
document.write(typeof(a));
document.write(typeof(b));
document.write(typeof(c));
document.write(typeof(d));
document.write(typeof(window)); //object
document.write(typeof(test));
function test(xb)
{
If(xb=1)
return “男”;
else
return “女”;
}
//- ->
请注意:null与0不相等,typeof运算符将报告null为object,而非类型null,这点潜在的混淆是为了向下兼容。
3.4数据类型转换
Object.toString() 对象的字符串表示
parseInt(numString)字符串转换得到整数
parseFloat(numString)字符串转换得到浮点
【强制转换】
数值与字符串相加数值转换成字符串
布尔值与字符串相加布尔值转换成字符串
数值与布尔值相加布尔值转换成数值
3.5转义字符
?\n 换行(new line)
?\r 游标回首行(carriage return)
?\t 水平定位(horizontal tab)
?\?单引号(single quote)
?\”双引号(double quote)
?\\ 反斜线(back slash)
?\b 倒退(backspace)
?\f 换页(form feed)
第四节语言基础
4.1 变量和常量
?常量值可以为整型、逻辑型、实型以及字符串型等
?变量用关键字var声明或用赋值的形式
?变量命名规则
1、第一个字符必须是字母(大小写均可)、下划线
(_)或美元符($);
2、后续字符可以是字母、数字、下划线或美元符;
3、变量名称不能是保留字;
4、字符大小写敏感;
?变量可以不声明直接使用
?变量弱类型检查,且可随时改变数据类型
演示:骆驼命名法、匈牙利命名法
对于变量的理解;变量是数据的代号,如同人的名字一样:
var num;//在javascript中使用关键字var声明一个变量在javascript中,使用上面的语法就能声明一个变量,以便在之后给其指定值
var b=“world”;//不需要声明类型
var n=123;
var f=.123;
var Mame;
Mame=123;
//同时进行
var a,b,c;
var a=b=c=123;
var b=true;
b=false;
//undefined情况:值未定义
var a;//没有赋值
alert(a);//有值,undefined
//未声明的变量
alert(n);//将会出错,不是undefined
//错误情况
保留字
Break、delete、function、return、typeof、case、do、if、switch、var、catch、else、in、this、void、continue、false、instanceof、throw、while、debugger、finnally、new、true、with、default、for、null、try
将来的保留字
Abstract、double、goto、native、static、boolean、enum等
数字(只能有整数或小数),字符串可能是最常用的了,还有另外一种类型:布尔(Boolean)true(非零)、false
Javascript是动态类型语言,声明时可以不指明类型,运行时刻变量的值可以有不同类型
复合(引用)数据类型:对象、数组
特殊数据类型:undefined
4.2 运算符和表达式
?运算符
=、+=、-=、*=、/=、%=
?赋值运算符:
+、-、*、/、%、++、- -、-(负)
?算术运算符:
+
?字符串运算符:
= =、!=、<、>、<= 、>=、
?逻辑运算符和关系运算符:
&&、||、!
?位运算符(很少用)
?算术表达式
?字符串表达式
?逻辑表达式
计算各表达式的值
a=5;b=7;c=9 (1)a+b (2)b*b-4*a*c<=0 (3)c*c>=a*a+b*b (4)c*c%2= =1 (5)b=2*++a (6)b=2* a ++ //字符串相连 //弱类型 //比较运算符 思考: Alert(!!“”);//空字符串,不加空格false Alert(“hello”&&“”);//空字符串 Alert(“”||”hello”);hello Alert(“”||”hello”);//空 var t=typeof (“123”*1);//num var t=typeof (123+“”);//num alert(t); 注意:不是真正的只返回布尔值,它将最后判断的值显示出来;逻辑运算表 例如: var a=prompt(“输入一个数字”,“”) a*=1; alert(typeof a); 4.3 运算符的优先级 自学 注意使用(),减小复杂程度 Javascript 语言本身也可以进行面向对象的编程,如下是最近几天对javascript面向对象编程的总结。 对象的创建 javascript对象有两种创建方式 1.使用对象初始器: objName = { prop1:value_1, prop2:value_2, ... } 该方法直接创建实例对象,而无需声明。 2.使用构造函数: 如:fuction Engineer(para1,para2){ this.para1 = para1; this.para2 = para2; ... } my Bill = new Engineer("Bill","24"); 该方法需要用new()来创建实例。 为一个object类型添加新的属性: 如:Bill.prototype.sex = "man"; 这样,所有Engineer类型的对象都有属性sex,其value为"man", 而如下语句: Bill.sex = "man"; 则只是为Bill对象本身添加一个属性。 为对象定义一个方法: function draw(){ ... } fuction Engineer(para1,para2){ this.para1 = para1; this.para2 = para2; this.draw = draw; ... } my Bill = new Engineer("Bill","24"); Bill.draw(); 也可以使用如下的定义方式: objName = { prop1:value_1, prop2:value_2, draw:function(num){ ... } ... } 引用时用objName.draw(); 删除对象的一个属性: //Creates a new property, myobj, with two properties, a and b. myobj = new Object; myobj.a=5; myobj.b=12; //Removes the a property, leaving myobj with only the b property. delete myobj.a;//删除myobj实例对象的a属性 删除对象的一个方法: delete objName.draw;//删除objNmae实例对象的draw函数 ===================================================================== ======= 在JavaScript中可以使用function关键字来定义一个“类”,如何为类添加成员。在函数内通过this指针引用的变量或者方法都会成为类的成员,例如: function class1(){ var s="abc"; this.p1=s; this.method1=function(){ alert("this is a test method"); } } var obj1=new class1(); 通过new class1()获得对象obj1,对象obj1便自动获得了属性p1和方法 学习群76650734 深入认识JavaScript中的this指针 this指针是面向对象程序设计中的一项重要概念,它表示当前运行的对象。在实现对象的方法时,可以使用this指针来获得该对象自身的引用。 和其他面向对象的语言不同,JavaScript中的this指针是一个动态的变量,一个方法内的this指针并不是始终指向定义该方法的对象的,在上一节讲函数的apply和call方法时已经有过这样的例子。为了方便理解,再来看下面的例子: 以下是引用片段: <script language="JavaScript" type="text/javascript"> <!-- //创建两个空对象 var obj1=new Object(); var obj2=new Object(); //给两个对象都添加属性p,并分别等于1和2 obj1.p=1; obj2.p=2; //给obj1添加方法,用于显示p的值 obj1.getP=function(){ alert(this.p); //表面上this指针指向的是obj1 } //调用obj1的getP方法 obj1.getP(); //使obj2的getP方法等于obj1的getP方法 obj2.getP=obj1.getP; //调用obj2的getP方法 obj2.getP(); //--> </script> 从代码的执行结果看,分别弹出对话框显示1和2。由此可见,getP函数仅定义了一次,在不同的场合运行,显示了不同的运行结果,这是有this指针的变化所决定的。在obj1的getP方法中,this就指向了obj1对象,而在obj2的getP方法中,this就指向了obj2对象,并通过this指针引用到了两个对象都具有的属性p。 由此可见,JavaScript中的this指针是一个动态变化的变量,它表明了当前运行该函数的对象。由this指针的性质,也可以更好的理解JavaScript中对象的本质:一个对象就是由一个或多个属性(方法)组成的集合。每个集合元素不是仅能属于一个集合,而是可以动态的属于多个集合。这样,一个方法(集合元素)由谁调用,this指针就指向谁。实际上,前 JS练习题 JS练习题 (1) 一、选择题 (2) 二、不定项选择题 (7) 三、填空 (8) 四、判断 (9) 五、阅读程序写结果 (10) 六、程序题 (12) 七、设计题 (15) 一、选择题 1、写“Hello World”的正确javascript语法是?() A. document.write("Hello World") B. "Hello World" C. response.write("Hello World") D. ("Hello World") 2、JS特性不包括() A.解释性 B.用于客户端 C.基于对象 D.面向对象 3、下列JS的判断语句中( )是正确的 A.if(i==0) B.if(i=0) C.if i==0 then D.if i=0 then 4、下列JavaScript的循环语句中( )是正确的 A.if(i<10;i++) B.for(i=0;i<10) C.for i=1 to 10 D.for(i=0;i<=10;i++) 5、下列的哪一个表达式将返回假() A.!(3<=1) B.(4>=4)&&(5<=2) C.(“a”==”a”)&&(“c”!=”d”) D.(2<3)||(3<2) 6、下列选项中,( )不是网页中的事件 A.onclick B.onmouseover C.onsubmit D.onpressbutton 7、有语句“var x=0;while(____) x+=2;”,要使while循环体执行10次,空白处的循环判定式应写为:() A.x<10 B. x<=10 C.x<20 D.x<=20 8、JS语句 var a1=10; var a2=20; alert(“a1+a2=”+a1+a2) 将显示( )结果 A.a1+a2=30 B.a1+a2=1020 C.a1+a2=a1+a2 9、将字串s中的所有字母变为小写字母的方法是() A.s.toSmallCase() B.s.toLowerCase() C.s.toUpperCase() D.s.toUpperChars() 10、以下( )表达式产生一个0~7之间(含0,7)的随机整数. A.Math.floor(Math.random()*6) B.Math.floor(Math.random()*7) C.Math. floor(Math.random()*8) D.Math.ceil(Math.random()*8) 11、产生当前日期的方法是() A.Now(); B.Date() C.new Date() D.new Now() 12、如果想在网页显示后,动态地改变网页的标题() A.是不可能的 B.通过document.write(“新的标题容”) C. 通过document.title=(“新的标题容”) D. 通过document.changeTitle(“新的标题容”) 13、某网页中有一个窗体对象,其名称是mainForm,该窗体对象的第一个元素是按钮,其名称是myButton,表述该按钮对象的方法是() JavaScript面向对象简介 JavaScript 的核心是支持面向对象的,同时它也提供了强大灵活的OOP 语言能力。本文从对面向对象编程的介绍开始,带您探索JavaScript 的对象模型,最后描述 JavaScript 当中面向对象编程的一些概念。 复习JavaScript 如果您对JavaScript 的概念(如变量、类型、方法和作用域等)缺乏自信,您可以在重新介绍JavaScript这篇文章里学习这些概念。您也可以查阅这篇JavaScript 1.5 核心指南。 面向对象编程 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式。它使用先前建立的范例,包括模块化,多态和封装几种技术。今天,许多流行的编程语言(如Java,JavaScript,C#,C+ +,Python,PHP,Ruby 和Objective-C)都支持面向对象编程(OOP)。 面向对象编程可以看作是使用一系列对象相互协作的软件设计,相对于传统观念,一个程序只是一些函数的集合,或简单的计算机指令列表。在OOP中,每个对象能够接收邮件,处理数据和发送消息给其他对象。每个对象都可以被看作是一个独立的小机器有不同的作用和责任。 面向对象程序设计的目的是促进更好的编程灵活性和可维护性,并在大型软件工程中广为流行。凭借其十分注重的模块化,面向对象的代码开发更简单,往后维护更容易理解,使其自身能更直接的分析,编码,理解复杂的情况和过程,比非模块化编程方法省事。1 术语 Namespace 命名空间 允许开发人员在一个专用的名称下捆绑所有功能代码的容器。 Class 类 定义对象的特征。 Object 对象 类的一个实例。 Property 属性 对象的特征,比如颜色。 Method 方法 对象的能力,比如行走。 Constructor 构造函数 实例化时调用的函数。 Inheritance 继承 一个类可以继承另一个类的特征。 Encapsulation 封装 类定义了对象的特征,方法只定义了方法如何执行。 Abstraction 抽象 结合复杂的继承,方法,属性,一个对象能够模拟现实的模型。 Polymorphism 多态 多意为‘许多’,态意为‘形态’。不同类可以定义相同的方法或属性。更多关于面向对象编程的描述,请参照维基百科的面向对象编程。 原型编程 JavaScript面向对象编程 1、引言 JavaScript是一种解释性的,基于对象的脚本语言(an interpreted, object-based scripting language)。JavaScript 基于客户端运行,目前基本上所有的浏览器都支持JavaScript。1995年首次出现时,JavaScript的主要目的还只是处理一些输入的有效性验证,随着互联网的蓬勃发展,JavaScript的应用越来越广泛,特别是近几年AJAX技术(Asynchronous JavaScript and XML)的发展,更使JavaScript的应用达到了一个新的高度。在AJAX技术中,JavaScript是一项关键技术,请求的发送、接收、接收数据后的界面处理都需要使用JavaScript技术,这对JavaScript语言提出了新的需求,本文从JavaScript的基本特点出发,模拟出了面向对象编程的大部分特点,使JavaScript摆脱了以往脚本语言杂乱无章、难以阅读、难以维护的形象,而具有了面向对象特性,极大的方便了JavaScript的开发、维护,提高了软件开发效率。 2、JavaScript的基本特点 JavaScript是解释性的,基于对象的脚本语言。它有下面几个显著特点,这几个特点在后面的面向对象特性模拟中会反复用到,因此这里先详细说明这几个特点。 解释型语言:JavaScript是一种解释性语言,解释性语言相对于编译型语言,编译型语言必须先通过编译才能执行,而解释性语言不需要编 译,直接从上到下解释执行,一边解释一边执行,这就决定了解释性语 言的代码是有先后顺序的,需要执行的代码必须已经解释过。因此, JavaScript需要注意代码的先后顺序。 ◆js的面向对象的三大特征 1.封装性 所谓封装,就是把我们抽象出的属性和对属性的操作写到类的定义中,称为封装. js 中实现封装主要有两种封装( 公开,私有) class Person(name,sal){ https://www.360docs.net/doc/e213243080.html,=name; //公开 var sal=sal;//私有 this.showInfo=function(){ //公开 window.alert(https://www.360docs.net/doc/e213243080.html,+””+sal); } showInfo2(){ //把函数私有化. window.alert(“你好”+https://www.360docs.net/doc/e213243080.html,+””+sal) } } ◆通过构造函数添加成员方法和通过原型法添加成员方法的区别 1.通过原型法分配的函数是所有对象共享的. 2.通过原型法分配的属性是独立.(如果你不修改属性,他们是共享) 3.建议,如果我们希望所有的对象使用同一一个函数,最好使用原型法添加函 数,这样比较节省内存. function Dog(){ this.shout=function(){ } } //原型法 Dog.prototype.shout=function (){ window.alert("小狗尖叫"+https://www.360docs.net/doc/e213243080.html,); } //通过原型也可以给每个对象,分配属性 Dog.prototype.color="red"; var dog1=new Dog("aa"); var dog2=new Dog("bb"); if(dog1.shout==dog2.shout){ window.alert("dog1.shout==dog2.shout"); } dog1.color="黑色"; window.alert(dog1.color+" "+dog2.color); 4.请大家看一个题: function Person(){ } // 创建对象 var p1=new Person(); // p1.say(); [错误] // 这时用原型法分配 Person.prototype.say=function(){ window.alert("ok"); } p1.say(); 结论是类.prototype.函数=function (){}; 称为后置绑定. js面相对象的继承 看一段代码->问题是什么? ①对象冒充 代码如下: javascript创建类方法
深入认识JavaScript中的this指针,学习群76650734
javaScript练习题
JavaScript面向对象简介
JavaScript面向对象编程(最终版)
js的面向对象的三大特征
Javascript
1、如果要从函数返回值,必须使用哪个关键词?( c ) A.continue B.break C.return D.exit 2、下列哪个函数可以将参数字符串当成Javascript程序代码执行?( a ) A.eval() B.escape() C.encodeURI() D.toString() 3 、下列哪个函数可以将参数转换为浮点数?( d ) A.isNaN() B.parseInt() C.Number() D.parseFloat() 4、下列哪个函数可以用来判断参数是否为有限值?(b ) A.isNumber() B. isFinite() C. isNull() D. isNaN() 5、分析如下的JavaScript代码片段, b的值为( ) var a = "1.5" , b; b=parseInt(a); A. 2 B. 0.5 C. 1 D. 1.5 7、分析下面的JavaScript代码段: var a=15.49; document.write(Math.round(a)); 输出的结果是(a)。 A. 15 B. 16 C. 15.5 D. 15.4 9、在HTML页面中,下面有关的Document对象的描述错误的是(d)。 A.Document对象用于检查和修改HTML元素和文档中的文本 B.Document对象用于检索浏览器窗口中的HTML文挡的信息 C.Document对象的location属性包含有关当前URL的信息 D.Document对象提供客户最近访问的URL的列表 10、window对象的open方法返回的是(a) A.返回打开新窗口的对象 B. boolean类型,表示当前窗口是否打开成功C.没有返回值 D.返回int类型的值,开启窗口的个数 11、要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容,下面语句正确的是(b) A. B. C. D. 12、setInterval("alert('welcome');",1000);
JavaScript的bom对象
第12章对象模型与事件处理 JavaScript是一种面向对象的语言,使用对象模型可以描述JavaScript对象之间的层次关系。另外,JavaScript还可以捕捉到用户在浏览器中的操作,并对不同的操作进行响应,这就是JavaScript的事件驱动与事件处理。 12.1 对象模型 JavaScript中的对象并不是独立存在的,对象与对象之间存在着层次结构,对象模型的作用就是描述这些层次结构。 12.1.1 对象模型简介 对象模型是用来描述对象的逻辑层次结构以及其标准的操作方法的一个应用程序接口(API)。在JavaScript中,可以将对象模型分为以下几个组成部分。 核心部分(Core):JavaScript的核心部分主要包括JavaScript的数据类型、运算符、表达式,以及JavaScript中内置的全局对象、全局属性和全局函数等。前面章节中所介绍的都是JavaScript的核心部分。 浏览器对象模型(Browser Object Model):简称为BOM。浏览器对象模型提供了用户与浏览器之间交互的对象以及操作的接口。这些对象中,有很大一部分是与网页内容不相关的,如代表屏幕的Screen对象,代表浏览器的Navigator对象等。 文档对象模型(Document Object Model):简称为DOM。文档对象模型是由World Wide Web(W3C)委员会所定义的标准文档对象模型,该模型是一个能够让程序或脚本动态地访问和更新文档内容、结构和样式的应用程序接口。DOM的版本可以分为DOM1、DOM2和DOM3。BOM虽然不是W3C中的标准,但是众多浏览器都能实现该对象模型,因此也被称为0级DOM。 12.1.2 客户端对象层次 浏览器的主要作用是显示一个HTML文档,在这种情况下,JavaScript使用Document对象代表HTML文档,使用Window对象代表显示该HTML文档的浏览器窗口,如图12-1所示。
JAVASCRIPT面向对象基础总结
javascript面向对象基础 1.使用[]调用对象的属性和方法 functionUser() { this.age=21; this.sex="男?"; } varuser=newUser(); alert(user["age"]); 2.动态添加,修改,删除对象的属性和方法//定义类varuser=newObject(); //添加属性和方法 https://www.360docs.net/doc/e213243080.html,="cary"; user.age=21; user.show=function(){ alert(https://www.360docs.net/doc/e213243080.html,+"年?龄?为?:?"+this.age);} //执行方法 user.show(); //修改属性和方法 https://www.360docs.net/doc/e213243080.html,="James"; user.show=function() { alert(https://www.360docs.net/doc/e213243080.html,+"你?好?"); } //执行方法 user.show(); //删除属性和方法 https://www.360docs.net/doc/e213243080.html,="undefined"; user.show="undefined" //执行方法 user.show(); 3.使用大括号{}语法创建无类型对象varobj={}; varuser= { name:"cary", age:21,
show:function(){ alert(https://www.360docs.net/doc/e213243080.html,+"年?龄?为?:?"+this.age); } } user.show(); varobj={};等价于 varobj=newObject(); 4.Prototype原型对象 每个函数function也是一个对象,对应的类类型为“Function”,每个函数对象都有一个子对象prototype,表示函数的原型,所以当我们new一个类的对象的时候prototype对象的成员都会被实例化为对象的成员。例如: functionclass1() {} class1.prototype.show=function(){ alert("prototyemember"); } varobj=newclass1(); obj.show(); 5.Function函数对象详解 5.1Function和Date,Array,String等一样都属于JavaScript的内部对象,这些对象的构造器是由JavaScript本身所定义的。上面说过函数对象对应的类型是Function,这个和数组的对象是Array一个道理。所以也可以像newArray()一样newFunction()来创建一个函数对象,而函数对象除了使用这种方式还可以使用function关键字来创建。我们之所以不经常使用newFunction()的方式来创建函数是因为一个函数一般会有很多语句,如果我们将这些都传到newFunction()的参数中会显得可读性比较差。varfunctionName=newFunction(p1,p2,...,pn,body)其中p1到pn为参数,body为函数体。 5.2有名函数和无名函数 有名函数:functionfuncName(){}无名函数:varfuncName=function(){}他们之间的唯一区别:就是对于有名函数他可以出现在调用之后再定义,而对于无名函数,他必须是在调用之前就已经定义好。 5.3我们可以利用Function的prototype对象来扩展函数对象,如: Function.prototype.show=function(){ alert("扩展方法"); }
js面向对象编程(一看就懂)
JavaScript面向对象(一看就懂) 1、对象描述 如果有个人,他叫周杰伦,性别是男,他还有一个变化的年龄,我们该怎么用面向对象的方式来表述呢? 第一、我们先给他起一个对象名叫zjl。 第二、我们给这个对象两个属性,一个属性叫name,它的值为"周杰伦",另一个属性叫gender,它的值为"male"。 第三、我们给这个对象一个方法,叫setAge,它可以给zjl这个对象设置年龄,它有一个形参age,用于接收代表实际年龄的实参。 2、第一种创建对象的方法 让我们先来看一下创建对象的第一种方法,格式为如下所示。注意属性和属性值之间要有英文的冒号,各个属性以及函数之间要用英文的逗号隔开,对象末尾的属性值或函数后没有逗号。 注意这里面的this关键字,代表zjl这个对象,this.curage=age也就是把形参的值赋给zjl这个对象的curage属性,你当然也可以用同样的方法给属性name和gender赋值,赋值后name和gender的初始值就会被覆盖掉。现在想一想如果curage不加前面this.呢?还记得我们前面讲过的全局变量吗?没错,这样curage就不是对象zjl的属性,而是一个全局变量了,那如果我们写成var curage呢,这是它只是setAge函数里面的一个局部变量,也不再是对象zjl的属性了。加了this关键字的方法和属性叫做公有方法和属性,不管在对象内部还是外部都可以访问。所以当我们在对象内部要引用公有方法和属性时,一定记得要加his 关键字。 /*var对象名={ 属性名1:属性值, 属性名2:属性值, ...... 函数名1:function(形参......) {函数体1}, 函数名2:function(形参......) {函数体2}, ...... };*/ var zjl={ name:"周杰伦", gender:"male", setAge:function(age){ this.curage=age; } }; 3、第二种创建对象的方法 第二种创建对象的格式为: var对象名=new Object(); 对象名.属性名1=属性值1; ......
Javascript学习心得
Javascript学习心得.txt如果中了一千万,我就去买30套房子租给别人,每天都去收一次房租。哇咔咔~~充实骑白马的不一定是王子,可能是唐僧;带翅膀的也不一定是天使,有时候是鸟人。Javascript学习心得 Javascript的应用目的 通过对JavaScript的学习,知道它是由C语言演变而来的,而且在很大程度上借用了Java的语法,而Java又是由C和C++演生而来的,所以JavaScript和C有许多相似的语法特点。JavaScript的出现,可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的、可交互的表达能力。从而基于CGI静态的HTML页面将被可提供动态实时信息,并对客户操作进行反应的Web页面取代。JavaScript 脚本正是满足这种需求而产生的语言。它深受广泛用户的喜爱和欢迎,它是众多脚本语言中较为优秀的一种。 Javascript的优点 JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择,具有以下几个基本特点: 一、脚本编写语言 JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript 同样已是一种解释性语言,它提供了一个简易的开发过程。它的基本结构形式与C、C++、VB等语言十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。 二、基于对象的语言 JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。 三、简单性 JavaScript的简单性主要体现在:首先它是一种基于Java 基本语句和控制流之上的简单而紧凑的设计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。 四、安全性 JavaScript 是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。 五、动态性
JavaScript章节测试
1 Javascript语言是公司开发的产品(B) 窗体顶端 A、Microsoft B、Netscape C、SUN D、HP 我的答案:B 2 Jscript是哪个公司开发的产品 A、Microsoft B、Netscape C、SUN D、HP 我的答案:A 3 Javascript可以使用以下哪种软件进行编写 A、EXCEL B、Notepad C、.ORCAL D、Access 我的答案:B 4 与网页相关的概念有哪些? A、主页 B、超文本 C、超链接 D、浏览器 E、服务器 F、光盘 我的答案:ABCDE 5 Javascript的基本特点有哪些? A、脚本编程语言 B、基于对象的语言 C、简单性 D、动态性 E、多态性 F、跨平台性 我的答案:ABCDF 6 JavaScript是一种________和________并具有安全性能的脚本语言我的答案: 第一空:对象第二空:事件驱动
1 HTML代码table width=# or%表示? A、设置表格格子之间空间的大小 B、设置表格格子边框与其内部内容之间空间的大小 C、设置表格的宽度-用绝对像素值或文档总宽度的百分比 D、设置表格格子的水平对齐 我的答案:C 窗体底端 2 html语言中,设置围绕表格的边框的宽度的标记是?(A) A、border=# B、cellspacing=# C、cellpadding=# D、width=# 我的答案:A 3 禁止表格格子内的内容自动断行回卷的HTML代码是哪项? A、valign=? B、nowrap C、rowspan=# D、colspan=# 我的答案:B 4 表单中代表多行文本框的代码是 A、input tyle="text" B、input tyle="radio" C、textarea D、select 我的答案:C 窗体底端 5 HTML文本显示状态代码中,表示 A、文本或图片居中 B、文本加注下标线 C、文本加注上标线 D、文本闪烁 我的答案:C 6 编写HTML文件需要注意的事项有哪些? A、"<"和">"是任何标记的开始和结束。 B、标记与标记之间可以嵌套。 C、在源代码中区分大小写。 D、任何回车和空格在源代码中不起作用。 E、HTML标记中可以放置各种属性 F、如果希望在源代码中添加注释,便于阅读,可以以"<!--"开始我的答案:ABDEF
JS面向对象教程
- 6.1 JavaScript中支持面向对象的基础 6.1.1 用定义函数的方式定义类 在面向对象的思想中,最核心的概念之一就是类。一个类表示了具有相似性质的一类事物的抽象,通过实例化一个类,可以获得属于该类的一个实例,即对象。 在JavaScript中定义一个类的方法如下: function class1(){ //类成员的定义及构造函数 } 这里class1既是一个函数也是一个类。可以将它理解为类的构造函数,负责初始化工作。 6.1.2 使用new操作符获得一个类的实例 在前面介绍基本对象时,已经用过new操作符,例如: new Date(); 表示创建一个日期对象,而Date就是表示日期的类,只是这个类是由JavaScript内部提供的,而不是由用户定义的。 new操作符不仅对内部类有效,对用户定义的类也同样有效,对于上节定义的class1,也可以用new来获取一个实例:function class1(){ //类成员的定义及构造函数 } var obj1=new class1(); 抛开类的概念,从代码的形式上来看,class1就是一个函数,那么是不是所有的函数都可以用new来操作呢?是的,在JavaScript 中,函数和类就是一个概念,当对一个函数进行new操作时,就会返回一个对象。如果这个函数中没有初始化类成员,那就会返回一个空的对象。例如: //定义一个hello函数 function hello(){ alert("hello"); } //通过new一个函数获得一个对象 var obj=new hello(); alert(typeof(obj)); 从运行结果看,执行了hello函数,同时obj也获得了一个对象的引用。当new一个函数时,这个函数就是所代表类的构造函数,其中的代码被看作为了初始化一个对象。用于表示类的函数也称为构造器。 6.1.3 使用方括号([ ])引用对象的属性和方法 在JavaScript中,每个对象可以看作是多个属性(方法)的集合,引用一个属性(方法)很简单,如: 对象名.属性(方法)名 还可以用方括号的形式来引用: 对象名["属性(方法)名"] 注意,这里的方法名和属性名是一个字符串,不是原先点(? )号后面的标识符,例如:
JavaScript阶段测试-----2版
一、选择题本题 1、要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容,下面语句正确的是() A. B. C. D. 2、在HTML页面中,下面关于Window对象的说法不正确的是()。 A. Window对象表示浏览器的窗口,可用于检索有关窗口状态的信息 B. Window对象是浏览器所有内容的主容器 C.如果文档定义了多个框架,浏览器只为原始文档创建一个Window对象,无须为每个框架创建Window对象 D.浏览器打开HTML文档时,通常会创建一个Window对象 3、 window的哪个方法可以显示输入对话框?() A.confirm() B.alert() C.prompt() D.open() 4、 open()方法的哪个外观参数可以设置是否显示滚动条?() A.location B.menubar C. scrollbars D.toolbar 5、在Javascript语言中,当元素失去了焦点时激发的事件是( ) A.onFocus B.onUnLoad C.onMouseOver D.onBlur 6、在HTML中嵌入JavaScript,应该使用的标记是( ) A.〈script〉〈/script〉 B.〈head〉〈/head〉 C.〈body〉〈/body〉 D.〈JS〉〈/JS〉 7、下列不属于DHTML技术主要组成部分的是( ) A.Java B.JavaScript和VBScript C.DOM D.CSS 8、那一个对象可以获得屏幕的大小( ) A. window B. screen C. navigator D. screenX
js创建对象的几种方式(一看就懂)
JavaScript创建对象的几种方式(一看就懂) 1、对象描述 如果有个人,他叫周杰伦,性别是男,他还有一个变化的年龄,我们该怎么用面向对象的方式来表述呢? 第一、我们先给他起一个对象名叫zjl。 第二、我们给这个对象两个属性,一个属性叫name,它的值为"周杰伦",另一个属性叫gender,它的值为"male"。 第三、我们给这个对象一个方法,叫setAge,它可以给zjl这个对象设置年龄,它有一个形参age,用于接收代表实际年龄的实参。 2、第一种创建对象的方法 让我们先来看一下创建对象的第一种方法,格式为如下所示。注意属性和属性值之间要有英文的冒号,各个属性以及函数之间要用英文的逗号隔开,对象末尾的属性值或函数后没有逗号。 注意这里面的this关键字,代表zjl这个对象,this.curage=age也就是把形参的值赋给zjl这个对象的curage属性,你当然也可以用同样的方法给属性name和gender赋值,赋值后name和gender的初始值就会被覆盖掉。现在想一想如果curage不加前面this.呢?还记得我们前面讲过的全局变量吗?没错,这样curage就不是对象zjl的属性,而是一个全局变量了,那如果我们写成var curage呢,这是它只是setAge函数里面的一个局部变量,也不再是对象zjl的属性了。加了this关键字的方法和属性叫做公有方法和属性,不管在对象内部还是外部都可以访问。所以当我们在对象内部要引用公有方法和属性时,一定记得要加his 关键字。 /*var对象名={ 属性名1:属性值, 属性名2:属性值, ...... 函数名1:function(形参......) {函数体1}, 函数名2:function(形参......) {函数体2}, ...... };*/ var zjl={ name:"周杰伦", gender:"male", setAge:function(age){ this.curage=age; } }; 3、第二种创建对象的方法 第二种创建对象的格式为: var对象名=new Object(); 对象名.属性名1=属性值1; ......
Javascript考试题库1
复习题 一、选择题 1、写“Hello World”的正确javascript语法是?(A) A. document.write("Hello World") B. "Hello World" C. response.write("Hello World") D. ("Hello World") 2、JS特性不包括( D ) A.解释性 B.用于客户端 C.基于对象 D.面向对象 3、下列JS的判断语句中( )是正确的(A) A.if(i==0) B.if(i=0) C.if i==0 then D.if i=0 then 4、下列JavaScript的循环语句中( )是正确的( D ) A.if(i<10;i++) B.for(i=0;i<10) C.for i=1 to 10 D.for(i=0;i<=10;i++) 5、下列的哪一个表达式将返回假( B ) A.!(3<=1) B.(4>=4)&&(5<=2) C.(“a”==”a”)&&(“c”!=”d”) D.(2<3)||(3<2) 6、下列选项中,( )不是网页中的事件(D) A.onclick B.onmouseover C.onsubmit D.onpressbutton 7、有语句“var x=0;while(____) x+=2;”,要使while循环体执行10次,空白处的循环判定式应写为:( C ) A.x<10 B. x<=10 C.x<20 D.x<=20 8、JS语句( B ) var a1=10; var a2=20; alert(“a1+a2=”+a1+a2) 将显示( )结果 A.a1+a2=30 B.a1+a2=1020 C.a1+a2=a1+a2 9、将字串s中的所有字母变为小写字母的方法是( B) A.s.toSmallCase() B.s.toLowerCase() C.s.toUpperCase() D.s.toUpperChars() 10、以下( )表达式产生一个0~7之间(含0,7)的随机整数. ( C ) A.Math.floor(Math.random()*6) B.Math.floor(Math.random()*7) C.Math. floor(Math.random()*8) D.Math.ceil(Math.random()*8) 11、产生当前日期的方法是( C ) A.Now(); B.Date() C.new Date() D.new Now() 12、如果想在网页显示后,动态地改变网页的标题( C ) A.是不可能的 B.通过document.write(“新的标题内容”) C. 通过document.title=(“新的标题内容”) D. 通过document.changeTitle(“新的标题内容”) 13、某网页中有一个窗体对象,其名称是mainForm,该窗体对象的第一个元素是按钮,其名称
JS左右无缝滚动(一般方法+面向对象方法)
代码如下: