JavaScript—W3school

时间:2021-07-16 23:15:31

一、JavaScript基础

1.写入HTML输出

2.对事件作出反应

3.改变HTML内容

4.改变HTML图像

5.改变HTML样式

6.验证输入

<script>

Function myFunction(){

Var x=document.getElementById("demo").value;

If(X==""||isNaN(x)){

Alert("not mumeric");

}

}

</script>

<button type="button" onclick="myFunction()">点击这里</button>
7.外部的JavaScript

<!DOCTYPE
html>

<html>

<body>

<script
src="myScript.js"></script>

</body>

</html>

8.通过指定的id来访问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>

9.document.write()仅向文档输出写内容,如果在文档已完成加载后执行document.write,整个hrml页面将被覆盖。

<!DOCTYPE
html>

<html>

<body>

<h1>
bla bla</h1>

<p>
bla bal paragraph</p>

<button
onclick="myFunction()">balbal</button>

<script>

Function
myfunction()

{

Document.write("文档消失了");

}

</script>

</body>

</html>

10.JavaScript变量和数据类型

Var x = bla;变量必须以字母开头;变量也能以$和_符号开头;变量名称对大小写敏感。

文本值:name="bill
gates"

Var pi=3.141592653589793

Var
name=“bill gates”

var
name="Gates", age=56, job="CEO";

var
name="Gates",
age=56,
job="CEO";

var carname;
carname= undefined;

字符串中的引号

var answer="Nice
to meet you!";
var answer="He is called 'Bill'";
var answer='He is called "Bill"';

数字中的小数点

var x1=34.00;      //使用小数点来写
var x2=34;

var y=123e5;      // 12300000
var z=123e-5;

JavaScript中布尔值

Var x = true;

Var y = false;

JavaScript中的数组

Var cars
= new Array();

Cars[0] =
"audi";

Cars[1]="bmw";

Cars[2]="volvo";

Var cars
= new Array("Audi","Bmw","volvo");

Var cars
=["audi","bmw","volvo"];

JavaScript对象和属性寻址

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来清空变量

Cars =
null;

Person =
null;

声明变量类型

Var carname = new String;

Var x
=  new Number;

Var y =
new Boolean;

Var cars =
new Array;

Var person
= new Object;

<p
id="demo"></p>
var
carname="Volvo";
document.getElementById("demo").innerHTML=carname;

11.对象与函数

函数语法

Function funtionname()

{

实体

}

Function funtionname(var1 var2)

{

实体

}

function
myfountion()

{

实体

return ;

}

javaScript 中变量作用域和生命周期

局部变量:函数快内 函数运行以后被删除

全局变量:整个页面的脚本都可以访问   页面关闭以后被删除

字符创运算符:

txt1="What a
very";
txt2="nice day";
txt3=txt1+txt2;

如果把数字和字符串相加最后结果是字符串

12.JavaScript
错误 throw、 try
catch

13.JavaScript表单验证

表单验证是数据被送到服务器之前对HTML表单中的数据进行验证。

1.用户是否已填写表单中的必填项目

fuction
validate_required(field,alerttxt)

{

with(field)

{

if(value==null||value="")

{

alert(alerttxt);

return false;

}else{

return true;

}

}

}

<html>

<head>

<script type="text/javascript>

function validate_required(field,alerttxt)

{

with(field)

{

if(value==null||value=="")

{

alert(alerttxt);

return false;

}

}

}

function validate_form(thisform)

{

with(thisform)

{

if(validate_required(email,"must be filled out!")==false)

{

email.focus();

return false;

}

}

}

</script>

</head>

<body>

<form action="submitpage.htm" onsubmit="return
validate_form(this)" method="post">

Email:<input type="text" name="email"
size="30">

<input type="submit" vlue="submit">

</form>

</body>

</html>

2.用户输入的邮件地址是否合法

fuction
validate_email(field,alerttxt)

{

with(field)

{

apos=value.indexof(@);

dotpos=value.lastIndexOf(".")

if(apos<1||dotpos-apos<2)

{

alert(alerttxt);

return false;

}else

{

return true;

}

}

}

