Javascript:
是Netscape公司语言,基于对象和事件驱动
和java的不同之处
1、所属公司不一样,java是sun公司,现在是Orcale公司
2、js是基于对象,java是面向对象
3、js是由浏览器解释并执行,java是由jvm解释并执行
4、js是弱类型的语言,java是强类型
5、js是非严谨的,java是严谨的
javascript运行在客户端
Javascript的基本语法:
1、变量
通过var关键字定义变量,该变量可以赋予不同类型的常量
var x=3;
x="abc";
特殊的常量:undefined
2、语句
if ,switch ,while, do while,for
使用逻辑运算符进行布尔表达式链接的时候,需要短路与和短路或
因为在js中,非0即为true,0为false,null为false
js特有的语句:
with():可以确定对象所使用的范围,在范围内,可以直接使用指定的对象的行为和属性
for(变量 in 对象):可以对对象的属性及行为进行遍历
3、数组:
对于js的数组特点在于:该数组的长度是可变的,相对于java中的集合
该数组中可以存放的元素类型是可以不同的
格式:
var arr=[3,true,"abc"];
var arr=new Array();
var arr=[[3,true,"abc"],[2]];
4、函数
通过function关键字定义函数
a.一般函数
function 函数名(形式参数){
执行语句;
return 返回值;
}
两个明确:
1、明确该功能实现后的结果
2、该功能在实现过程中是否有未知的内容参与运算
b.动态函数
使用的Function对象
var show=new Function("x","y","return x+y;");
动态函数的特点:可以将参数列表和方法体作为参数传递
c.匿名函数
一般函数的简写形式
function(){}
匿名函数通常可以用于事件的处理的
如:
window.οnlοad=function(){alert('onload over');}
在函数使用时需要注意的部分:
function show(){
return "show run";
}
var method=show();
var method=show;
两句代码都是正确的,
第一句表示的是show方法运行后的结果赋值给method变量
第二句表示的是将show指向的对象的地址值赋给method,那么method也指向了该对象,那么就可以通过method();的形式来调用这给show方法
-------------------------------------------------------
js可以通过对象形式将数据进行封装
首先对对象进行描述,通过函数来完成
function Person(name,age){
this.name=name;
this.age=age;
}
var p=new Person("林青霞",12);
alert(p["name"]+"...."+p.age);
p.show=function(){
alert("show run");
}
------------------------------------------------------------------
Javascript中已经定义好的一些对象
1.String,Math,Date,Array,Function....
这些对象都有一个属性叫做prototype原型
prototype可以获取指定的对象引用
可以通过该引用给已有的对象赋予一些新的功能
那么在使用该对象的时候, 可以直接调用定义好的新功能
function getMax(){
var max=0;
for(s in this){
if(max<this[s])
max=this[s];
}
return max;
}
var arr=[9,2,8,2,6,8,7,4];
arr.sort();//直接调用Array对象的sort方法对数组进行排序
那么可不可以想调用sort方法一样调用getMax方法呢?
就需要将getMax方法添加到Array对象当中
Array.prototype.getMax=getMax;
var x=arr.getMax();
------------------------------------------------------
常见的全局方法
parseInt(numstr,[radix]);
如果指定了基数,那么numstr就会按照基数进制进行转换
var x=6;
alert(x.toString(2));//110 获取6的对应的二进制表现形式
----------------------------------------------
javascript需要被浏览器所解释执行,就必须要将代码和html相结合
1.通过定义<script>标签将js代码存入其中,并指定type属性,方便与浏览器启动指定的解析引擎
2.也可以通过<script>标签,使用src属性链接一个指定的js文件进来
--------------------------------------------------------------------
DOM(document Object model) 文档对象模型
其实就是将一些标记型 的文档以及文档中内容当成对象
为什么要将这些文档以及其中的标签封装成对象呢?
因为可以在对象中定义其属性和行为,可以方便的操作这些对象
DOM在封装标记型文档时,有三层模型
DOM1:针对HTML1文档
DOM2:针对XML文档
DOM3:针对XML文档
HTML,XHTML,XML:这些都是标记型文档
DHTML:是多个技术的综合体,叫做动态的HTML
HTML:负责将数据进行标签的封装
css:负责标签的样式
dom:负责将标签以及标签中的数据封装成对象
javascript:负责通过程序设计方式来操作这些对象
标签之间存在着层次关系:
HTML
|---head
|---title
|---base
|---link
|---meta
|---style
|---script
|---body
|---div
|---form
|---input
|---select
|---span
|---a
|---table
|---tbody
|---tr
|---td
|---th
|---dl
|---dt
|---dd
通过这个标签层次,可以形象的看做是一个树形结构,也称标记型文档,加载进内存的是一颗DOM树
这些标签以及标签的数据都是这棵树上的节点
当标记型文档加载进内存,那么内存中有了一个对应的DOM树
DOM对标记型文档的解析有一个弊端就是文档过大,相对消耗资源,对于大型文档可以使用SAX解析
节点类型:
标签型节点:类型1
属性节点:类型2
文本型节点:类型3
注释型节点:类型8
document:类型9
注意:标签之间存在空行时,会出现一个空白的文本节点,在获取节点时一定要注意
节点的关系:
父节点:parentNode
子节点:childNodes:直接子节点,返回的是一个节点对象数组
兄弟节点:
上一个兄弟节点:previousSibling
下一个兄弟节点nextSibling
--------------------------------------------
获取可以通过节点的层次关系完成
也可以通过document对象完成
getElementById:通过ID属性值获取对应的节点对象,如果有多个ID值相同,获取到的是第一个Id所属对象
尽量保证ID的唯一性,返回的是一个对象
getElementsByName:
通过标签的name属性值获取对象,返回的是一堆对象,其实是一个对象数组
getElementsByTagName:即没有ID也没有name时,可以通过标签名来获取节点对象,返回的是一堆对象,其实是一个对象数组
大多数容器型标签都有此方法
是Netscape公司语言,基于对象和事件驱动
和java的不同之处
1、所属公司不一样,java是sun公司,现在是Orcale公司
2、js是基于对象,java是面向对象
3、js是由浏览器解释并执行,java是由jvm解释并执行
4、js是弱类型的语言,java是强类型
5、js是非严谨的,java是严谨的
javascript运行在客户端
Javascript的基本语法:
1、变量
通过var关键字定义变量,该变量可以赋予不同类型的常量
var x=3;
x="abc";
特殊的常量:undefined
2、语句
if ,switch ,while, do while,for
使用逻辑运算符进行布尔表达式链接的时候,需要短路与和短路或
因为在js中,非0即为true,0为false,null为false
js特有的语句:
with():可以确定对象所使用的范围,在范围内,可以直接使用指定的对象的行为和属性
for(变量 in 对象):可以对对象的属性及行为进行遍历
3、数组:
对于js的数组特点在于:该数组的长度是可变的,相对于java中的集合
该数组中可以存放的元素类型是可以不同的
格式:
var arr=[3,true,"abc"];
var arr=new Array();
var arr=[[3,true,"abc"],[2]];
4、函数
通过function关键字定义函数
a.一般函数
function 函数名(形式参数){
执行语句;
return 返回值;
}
两个明确:
1、明确该功能实现后的结果
2、该功能在实现过程中是否有未知的内容参与运算
b.动态函数
使用的Function对象
var show=new Function("x","y","return x+y;");
动态函数的特点:可以将参数列表和方法体作为参数传递
c.匿名函数
一般函数的简写形式
function(){}
匿名函数通常可以用于事件的处理的
如:
window.οnlοad=function(){alert('onload over');}
在函数使用时需要注意的部分:
function show(){
return "show run";
}
var method=show();
var method=show;
两句代码都是正确的,
第一句表示的是show方法运行后的结果赋值给method变量
第二句表示的是将show指向的对象的地址值赋给method,那么method也指向了该对象,那么就可以通过method();的形式来调用这给show方法
-------------------------------------------------------
js可以通过对象形式将数据进行封装
首先对对象进行描述,通过函数来完成
function Person(name,age){
this.name=name;
this.age=age;
}
var p=new Person("林青霞",12);
alert(p["name"]+"...."+p.age);
p.show=function(){
alert("show run");
}
------------------------------------------------------------------
Javascript中已经定义好的一些对象
1.String,Math,Date,Array,Function....
这些对象都有一个属性叫做prototype原型
prototype可以获取指定的对象引用
可以通过该引用给已有的对象赋予一些新的功能
那么在使用该对象的时候, 可以直接调用定义好的新功能
function getMax(){
var max=0;
for(s in this){
if(max<this[s])
max=this[s];
}
return max;
}
var arr=[9,2,8,2,6,8,7,4];
arr.sort();//直接调用Array对象的sort方法对数组进行排序
那么可不可以想调用sort方法一样调用getMax方法呢?
就需要将getMax方法添加到Array对象当中
Array.prototype.getMax=getMax;
var x=arr.getMax();
------------------------------------------------------
常见的全局方法
parseInt(numstr,[radix]);
如果指定了基数,那么numstr就会按照基数进制进行转换
var x=6;
alert(x.toString(2));//110 获取6的对应的二进制表现形式
----------------------------------------------
javascript需要被浏览器所解释执行,就必须要将代码和html相结合
1.通过定义<script>标签将js代码存入其中,并指定type属性,方便与浏览器启动指定的解析引擎
2.也可以通过<script>标签,使用src属性链接一个指定的js文件进来
--------------------------------------------------------------------
DOM(document Object model) 文档对象模型
其实就是将一些标记型 的文档以及文档中内容当成对象
为什么要将这些文档以及其中的标签封装成对象呢?
因为可以在对象中定义其属性和行为,可以方便的操作这些对象
DOM在封装标记型文档时,有三层模型
DOM1:针对HTML1文档
DOM2:针对XML文档
DOM3:针对XML文档
HTML,XHTML,XML:这些都是标记型文档
DHTML:是多个技术的综合体,叫做动态的HTML
HTML:负责将数据进行标签的封装
css:负责标签的样式
dom:负责将标签以及标签中的数据封装成对象
javascript:负责通过程序设计方式来操作这些对象
标签之间存在着层次关系:
HTML
|---head
|---title
|---base
|---link
|---meta
|---style
|---script
|---body
|---div
|---form
|---input
|---select
|---span
|---a
|---table
|---tbody
|---tr
|---td
|---th
|---dl
|---dt
|---dd
通过这个标签层次,可以形象的看做是一个树形结构,也称标记型文档,加载进内存的是一颗DOM树
这些标签以及标签的数据都是这棵树上的节点
当标记型文档加载进内存,那么内存中有了一个对应的DOM树
DOM对标记型文档的解析有一个弊端就是文档过大,相对消耗资源,对于大型文档可以使用SAX解析
节点类型:
标签型节点:类型1
属性节点:类型2
文本型节点:类型3
注释型节点:类型8
document:类型9
注意:标签之间存在空行时,会出现一个空白的文本节点,在获取节点时一定要注意
节点的关系:
父节点:parentNode
子节点:childNodes:直接子节点,返回的是一个节点对象数组
兄弟节点:
上一个兄弟节点:previousSibling
下一个兄弟节点nextSibling
--------------------------------------------
获取可以通过节点的层次关系完成
也可以通过document对象完成
getElementById:通过ID属性值获取对应的节点对象,如果有多个ID值相同,获取到的是第一个Id所属对象
尽量保证ID的唯一性,返回的是一个对象
getElementsByName:
通过标签的name属性值获取对象,返回的是一堆对象,其实是一个对象数组
getElementsByTagName:即没有ID也没有name时,可以通过标签名来获取节点对象,返回的是一堆对象,其实是一个对象数组
大多数容器型标签都有此方法