| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [View Raw Code] [Original HTTPS Page] |
#应该知道 JavaScript 是世界上最流行的编程语言。 这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
**ECMAScript,**描述了该语言的语法和基本对象。 **文档对象模型(DOM),**描述处理网页内容的方法和接口。 **浏览器对象模型(BOM),**描述与浏览器进行交互的方法和接口。
JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。
直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}︰
![Image of trycatch]
(https://github.com/sammulyuan/javascript/blob/master/images%20/trycatch.png)
<SCRIPT LANGUAGE="JavaScript">
<!--
......
//-->
</SCRIPT>
(其中<!- - 和 - -> 标记,它为那些不支持 JavaScript 的浏览器提供了一个忽略它的方法,而 // 标记是一段注释的开始 )
也可以引入一个外部的JavaScript文件,外部文件通常包含被多个网页使用的代码,这个JavaScript文件一般以*.js作为扩展名,如需使用外部文件,请在 <script> 标签的 "src" 属性中设置该 .js 文件:
<SCRIPT LANGUAGE=“JavaScript” SRC=“*.js">
......
</SCRIPT>
JavaScript 变量与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比z=x+y)。
提示:JavaScript 语句和 JavaScript 变量都对大小写敏感。 虽然JavaScript可以不需定义即可直接使用变量,但不建议这么做。
变量的作用范围:
声明(创建)JavaScript 变量
在 JavaScript 中创建变量通常称为“声明”变量。
var name="Hello",
age=22,
job="CEO";重新声明 JavaScript 变量 如果重新声明 JavaScript 变量,该变量的值不会丢失: 在以下两条语句执行后,变量 name 的值依然是 “Hello":
例:
var carname="Volvo";
var carname;JavaScript算数运算符
| 运算符 | 描述 | 标注 | 例子 | 结果 |
|---|
JavaScript 赋值运算符
是将右边的操作数赋予左边的操作对象,如 x=y 为将 y 赋予 x。
给定 x=10 和 y=5,下面的表格解释了赋值运算符:
| 运算符 | 例子 | 等价于 | 结果 |
|---|---|---|---|
| = | x=y | x=5 | |
| += | x+=y | x=x+y | x=15 |
| -= | x-=y | x=x-y | x=5 |
| *= | x*=y | x=x*y | x=50 |
| /= | x/=y | x=x/y | x=2 |
| %= | x%=y | x=x%y | x=0 |
| ^= | x^=y | x=x^y按位异或,不同为1,true,相同为0,false | x=15 |
JavaScript 字符串运算符 用于字符串值连结的运算符(+)将两个字符串值连结在一起。 例如:“我的”+“计算机”就返回“我的计算机” 如果把数字与字符串相加,结果将成为字符串。 例:
txt1="What a very"; txt2="nice day"; txt3=txt1+txt2; txt3 包含的值是 "What a verynice day"。
要想在两个字符串之间增加空格,需要把空格插入一个字符串之中: 例:
txt1="What a very "; txt2="nice day"; txt3=txt1+txt2;
或者把空格插入表达式中: 例:
txt1="What a very"; txt2="nice day"; txt3=txt1+" "+txt2;
在以上语句执行后,变量 txt3 包含的值是:"What a very nice day"
JavaScript 比较运算符 比较它的操作对象并返回一个逻辑值(true 或 false)。 操作对象即可以是数字也可以是字符串值。 给定 x=1 和 y=2,下面的表格解释了比较运算符:
| 运算符 | 描述 | 标注 | 实例 | 结果 |
|---|---|---|---|---|
| == | 等号 | 如果操作对象相等返回true,如果两个操作对象不为同一类型,javascript尝试转换它们为一个适当的类型 | 3 == x “3”== y 3== ‘3’ | false false true |
| != | 不等于 | 同上面相反,两个操作水箱不相等返回true | x!= 4 y != 2 | true false |
| === | 绝对相等 | 如果操作对象相等并且类型相等返回true | 3===‘3’ x===1 | false true |
| !== | 绝对不等 | 同上面相反,如果操作对象或不是同一类型返回true | 3!== ‘3’ x!== 1 | true false |
| > | 大于 | 如果左边的操作对象大于右边操作对象返回true | x > y | false |
| >= | 大于或等于 | 如果左边的操作对象大于或等于右边的操作对象返回true | y >= x | true |
| < | 小于 | 如果左边的操作对象小于右边操作对象返回true | x < y | true |
| <= | 小于或等于 | 如果左边的操作对象小于或等于右边的操作对象返回true | y <= x | false |
JavaScript 逻辑运算符 返回一个布尔值
| 运算符 | 用法 | 描述 |
|---|---|---|
| && | 表达式1&&表达式2 | 逻辑与,如果两个表达式都为真,&&返回true,否则返回false |
| || | 表达式1||表达式2 | 逻辑或,如果两个表达式都为真,||返回true,其中一个表达式为真,||返回true,否则返回false |
JavaScript 特殊运算符:条件运算符
其语法为:条件?A:B 如果条件为真,结果值为 A,否则为 B 例:
name=(age==“22”)?"Jessica":"Dear "; 如果变量 age 中的值是 “22",则向变量 name 赋值 "Jessica ",否则赋值 "Dear"。
运算符的优先级 是复合运算进行计算时的先后顺序,对于所有的二元运算都是从左到右进行计算,用圆括号来忽略优先级:
![Image of youxianji] (https://github.com/sammulyuan/javascript/blob/master/images%20/youxianji.png)
if (条件)
{
只有当条件为 true 时执行的代码
}
注意:请使用小写的 if。使用大写字母(IF)会生成 JavaScript 错误!
if (条件) {
当条件为 true 时执行的代码
}else {
当条件不为 true 时执行的代码
}
条件可以是任何结果值为 true 或 false 的 JavaScript 表达式,语句可以是任何可执行的 JavaScript 语句
它还可以任意层地被嵌套,如果条件语句后面是单条语句,那么就不需要大括号 {}。请看下例代码: 例:
<SCRIPT>
function checkData () {
if (document.form1.three.value.length == 3)
alert("OK!");
else {
alert("请输入三个字符," + document.form1.three.value + "无效!");
return false;
}
</SCRIPT>
<form name="form1"><center>
<input type="text" name="three" onChange="checkData()">
</center>
</form> if (条件 1)
{
当条件 1 为 true 时执行的代码
}
else if (条件 2)
{
当条件 2 为 true 时执行的代码
}
else
{
当条件 1 和 条件 2 都不为 true 时执行的代码
}
switch (表达式){
case : 语句;
break;
case : 语句;
break;
...
default : 语句;
}
例:
var day=new Date().getDay();
switch (day){
case 0:
x="Today it's Sunday";
break;
case 1:
x="Today it's Monday";
break;
case 2:
x="Today it's Tuesday";
break;
case 3:
x="Today it's Wednesday";
break;
case 4:
x="Today it's Thursday";
break;
case 5:
x="Today it's Friday";
break;
case 6:
x="Today it's Saturday";
break;
} for ([初始表达式]; [条件]; [增量表达式]) {
被执行的代码块;
}
初始表达式: 在循环(代码块)开始前执行,该表达式只在执行循环前被执行一次;
初始表达式是可选的,也就是说不使用也可以,可以在初始表达式中初始化任意(或者多个)值
条件: 定义运行循环(代码块)的条件,是一个 Boolean 表达式;如果是 true,则语句被执行,如果为 false,则循环结束;
如果省略了条件,那么必须在循环内提供 break。否则循环就无法停下来。这样有可能令浏览器崩溃
增量表达式: 在循环(代码块)已被执行之后执行;
增量表达式也是可选的。增量可以是负数 (i--),或者更大 (i=i+15)。可以省略(比如当循环内部有相应的代码时)
被执行的代码块: 为 true 时,要执行的语句,它可以是复合(多条)语句。 例:
myarray = new Array();
for (i = 0; i < 10; i++)
{
myarray[i] = i;
}例:
var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{
txt=txt + person[x];
}while (条件)
{
需要执行的代码
}
该语句与 do...while 语句不同的是,它将在语句执行开始检查条件是否为 true,如是 false,它将根本不会执行下面的语句
do {
需要执行的代码;
} while (条件)
首先执行一个语句块,然后重复循环的执行该语句块,直到条件表达式等于 false
例:
for (i=0;i<10;i++)
{
if (i==3) break;
x=x + "The number is " + i + "<br>";
}例:
<script>
function myFunction(){
var x="",i=0;
for (i=0;i<10;i++){
if (i==5){
continue;
}
x=x + "The number is " + i + "<br>";
}
}
</script> 输出后会跳过5执行 continue 语句(带有或不带标签引用)只能用在循环中。 break 语句(不带标签引用),只能用在循环或 switch 中。
通过标签引用,break 语句可用于跳出任何 JavaScript 代码块
函数是由事件驱动的活着当它被调用时执行的可重复使用的代码块。
在JavaScript中使用函数时,必须先定义这个函数,然后才能对这个函数进行调用。下面先介绍函数的定义方式:
function 函数名(参数列表)
{
代码块
}
利用function来定义一个函数
function myFunction(var1,var2)
{
这里是要执行的代码
}
变量和参数必须以一致的顺序出现。第一个变量就是第一个被传递的参数的给定的值,以此类推。
function myFunction()
{
var x=5;
return x;
}上面的函数会返回值 5。
注释:整个 JavaScript 并不会停止执行,仅仅是函数。JavaScript 将继续执行代码,从调用函数的地方。
如果把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。这条语句:carname="Volvo"; 将声明一个全局变量 carname,即使它在函数内执行。
函数在定义好之后,不能自动执行,需要进行调用 调用方式:
<script>
function demo(){
var a=10;
var b=20;
var sum=a+b;
alert(sum);
}
demo();//调用函数
</script> 例:
<form>
<input type=“button” value=“按钮” onclick=“demo()”>
</form>
或<button onclick=“demo()”>按钮</button>解释: 一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。 闭包的特点:
**原因:**javascript允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。 当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。
例:
function closure(){
var str = "I'm a part variable.";
return function(){
alert(str);
}
}
var fObj = closure();
fObj();在上面代码中,str是定义在函数closure中局部变量,若str在closure函数调用完成以后不能再被访问,则在函数执行完成后str将被释放。 但是由于函数closure返回了一个内部函数,且这个返回的函数引用了str变量,导致了str可能会在closure函数执行完成以后还会被引用,所以str所占用的资源不会被回收。这样closure就形成了一个闭包。
可以使用 document.getElementById(id) 方法从 JavaScript 访问某个 HTML 元素;
<!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<p id="demo">My First Paragraph</p>
<script>
document.getElementById("demo").innerHTML="My First JavaScript";
</script>
</body>
</html><!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<script>
document.write("<p>My First JavaScript</p>");
</script>
</body>
</html>注意:document.write() 仅仅向文档输出写内容,如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。
JavaScript 语句向浏览器发出的命令,语句的作用是告诉浏览器该做什么;
提示:也可能看到不带有分号的案例,在 JavaScript 中,用分号来结束语句是可选的。
JavaScript 函数是将语句组合在块中的典型例子。
空格 JavaScript 会忽略多余的空格。你可以向脚本添加空格,来提高其可读性。
对代码行进行折行 可以在文本字符串中使用反斜杠对代码行进行换行。 注意:这样不可以
document.write \
("Hello World!");
整数类型 一个整数可以是十进制、十六进制和八进制数,一个十进制数由一串数字序列组成,它的第一个数字不能为0;如38,-25,+120,74286等都是十进制整数。 如果第一个数字为0,则表示它是一个八进制数;如0,012,0377,04056等都是八进制整数,对应的十进制整数依次为0,10,255和2094。 若为0x,则表示它为一个十六进制数;如0x0,0X25,0x1ff,0x30CA等都是十六进制整数,对应的十进制整数依次为0,37,511和4298。
浮点数类型 浮点数的例子: 3.1415, -3.1E12, 0.1e12 和 2E-12 一个浮点数必须包含一个数字,一个小数点或“e”(或“E”)。
布尔类型 Boolean 类型有两种值:true 和 false
字符串类型 字符串是若干封装在双引号(“)或单引号(')内的字符。如下: "fish" 'fish' "5467" "a line" 可以在字符串中使用引号,只要不匹配包围字符串的引号即可: "He is called 'Bill'";
对象类型 用new声明一个新的对象 例:
var currentDay = new Date(); alert(currentDay.getDay());
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value)来定义。属性由逗号分隔: 例:
var person={firstname:"Bill", lastname:"Gates", id:5566};
空格和折行无关紧要。声明可横跨多行: 例:
var person={
firstname : "Bill",
lastname : "Gates",
id : 5566
};
对象属性有两种寻址方式: 例:
name=person.lastname; name=person["lastname"];
Undefined 和 Null Undefined 这个值表示变量不含有值。 可以通过将变量的值设置为 null 来清空变量。
数组类型 例:
var arr = new Array(3);
通过arr.length取得数组的长度
注意: JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。
| break | delete | function | return | type |
|---|---|---|---|---|
| case | do | if | switch | var |
| catch | else | in | this | void |
| continue | finally | instance of | throw | while |
| default | for | new | try | with |
| abstract | debugger | final | int | private | super |
|---|---|---|---|---|---|
| boolean | double | float | interface | protected | synchronize |
| byte | enum | goto | long | public | throws |
| char | export | implements | native | short | transient |
| class | extends | import | package | static | volatile,const |
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数... JavaScript 允许自定义对象; JavaScript 提供多个内建对象,比如 String、Date、Array 等等。 对象只是带有属性和方法的特殊数据类型。
objectName.length方法:
var currentDay = new Date();
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
var myFather=new person("Bill","Gates",56JavaScript 只有一种数字类型,可以使用也可以不使用小数点来书写 所有 JavaScript 数字均为 64 位.
精度: 整数(不使用小数点或指数计数法)最多为 15 位。 小数的最大位数是 17,但是浮点运算并不总是 100% 准确:
**八进制和十六进制:**如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。
提示:绝不要在数字前面写零,除非您需要进行八进制转换。
数字属性和方法
MAX VALUE, NaN MIN VALUE, prototype NEGATIVE INFINITIVE, constructor POSITIVE INFINITIVE
toExponential(), toString() toFixed(), valueOf() toPrecision()
var myArray=new Array()var mycars=new Array()
mycars[0]="Saab"或
var mycars=new Array("Saab","Volvo","BMW")字符串对象用于处理已有的字符块。 例:
var txt="Hello world!"
document.write(txt.length)
document.write(txt.toUpperCase())输出12 HELLO WORLD!
var myDate=new Date()
注意:Date 对象自动使用当前的日期和时间作为其初始值。
Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false)。
var myBoolean=new Boolean()
注释:如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 "false" 时)
常数, Math.E 2 的自然对数, Math.LN2 圆周率, Math.PI 10 的自然对数, Math.LN10 2 的平方根, Math.SQRT2 以 2 为底的 e 的对数, Math.LOG2E 1/2 的平方根, Math.SQRT1_2 以 10 为底的 e 的对数, Math.LOG10E
RegExp 对象用于规定在文本中检索的内容 RegExp 是正则表达式的缩写
var patt1=new RegExp("e");
当使用该 RegExp 对象在一个字符串中检索时,将寻找的是字符 "e"。
RegExp 对象的方法: test()、exec() 以及 compile()。
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));输出true,因为此字符串中含有“e”
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));输出“e”
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
patt1.compile("d");
document.write(patt1.test("The best things in life are free"));输出truefalse,因为字符串里有“e”没有“d”
**HTML DOM (文档对象模型):**通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。 HTML DOM 树:
![Image of DOM%E6%A0%91] (https://github.com/sammulyuan/javascript/blob/master/images%20/DOM%E6%A0%91.png)
查找 HTML 元素方法
var x=document.getElementById("hello");如果找到hello元素,则x返回hello元素;否则返回null 2. 通过标签名找到 HTML 元素 例:
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");凭id找main元素,在找main元素中的所有<p>元素 3. 通过类名找到 HTML 元素
提示:通过类名查找 HTML 元素在 IE 5,6,7,8 中无效。
<!DOCTYPE html>
<html>
<body>
<script>
document.write(Date());
</script>
</body>
</html>提示:绝不要使用在文档加载之后使用 document.write()。这会覆盖该文档。
document.getElementById(id).innerHTML=new HTML
例:
<html>
<body>
<p id="p1">Hello World!</p>
<script>
document.getElementById("p1").innerHTML="New text!";
</script>
</body>
</html>此句输出的是New text!不是Hello World!
document.getElementById(id).attribute=new value
改变 HTML 样式
document.getElementById(id).style.property=new style
例:
<p id="p2">Hello World!</p>
<script>
document.getElementById("p2").style.color="blue";
</script>输出后Hello World!字体为蓝色
**创建新的 HTML 元素:**向 HTML DOM 添加新元素,必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。
var para=document.createElement("p");var node=document.createTextNode("这是新段落。");para.appendChild(node);var element=document.getElementById("div1");element.appendChild(para);**删除已有的 HTML 元素:**删除 HTML 元素,必须首先获得该元素的父元素:
parent.removeChild(child);var child=document.getElementById("p1");
child.parentNode.removeChild(child);浏览器对象模型(Browser Object Model)尚无正式标准。 由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。
所有浏览器都支持 window 对象。它表示浏览器窗口。所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。 全局变量是 window 对象的属性。全局函数是 window 对象的方法。 甚至 HTML DOM 的 document 也是 window 对象的属性之一:
window.document.getElementById("header");window.innerHeight - 浏览器窗口的内部高度 window.innerWidth - 浏览器窗口的内部宽度
对于 Internet Explorer 8、7、6、5:
document.documentElement.clientHeight document.documentElement.clientWidth
或者
document.body.clientHeight document.body.clientWidth
window.open() - 打开新窗口 window.close() - 关闭当前窗口 window.moveTo() - 移动当前窗口 window.resizeTo() - 调整当前窗口的尺寸
**Window Screen:**window.screen 对象在编写时可以不使用 window 这个前缀。
screen.availWidth - 可用的屏幕宽度 screen.availHeight - 可用的屏幕高度
**Window Location:**window.location 对象在编写时可不使用 window 这个前缀。
location.hostname 返回 web 主机的域名 location.pathname 返回当前页面的路径和文件名 location.port 返回 web 主机的端口 (80 或 443) location.protocol 返回所使用的 web 协议(http:// 或 https://)
**Window History:**window.history 对象在编写时可不使用 window 这个前缀。为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。
history.back() - 与在浏览器点击后退按钮相同 history.forward() - 与在浏览器中点击按钮向前相同
**Window Navigator:**window.navigator 对象在编写时可不使用 window 这个前缀。
if (window.opera) {...some action...}alert("文本")
confirm("文本")
如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。
prompt("文本","默认值")
如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。
**avaScript 计时事件:**通过使用 JavaScript,我们有能力作到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。
方法:
setTimeout():未来的某时执行代码 clearTimeout():取消setTimeout()
var t=setTimeout("javascript语句",毫秒)
setTimeout() 方法会返回某个值。 第一个参数是含有 JavaScript 语句的字符串。这个语句可能诸如 alert('5 seconds!'),或者对函数的调用,诸如 alertMsg()。
clearTimeout(setTimeout_variable)
cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。
例:创建一个可在 cookie 变量中存储访问者姓名的函数
function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" :";expires="+exdate.toGMTString())
}注意:onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。 首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件,最后,当完成鼠标点击时,会触发 onclick 事件。
HTML 事件的例子:
**JavaScript 抛出错误:**当错误发生时,当事情出问题时,JavaScript 引擎通常会停止,并生成一个错误消息。 描述这种情况的技术术语是:JavaScript 将抛出一个错误 JavaScript 测试和捕捉:
JavaScript 语句 try 和 catch 是成对出现的。
try
{
//在这里运行代码
}
catch(err)
{
//在这里处理错误
}
如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
throw exception
注意:异常可以是 JavaScript 字符串、数字、逻辑值或对象。
<body onload="checkCookies()">
**添加监听:**在JavaScript中,我们使用如下的方式为元素添加事件监听:
element.addEventListener(<event-name>, <callback>, <use-capture>);
var element = document.getElementById('element');
function callback() {
alert('Hello');
}
// Add listener
element.addEventListener('click', callback);**移除监听:**使用element.removeEventListener()方法来移除事件监听:
element.removeEventListener(<event-name>, <callback>, <use-capture>);
注意:必须要有这个被绑定的回调函数的引用。简单地调用element.removeEventListener('click');是不能达到想要的效果的。
不能使用匿名函数作为回调函数。 例:
var element = document.getElementById('element');
function callback() {
alert('Hello once');
element.removeEventListener('click', callback);
}
// Add listener
element.addEventListener('click', callback);
Element对象
![Image of Element] (https://github.com/sammulyuan/javascript/blob/master/images%20/Element.png)
Firebug是网页浏览器 Mozilla Firefox 下的一款开发类扩展,现属于Firefox的五星级强力推荐扩展之一。 它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。 Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web页面内部的细节层面,给Web开发者带来很大的便利。 Firebug是一个除错工具。用户可以利用它除错、编辑、甚至删改任何网站的 CSS、HTML、DOM 以及JavaScript 代码。
action 、elements、method、name、target
Get Post name target
_self _parent _blank _top
document.forms[索引].elements[索引].属性 document.forms[索引].elements[索引].方法(参数) document.forms[索引].属性 document.forms["表单名称"].属性 document.表单名称.元素名称.属性 document.表单名称.元素名称.方法(参数)
表单提交的一般方式:
1. .....<input type="submit" onclick="return validate();"> 2. .....<form action="...." name="...." onsubmit="return validate(this);"> 3. .....<input type="button" onclick="validate(this)">
validate()函数
function validate(obj){
obj.submit()
}
JavaScript 库 - jQuery、Prototype、MooTools。
**jQuery:**jQuery 是目前最受欢迎的 JavaScript 框架。 它使用 CSS 选择器来访问和操作网页上的 HTML 元素(DOM 对象)。 jQuery 同时提供 companion UI(用户界面)和插件。 许多大公司在网站上使用 jQuery:Google、Microsoft、IBM、Netflix
例: JavaScript 方式:
function myFunction()
{
var obj=document.getElementById("h01");
obj.innerHTML="Hello jQuery";
}
onload=myFunction;等价的 jQuery 是不同的: jQuery 方式:
function myFunction()
{
$("#h01").html("Hello jQuery");
}
$(document).ready(myFunction); **Prototype:**Prototype 是一种库,提供用于执行常见 web 任务的简单 API。
**MooTools:**MooTools 也是一个框架,提供了可使常见的 JavaScript 编程更为简单的 API。
MooTools 也含有一些轻量级的效果和动画函数。
AJAX 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取。
http 请求 GET 用于获取数据。GET 是在 URL 中传递数据,它的安全性低,容量低。 POST 用于上传数据。POST 安全性一般,容量几乎无限。
ajax 请求:
ajax 请求一般分成 4 个步骤: 1.创建 ajax 对象 在创建对象时,有兼容问题:
var oAjax = new XMLHttpRequest(); //for ie6 以上
var oAjax = new ActiveXObject('Microsoft.XMLHTTP'); //for ie6合并上面的代码:
var oAjax = null;
if(window.XMLHttpRequest){
oAjax = new XMLHttpRequest();
}else{
oAjax = new ActiveXObject('Microsoft.XMLHTTP');
}**2.连接服务器:**会用到 open() 方法。
oAjax.open('GET', url, true);**3.发送请求:**send() 方法。
oAjax.send();4.接收返回值 onreadystatechange 事件。当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState:请求状态,返回的是整数(0-4)。 0(未初始化):还没有调用 open() 方法。 1(载入):已调用 send() 方法,正在发送请求。 2(载入完成):send() 方法完成,已收到全部响应内容。 3(解析):正在解析响应内容。 4(完成):响应内容解析完成,可以在客户端调用。 status:请求结果,返回 200 或者 404。 200 => 成功。 404 => 失败。
极客课程链接:JavaScript内置对象
极客课程链接:JavaScript浏览器对象
jQuery 是一个 JavaScript 库。 jQuery 极大地简化了 JavaScript 编程。 HTML DOM 定义了访问和操作 HTML 文档的标准方法。 HTML DOM 独立于平台和语言,可被任何编程语言使用,比如 Java、JavaScript 和 VBscript。 AJAX = 异步 JavaScript 和 XML。 AJAX 不是一种新的编程语言,而是一种使用现有标准的新方法。 通过与服务器进行数据交换,AJAX 可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 接下来要学好HTML5。
| Back | FazBrowse Home | New Git URL |