Copyright 2016 by 蔡舒啸 保持署名-非商业性使用-相同方式共享 Creative Commons BY-NC-ND 3.0
JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。
undefined
//不赋值就是undefined类型
var testUndefined1;
//undefined类型唯一的值是undefined
var testUndefined = undefined;
//null类型唯一的值是null
var testNull = null;
//undefined “继承”自 null
alert(testUndefined==testNull);//true
//boolean
var testBoobean = true;
/*
数据类型 转化成true的值 转化成false的值
Boolean ture false
String 所有的非空字符串 ""(空字符串)
Number 任何非零数字(包括无穷大) 0和NaN
Object 任何对象 不存在
Undefined 不存在 undefined
*/
//string
var testString = "Hello";
//number
//所有 JavaScript 数字均为 64 位
// 整数(不使用小数点或指数计数法)最多为 15 位。
// 小数的最大位数是 17,但是浮点运算并不总是 100% 准确 var x=0.2+0.1;//!=0.3
010==8
0x10==16
1.0
.1//not recommended
2.3e7
/* 算数
round(double... x) //支持小数和负数的四舍五入
random(double... x) //0 到 1 之间的随机数。
max(double... x)。
min(double... x)
*/
//var testNull = null;
var testObject = {a:1};
/*
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";
*/
//function
//只要函数运行完毕,本地变量就会被删除。
//函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。
//在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
var testFunction = function(){return;};
/*
例外:
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
这条语句:
carname="Volvo";
将声明一个全局变量 carname,即使它在函数内执行。
*/
//array
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 cars=[1,"s"];
for(i=0;itypeof cars[i]);
}
//number string
typeof 变量名
返回字符串
仅对undefined有效
alert(testUndefined == undefined)
通用:
alert(typeof testUndefined == “undefined”)
Boolean(value)
Number(value)
String(value)
显示十分秒
<html>
<head>
<script type="text/javascript">
function startTime()
{
var today=new Date()
var h=today.getHours()
var m=today.getMinutes()
var s=today.getSeconds()
// add a zero in front of numbers<10
m=checkTime(m)
s=checkTime(s)
document.getElementById('txt').innerHTML=h+":"+m+":"+s
/*setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。*/
t=setTimeout('startTime()',500)//递归调用 HTML DOM setTimeout() 方法刷新时间
}
function checkTime(i)
{
if (i<10)
{i="0" + i}
return i
}
script>
head>
<body onload="startTime()">
<div id="txt">div>
body>
html>
if, for, while, switch 都离不了比较运算符和逻辑运算符, js中的比较运算符和逻辑运算符和 Java 中的很像
==
!=
===
全等(值和类型)
x=5;
x===5 //为 true;
x==="5" //为 false
&&
||
!
variablename=(condition)?value1:value2
//if
if (age<18) document.write("Too young");
if() {
//
}else if() {
//
}
else {
//
}
//for
cars=["BMW","Volvo","Saab","Ford"];
for (var i=0;i"
");
}
//while
while (i<5)
{
x=x + "The number is " + i + "
";
i++;
}
//do-while
do
{
x=x + "The number is " + i + "
";
i++;
}
while (i<5);
//switch
var day=new Date().getDay();
switch (day)
{
case 6:
x="Today it's Saturday";
break;
case 0:
x="Today it's Sunday";
break;
default:
x="Looking forward to the Weekend";
}
"foo".length //字符串的长度
/*
anchor() 创建 HTML 锚。
big() 用大号字体显示字符串。
blink() 显示闪动字符串。
bold() 使用粗体显示字符串。
charAt() 返回在指定位置的字符。
charCodeAt() 返回在指定的位置的字符的 Unicode 编码。
concat() 连接字符串。
fixed() 以打字机文本显示字符串。
fontcolor() 使用指定的颜色来显示字符串。
fontsize() 使用指定的尺寸来显示字符串。
fromCharCode() 从字符编码创建一个字符串。
indexOf() 检索字符串。
italics() 使用斜体显示字符串。
lastIndexOf() 从后向前搜索字符串。
link() 将字符串显示为链接。
localeCompare() 用本地特定的顺序来比较两个字符串。
match() 找到一个或多个正则表达式的匹配。
replace() 替换与正则表达式匹配的子串。
search() 检索与正则表达式相匹配的值。
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分。
small() 使用小字号来显示字符串。
split() 把字符串分割为字符串数组。
strike() 使用删除线来显示字符串。
sub() 把字符串显示为下标。
substr() 从起始索引号提取字符串中指定数目的字符。
substring() 提取字符串中两个指定的索引号之间的字符。
sup() 把字符串显示为上标。
toLocaleLowerCase() 把字符串转换为小写。
toLocaleUpperCase() 把字符串转换为大写。
toLowerCase() 把字符串转换为小写。
toUpperCase() 把字符串转换为大写。
toSource() 代表对象的源代码。
toString() 返回字符串。
valueOf() 返回某个字符串对象的原始值。
*/
其中,支持正则表达式的 String 对象的方法
search() 检索与正则表达式相匹配的值
match() 找到一个或多个正则表达式的匹配
replace() 替换与正则表达式匹配的子串
split() 把字符串分割为字符串数组
以下代码定义了名为 patt1 的 RegExp 对象,其检索模式模式是 - 字符串 “e”:
var patt1=new RegExp("e");
RegExp 对象有 3 个方法:test()、exec() 以及 compile()。
test() 方法检索字符串中的指定值。返回值是 true 或 false。类似java Regex类的find()方法
exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。类似java Regex类的group() 方法
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
//增加模式d
patt1.compile("d");
document.write(patt1.test("The best things in life are free"));
<html>
<head>
<script>
var txt="";
function message()
{
try
{
adddlert("Welcome guest!");
}
catch(err)
{
txt="There was an error on this page.\n\n";
txt+="Error description: " + err.message + "\n\n";
txt+="Click OK to continue.\n\n";
alert(txt);
}
}
script>
head>
<body>
<input type="button" value="View message" onclick="message()">
body>
html>
throw exception
异常可以是 JavaScript 字符串、数字、逻辑值或对象。
<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>
本例查找 id=”main” 的元素,然后查找 “main” 中的所有 元素:
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");
本例改变了 元素的 src 属性:
<html>
<body>
<img id="image" src="smiley.gif">
<script>
document.getElementById("image").src="landscape.jpg";
script>
body>
html>
最权威的DOMcss样式文档http://www.w3school.com.cn/jsref/dom_obj_style.asp
下面的例子会改变
元素的样式:
<html>
<body>
<p id="p1">Hello World!p>
<p id="p2">Hello World!p>
<script>
document.getElementById("p2").style.color="blue";
document.getElementById("p2").style.fontFamily="Arial";
document.getElementById("p2").style.fontSize="larger";
script>
<p>上面的段落已被一段脚本修改。p>
body>
html>
<html>
<body>
<p id="p1">这是一段文本。p>
<input type="button" value="隐藏文本" onclick="document.getElementById('p1').style.visibility='hidden'" />
<input type="button" value="显示文本" onclick="document.getElementById('p1').style.visibility='visible'" />
body>
html>
HTML DOM 允许您通过使用 JavaScript 来向 HTML 元素分配事件:
实例
向 button 元素分配 onclick 事件: