------- 物联云培训、java培训、期待与您交流! ----------
JavaScript
JavaScript代码和HTML的结合
JS代码存放在标签对 <script></script>中。
当有多个html页面使用到相同的JS脚本时,可以将js代码封装到一个文件中,
只要在script标签的src属性,引入一个js文件。(方便后期维护,扩展)
javascript和html的结合方式
想要将其他代码融入到Html中,都是以标签的形式。
当有多个html页面使用到相同的JS脚本时,可以将js代码封装到一个文件中,
只要在script标签的src属性引入一个js文件。(方便后期维护,扩展)
注意:如果在script标签中定义了src属性,那么标签中的内容不会被执行。
例:<scriptsrc=”test.js” type=”text/javascript”></script>
JS弹出框
(1) 警告框 用法:alert(...);
(2) 确认框 用法:confirm(...);
(3) 提示框用法:prompt("",""); 前者为提示信息,后者为默认值
JavaScript语法-变量
JavaScript是一种弱类型语言。
通过关键字var来定义变量
注:JS中特殊的常量值:undefined,当变量没有初始化就被使用,
该变量的值就是undefined(未定义)。
注意:Javascript的语句在结尾处是可以不用分号结束的,非严谨语言的特点。
而且有些情况是必须写分号的,如:var x =3 ; var y =5
如果两条语句写在同一行,就需要分号隔开。
JavaScript语法-运算符
Javascript中的运算符和Java大致相同。只是运算过程中需要注意几点:
var x = 3120/1000; x = 3
var x = 2.4+3.6 ; x=6
var x = “12” + 1; x=13
特殊运算符 typeof : 返回一个操作表达式的数据类型的字符串。
JavaScript语法-语句
判断结构(if语句) 注:var x = 3;
if(x==4)//可以进行比较运算。
if(x=4)//可以进行赋值运算,而且可以同样进行判断。不报错。
因为在Js中0或者null就是false,
非0或者非null就是true(通常用1表示)。
所以if(x=4)结果是true;
可以通过if(4==y)来解决该问题。因为4=y不会进行判断,而是会报错。
选择结构(switch语句)
与java不同的是:因为弱类型,也可以对字符串进行选择。
循环结构(while语句,do…while语句,for语句)。
注:不同的是,没有了具体数据类型的限制,使用时要注意。
document的write方法。可以写字符串,也可以写出html标签。
JavaScript语法-函数
A 一般函数
格式:function 函数名(形式参数...) {
执行语句;
return 返回值; }
函数是多条执行语句的封装体,只有被调用才会被运行。
注意:调用有参数的函数,但没有给其传值,函数一样可以运行,
或者调用没有参数的函数,给其传值,该函数也一样运行。
函数在调用时的其他写法:
var show = demo();//show变量接收demo函数的返回值。
var show = demo;//这种写法是可以的,意为show和demo代表同一个函数。
//那么该函数也可以通过show()的方式运行。
动态函数 通过Js的内置对象Function实现。
例:var demo = newFunction(“x,y”;”alert(x+y);”);
不同的是,动态函数,参数以及函数体都可以通过参数进行传递,可以动态指定。
匿名函数
格式:function(){...}
例:var demo = function(){...} demo();
通常在定义事件属性的行为时较为常用。
例: function test() {
alert(“load ok”);
}
window.onload = test;
可以写成匿名函数的形式:
window.onload = function()
{
alert(“load ok”);
}
匿名函数就是一种简写格式
JavaScript语法-数组
格式:vararr = [元素1,元素2,元素3...];
注意:其中的元素可以使任意类型,但是,推荐使用同一种类型。
vararr = new Array();
vararr = new Array(3);
JavaScript自定义对象
Js是基于对象的,不是面向对象的。但是我们可以通过函数来模拟对象的使用。
用js的函数模拟对象并使用, 用js的函数模拟对象的成员变量及方法
JavaScript用于操作对象的语句
with语句。 格式:with(对象){ }
当调用一个对象中多个成员时,为了简化调用,避免"对象."这种格式的重复书写。
var p = new Person(“zhangsan”,20);
alert(p.name+”,”+p.age);
可以写成:var p = newPerson(“zhangsan”,20);
with(p) { alert(name+”,”+age); }
with语句定义了某个对象的作用域,在该域中可以直接调用该对象的成员。
for...in语句 用于遍历对象属性。
例:var p = newPerson(“zhangsan”,20);
for(x in p) {
alert(x);//结果是两个对话框,一个是name,一个是age。
alert(x+”:”+p[x]);
//可以得到属性与属性的值。p[x]:p对象就是个数组,要通
过指定的元素名获取元素的值。
}
JavaScript对象的高级特性
prototype属性
js给已有对象提供了一个特殊的属性,prototype属性.原型属性.
它的作用:获取该对象的原型引用. 这里可以理解为一个父类.
原型的出现,可以获取到该对象的父类的引用.
当给带对象的父类添加新属性和行为时,该对象也会具备这些属性和行为.
所以,原型的出现,可以给已有的对象进行新功能的扩展.
为了方便理解:照猫画虎.
照猫画虎. 虎怎么来的,我是照着猫画来的,这个时候,我们就可以说虎的原型是猫.
也就是说: 虎.prototype = 猫.
如果,我们在猫上加了一个方法 猫.play = function(){alert("play run")}
这个时候,虎具备play这个方法了吗,具备了吗.
虎的原型是猫吗.可以看出猫是虎的父类吗.
BOM概述
BOM:Browser Object Model 浏览器对象模型
浏览器本身是一个窗体,所以它有一个windows对象.windows包含如下对象
navigator :包含关于 Web 浏览器的信息。
history:包含了用户已浏览的 URL 的信息。
location:包含关于当前 URL 的信息。
document:代表给定浏览器窗口中的 HTML 文档。也就是我们的DOM对象。
DOM: Document Object Model 文档对象模型.
该技术的出现,将标记型文档封装成了对象.
并将该标记型文档中的所有内容(标签,属性,文本)都封装成了对象.
DOM解析.
当标记型文档被DOM解析器解析后,会按照标签的层次关系,产生一颗dom树结构。
这个树的每个分支被称为一个节点。
DHTML概述
它不是一个语言,它是多个技术的综合体简称. 这里包含的技术有html,css,dom,javascript
这四种技术在DHTML编程中所处的角色呢:
html: 提供了标签用于封装数据.它是基础.没标签,什么都做不了.
css: 提供了样式,可以对标签封装的内容进行样式的操作.
dom: 将html文档封装成了对象.并将文档中的内容都封装成了对象.
对象中都定义了更多的属性和行为.方便于对象的操作.
javascript: 提供了逻辑性很强的程序设计语言来负责页面的行为.
DOM获取节点的方式
getElementById:通过该标签的id属性值来获取该标签节点对象.
getElementsByName:通过标签的name属性值来获取对象.
而且返回的不是一个节点对象.而是多个节点对象,用数组表示的.
getElementsByName:通过标签名称获取节点对象.
但是标签很容易重复.所以返回的是一个节点数组.
document对象作为html文档的对象,可以获取页面中任意一个节点.
节点本身是个对象,它具备三个属性:
1:nodeName 节点名称
2:nodeType 节点类型
3:nodeValue 节点值
设置获取节点的值
1:value
2:innerHTML,innerText
节点间的层级关系
1:parentNode:父节点 是唯一的
2:childNodes:子节点 可以有多个
3:兄弟节点
上一个兄弟节点 previousSibling
下一个兄弟节点 nextSibling
取消超链接的默认点击效果.
方式1:通过给href属性的值定义一个'#'.
这是借用了定位标记的原理.不指定具体的位置.
这样就取消了超链接的效果.但是会启动file引擎,不够专业.
方式2:可以定义:javascript:void(0);启动js引擎,运行一个函数.
void(0) 这个函数什么都不做.
超链接的默认事件被取消了.需哟自定义事件完成超链接的点击效果
下面例子是一个改变字体大小和颜色的例子:
代码如下:
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>无标题文档</title>
<styletype="text/css">
a:link,a:visited{
color:#0099CC;
text-decoration:none;
font-size:14px;
}
a:hover{
color:#0033FF;
}
.newStyle{
border:#9900CC1px solid;
font-size:16px;
width:350px;
color:#0033FF
}
.max{
color:#6633FF;
background-color:#99FF66
width:350px;
}
.min{
color:#FFFF66;
background-color:#9900CC;
width:350px;
}
</style>
<scripttype="text/javascript">
functionchangFont(size,newStyle)
{
vardivNode=document.getElementById("newstext");
divNode.style.fontSize=size
divNode.className=newsstext
}
functionchangFont_1(styleName)
{
vardivNode=document.getElementById("newstext");
divNode.className=styleName;
}
</script>
</head>
<body>
<h2>这是一个大新闻</h2>
<ahref="javascript:void(0)" οnclick="changFont_1('max')" >大字体</a>
<ahref="javascript:void(0)" οnclick="changFont_1('newStyle')">中字体</a>
<ahref="javascript:void(0)" οnclick="changFont_1('min')">小字体</a>
<divid="newstext" class="newStyle">
付款就爱上看见俺看上哪款<br/>
空间非常卡就是卡车<br/>
南昌付款就散开处罚结束<br/>
里充满了卡是卡从哪里<br/>
</div>
</body>
</html>
总结:改变字体大小,定义一个函数通过Id来获取这个节点,在定义函数时设置一个参数,为了不让用户自己瞎改变大小,可以在传入字体的大小值改变字体颜色时,要先预先定义好几个样式,然后通过传参数的方式传进来。这样写代码有利于修改,并提高了复用性
下面例子是用于演示开关的
代码如下:
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>无标题文档</title>
<!--
演示展开闭合效果
布局属性overflow
-->
<styletype="text/css">
div{
overflow:hidden;
color:#FF0066;}
</style>
<scripttype="text/javascript">
functionlist()
{
vardivNode=document.getElementsByTagName("div")[0];
with(divNode.style)
{
//alert(overflow=="visible");
overflow=(overflow=="visible")?"hidden":"visible";
}
}
</script>
</head>
<body>
<divοnclick="list()" style="height:10px">
gfjeroafmkjo<br/>
fjneawaevevg<br/>
fcdewmvfireohjtoier<br/>
fh3ewoiafmn3jfg<br/>
</div>
</body>
</html>
总结:JavaScript和CSS都是为了简化HTML、赋予HTML色彩,JavaScript是添加HTML的动态效果,CSS是添加HTML的静态效果。
实际上在html中的每个标签都封装成的对象,并且存在于一个dom树中,只要我们找到这个节点对象对其操作即可。主要的问题是找到节点对象。
------- 物联云培训、java培训、期待与您交流! ----------