<html>
<head>
<script type="text/javascript">
function validate_email(field,alerttxt)
{
with
(field)
{
apos=value.indexOf("@")
dotpos=value.lastIndexOf(".")
if (apos<1||dotpos-apos<2)
  {alert(alerttxt);return
false}
else {return true}
}
}

function
validate_form(thisform)
{
with (thisform)
{
if (validate_email(email,"Not a valid e-mail
address!")==false)
  {email.focus();return
false}
}
}
</script>
</head>

<body>
<form action="submitpage.htm"onsubmit="return
validate_form(this);" method="post">
Email: <input type="text" name="email"
size="30">
<input type="submit" value="Submit">

</form>
</body>

</html>

3.用户是否已输入合法的日期

4.用户是否在数据域中输入文本。

二、JS HTML DOM

1.DOM 文档树

改变HTML元素的内容(innerHTML)

<!DOCTYPE
html>

<html>

<body>

<img
id="image" src="smiley.gif">

<script>

document.getElementById("image").src="landscape.jpg";

</script>

</body>

</html>

2.改变HTML元素的样式(CSS)

Document.getElementById(id).style.property=new
style;

<p
id="p2">Hello World!</p>

<script>

document.getElementById("p2").style.color="blue";

</script>

<h1
id="id1">My Heading 1<h/1>

<button
type="button"
onclick="document.getElementById('id1').style.color='red'">

</button>

3.对HTML DOM 事件作出反应

当用户点击鼠标

当网页已加载时

当图像已加载时

当鼠标移动到元素上时

当输入字段被改变时

当提交HTML表单时

当用户触发按键时

1.HTML事件属性

<button
onclick="displayDate()">点击这里</button>

2.使用javascript 向HTML DOM来分配事件(向button元素分配onclick事件)

<script>

document.getElementById("myBtn").onclick=function()

{

displayDate();

}

3.onload和onunload事件

onload和onunload事件会在用户进入或离开页面时被触发。

onload事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确的版本。

onload和onunload事件可用于处理cookie。

<body onload="checkCookies()">

4.onchange事件

当用户改变输入字段的内容时,会调用upperCase()函数。

<input type="text" id="fname"
onchange="upperCase()">

5.onmouseover和onmouseout事件

用户鼠标移至html元素上方或移除元素时触发函数

6.onmousedown、onmouseup以及onclick事件

点击鼠标按钮:onmousedown

释放鼠标按钮:onmouseup

完成鼠标点击时;onclick

4.添加删除HTML元素

创建新的HTML元素,然后向一个已存在的元素追加该元素

<div id="div1">

<p id="p1">这是一个段落</p>

<p id="p2">这是另一个段落</p>

</div>

<script>

var para=document.createElement("p");

//创建新的<p>元素

var node=document.createTextNode("这是新段落");

//创建文本节点

para.appendChild(node);

//向P元素追加文本节点

var element=document.getElementById("div1");

//找到一个已有的元素

element.appendChild(para);

//向这个已有的元素追加新元素

</script>

删除已有的元素

<div id="div1">

<p id="p1">这是一个段落</p>

<p id="p2">这是另一个段落</p>

</div>

<script>

var parent=document.getElementById("div1");

var child=document.getElementById("p1");

parent.removeChild(child);

</script>

5.JavaScript对象

内建对象:string Date Array.

访问对象属性:objectName.porpertyName

创建新对象:1.定义并创建对象的实例。2.使用函数来定义对象,然后创建新的对象实例。

person = new Object();

person.firstname="bill";

person.lastname="Gates";

person.age=56;

person.eyecolor="blue";

person={firstname:"John",lastname:"Doe",age:50,eyecolot:"blue"};

对象构造器

function
person(firstname,lastname,age,eyecolor)

{

this.firstname=firstname;

this.lastname=lastname;

this.age=age;

this.eyecolor=eyecolor;

}

实例化对象

var myFountion=new
person("bill","gates",56,"blue");

var
myMother=new person("steve","Jobs",48,"greeen");

person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

x=person.firstname;

对象添加方法

function
person(firstname,lastname,age,eyecolor)

{

this.firstname=firstname;

this.lastname=lastname;

this.age=age;

this.eyecolor=eyecolor;

}

this.changeName=changeName;

funtion
changeName(name)

{

this.lastname=name;

}

myMother.changeName("Ballmer");

循环遍历对象的属性

var
person={fname:"Bill",lname:"Gates",age:56};

for (x in
person)
  {
  txt=txt + person[x];
  }

1.JavaScript Number对象

JavaScript数字可以使用也可以不使用小数点来书写,支持指数表达。

所有JavaScript数字均为64位。数字精度整数为15位。小数的最大位数是17。

十六进制和八进制数。

var y=0377;
var z=0xFF;

属性和方法

MAX VALUE 可表示的最大的数

MIN VALUE 克表示最小的数

NEGATIVE INFINITIVE  负无穷大 溢出时返回该值

POSITIVE INFINITIVE 正无穷大,溢出时返回该值

NAN 非数字值

prototype 使有能力向对象添加属性和方法

constructor 返回创建此对象的Number函数的引用

方法

toString()把数字转换成字符串,使用指定的基数把对象的值

toLocalString() 把数字转换成字符串,使用本地数字格式顺序

toExponential()转换成位指数计数法

toFixed()把数字转换成字符串,结果的小数点后有指定位数的数字

toPrecision()把数字格式化为指定的长度

valueOf()返回一个Number对象的基本数字值

2.字符串对象http://www.w3school.com.cn/jsref/jsref_obj_string.asp

2.1计算字符串的长度:Var s=“巴拉巴拉”
s.length();

2.1为字符串添加样式:

s.big();大字体。

s.small();小字体。

s.bold();加粗。

s.italics(); 倾斜。

s.blink();闪烁。

s.fixed();

s.striked();删除

s.fontcolor("Red");颜色

s.fontsize(16);字号

2.3indexOf()方法

定位字符串中某一个指定的字符首次出现的位置。

match()方法

如何使用match()来查找字符串中特定的字符,兵器如果找到的话,则返回这个字符。

replace()

使用replace()方法在字符串中用某些字符替换另一些字符。

str.replace(/Microsoft/,"W3School")

3.Date对象参考手册http://www.w3school.com.cn/jsref/jsref_obj_date.asp

Date();返回当日的日期和时间。

getTime();返回从1970年1月1日至今的毫秒数

setfullYear();设置具体的日期

toUTCstring();将当日的日期转换为字符串。

getDate();使用方法和数字来显示星期,不仅仅是数字。获得星期中的第几天。

获得钟表:

var
today=new Date()

var
h=today.getHours()

var
m=today.getMinutes()

var
s=today.getSeconds()

m=checkTime(m)

s=checkTime(s)

4.数组对象http://www.w3school.com.cn/jsref/jsref_obj_array.asp

创建数组

var
mycars = new Array()

mycars[0]
= "Saab"

mycars[1]
= "Volvo"

mycars[2]
= "BMW"

for in声明

For(x in mycars)

{

document.write(mycars[x]+"<br/>")

}

合并两个数组

<script type="text/javascript">

var arr = new Array(3)

arr[0] = "George"

arr[1]="John"

arr[2]="Thomas"

var arr2 = new Array(3)

arr2[0] = "James"

arr2[1]="Adrew"

arrr[2]="Martin"

document.write(arr.concat(arr2))

</script>

用数组的元素组成字符串

var arr =
new Array(3)

arr[0] = "George"

arr[1] = "John"

arr[2] = "Thomas"

document.write(arr.join());

document.write("<br/>");

document.write(arr.join("."));

文字数组 sort

var
arr = new Array(6)

arr[0]
= "George"

arr[1]
= "John"

arr[2]
= "Thomas"

arr[3]
= "James"

arr[4]
= "Adrew"

arr[5]
= "Martin"

document.write(arr + "<br/>")

document.write(arr.sort())

数字数组 sort

<script type="text/javascript">

function sortNumber(a,b)

{

return a - b;

}

var arr = new Array(6)

arr[0]="1"

arr[1]="50"

arr[2] =
"10"

arr[3] =
"10"

arr[4] =
"10"

arr[5] =
"10"

5.Boolean 对象

用于非逻辑值转换为逻辑值(true和false)

创建逻辑值为false的对象:

var  myBoolean = new
Boolean();

=new Boolean(0);

=new Boolean(null);

=new Boolean("");

=new Boolean(false);

=new  Boolean(NaN):

创建逻辑值为true的对象:

var
myBoolean=new Boolean(1);
var myBoolean=new Boolean(true);
var myBoolean=new Boolean("true");
var myBoolean=new Boolean("false");
var myBoolean=new Boolean("Bill Gates");

6.Math对象

document.write(Math.round(4.7))

document.write(Math.random())

document.write(Math.floor(Math.random()*11))

7.JavaScript RegExp对象

用于规定在文本中检索的内容

通过new关键字定义RegExp对象。

var patt1 = new RegExp("e");

RegExp对象的方法:

test();检索字符串中的指定值。

exec();检索字符串中的指定值,返回值是被找到的值。如果没有发现匹配,返回null。

compile();用于改变RegExp。既可以改变检索模式,也尅添加或删除第二个参数。

// 搜索模式由e变为d。

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"));

8.windows浏览器对象

window对象,表示浏览器窗口;

所有javascript全局对象,函数以及变量均称为window对象的成员。

全局变量是window对象的属性;

全局函数是window对象的方法;

HTML DOM的document也是window对象的属性之一。

8.1window尺寸(窗口尺寸不包括工具栏和滚动条)

window.innerHeight:浏览器窗口的内部高度。

window.innerWidth :浏览器窗口内部宽度。

window.open() 打开窗口

window.close() 关闭窗口

window.moveTo() 移动当前窗口

window.resizeTo() 调整当前窗口大小

9.window.screen对象包含有关用户的屏幕信息。

sceeen.availWidth 可用的屏幕宽度(以像素计,减去界面特性,比如窗口任务栏)

screen.vaaiWidth 可用的屏幕高度

10.Window.Location 对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面

location.hostname 返回web主机的域名

location。pathname返回当前页面的路径和文件名

location.port返回web主机的端口(80,443)

location。protocol返回所使用的web协议(http://或https://)

location.href 属性返回当前页面的整个URl。

Location.pathname属性返回URL的路径名

Window.Location Assign location.assign()方法加载新的文档。

10.window.History

window.history 对象在编写时可不使用window这个前缀。

history.back()与在浏览器点击后腿按钮相同。

history.forward() 与在浏览器中点击按钮向前相同。

11.window.navigator(包含有关访问者浏览器的信息)

window.navigator对象在编写时可不使用window这个前缀。

<div
id="example"></div>

<script>

txt
= "<p>Browser CodeName: " + navigator.appCodeName +
"</p>";
txt+= "<p>Browser Name: " + navigator.appName +
"</p>";
txt+= "<p>Browser Version: " + navigator.appVersion +
"</p>";
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled +
"</p>";
txt+= "<p>Platform: " + navigator.platform +
"</p>";
txt+= "<p>User-agent header: " + navigator.userAgent +
"</p>";
txt+= "<p>User-agent language: " + navigator.systemLanguage +
"</p>";

document.getElementById("example").innerHTML=txt;

</script>

12.JavaScript信息框

三种消息框:警告框、确认框、提示框。

警告框:alert("文本");

确认框:confirm(“文本”);

提示框:prompt(“文本”,“默认值”);

13.JavaScript计时事件Timming

通过计时事件,做到在一个设定的时间间隔之后执行代码,

计时事件方法:

setTimeout()  未来的某时执行的代码

clearTimeout()取消setTimeout()

var t = setTimeout("javascript语句",毫秒)

clearTimeout(t);

14.Cookies

是存储在访问者计算机中的变量,每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie。可以使用JavaScript来创建和获得cookie。

名字cookie,密码cookie,日期cookie。

<html>
<head>
<script type="text/javascript">
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name
+ "=")
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1

   
c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1)
c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    }
  }
return ""
}

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())
}

function
checkCookie()
{
username=getCookie('username')
if (username!=null && username!="")
  {alert('Welcome again
'+username+'!')}
else
  {
  username=prompt('Please enter your
name:',"")
  if (username!=null &&
username!="")
    {
   
setCookie('username',username,365)
    }
  }
}
</script>
</head>

<body
onLoad="checkCookie()">
</body>