javascript之js150

来源:互联网 发布:windows管道通信 编辑:程序博客网 时间:2024/05/01 07:59
javascript:html,xml,ajax.
<script type="text/javascript">
doucment.write("<h2>Hello,JavaScriptWorld!</h2>");
alert("hello world!!!");
</script>
调试工具:Firefox Firebug在该浏览器下测试完成后,才在IE下面测试。




if else   switch for
for(var i=0;i<10;i++){
document.write(i+"<br/>");
}
while(true){
alert("关不上的窗口");
}
do{
i++;
}while(i<3);
<script type="text/javascript">
var num=window.prompt("请输入XXX的成绩!!");//输入数据
num*=1;//window.prompt方法始终只返回字符串,用这样的方法将其转换成数字
if(!isNaN(num)&&num){
alert("您输入的是一个数字");
}
else
alert("您输入的不是一个数字");
</script>


变量,小学生数学与简单的交互
弱类型
var num;//使用var声明
var a="hello";
var a=123;
var b1=true;
var b2=false;
变量的名称是严格区分大小写的。
Undefined值没有定义。var a;
alert(b);not defined
var s1="hello";
var s2="world";
alert(s1+s2);
NaN:not a number
alert(234*"23");
alert(234*"aaa");
alert(123+"123");//字符串不总是能转换成数字,但数字总是能转换成字符串
alert(1+2+"3");
alert(1+2+"3"+4+5);
alert("a"<"A");
alert(!!3);//连用两个非运算符是将变量值转换成布尔值的快速方法
var a=prompt("请输入一个值","默认值");
alert(typeof a);
alert(NaN==NaN);NaN和自身是不相等的
isNaN(a)方法








函数与内置对象
function funcName(a,b,c){


}
//计算三角形面积
function calcArea(wide,high){
return wide*high/2;
}
var w=window.prompt("请输入三角形的宽:");
var h=window.prompt("请输入三角形的长:");
document.write(calcArea(w,h));
函数的调用不一定在函数的定义之后,在任何地方都可以调用,也可以在函数定义之前调用。
内置对象Math与Date
Math.PI;//3.1415926
Math.pow(10,3);//输出10的3次方
Math.abs(-12);//绝对值
var num=23.24;
Math.ceil(num);大于等于num的最小整数
Math.floor(num);小于等于num的最大整数
Math.round(num);与num最接近的整数
Math.random();返回介于0和1之间的随机数。
Math.max(2,3,4);
Math.min(2,3,1);




var d=new Date();//创建一个新的对象
alert(d);//直接输出这个对象,将会得到一个表示时间的字符串
d.getYear();
d.getFullYear();
d.getMonth();从0开始计数
d.getDate();返回今天几号
d.getDay();返回今天星期几
d.getHours();返回小时
d.getMinutes();
d.getSeconds();
d.getMilliSeconds();返回毫秒
d.getTime();返回从1970年到现在的毫秒数
我们还可以设置时间值
var d=new Date();
d.setFullYear(1990);
d.setMonth(8);
d.setDate(28);
alert(d.getDay());输出那天是星期几
//////////////////////////////////////////////
判断用户输入的日期是否有效
var year=prompt("请输入年份:","");
var month=prompt("请输入月份:","");
var date=prompt("请输入日期:","");
var d=new Date();
d.setFullYear(year);
d.setMonth(month);
d.setDate(date);
if(d.getFullYear()==year&&d.getMonth()==month&&d.getDate()==date)
alert("您输入的时间正确");
else

alert("您输入的时间不正确");

var arr=new Array();//Array和Date一样,也是一个内置对象,需要使用new运算符创建
arr[0]="数据0";
arr[1]="数据1";
arr[2]="数据2";
arr[3]="数据3";
arr[4]="数据4";
alert(arr);//将会依次输出数据,以逗号隔开
alert(arr[0]);
alert(arr[1]);
alert(arr.length);
//////
var a=new Array();
a[999]=0;
alert(a.length);//1000.数组最大下标为数组长度减一
alert(a.length-1);输出a的最后一个元素
遍历数组for循环
for(var i=0;i<arr.length;i++)
arr[i]+="changed";
alert(arr);
for(var i=0;i<arr.length&&arr[i]!=undefined;i++)


var b=new Array(0,1,2,3,4);//更方便的创建数组
var c=new Array(2);//只有一个参数时,这个参数表示数组的长度
var d=[];//var d=new Array();创建一个长度为0的数组
d=[0,1,2,3];
d.push();//push方法专门用来向数组末尾添加元素
d.push(456);
var i=d.push(123);i表示新返回的length
d.push(123,123,123,324);可以一次性添加多个元素
alert(d[d.length-1]);
//////
delete d[2];//删除一个元素,元素值为undefined,长度不变.d[2]=undefined;
//////
alert(d.join("#"));//把每个元素变成字符串,另外中间加入分隔符#.
///////性能测试
var start=date.getTime();
alert((new Date()).getTime-start);//代码运行时间
////////////////
var date=new Date();
var start=date.getTime();
for(var i=0;i<99999999;i++){
s+="ABC";
}
alert("字符串相连:"+((new Date()).getTime()-start));
start=(new Date()).getTime();
for (var i=0;i<999999;i++){
a.push("ABC");
}
s=a.join("");
alert("使用数组:"+((new Date()).getTime()-start));
使用join方法比字符串相连的性能提高了一倍
////////////////////////////////////////


对象
对象是一堆属性的集合,其实它和数组就是相通的……。
var obj=new Object();//创建一个对象
obj.property="value";//使用点语法给对象添加属性
alert(obj.property);
var person=new Object();
person.age=18;
person.weight="123kg";
person.height="120km";
person.arm=2;
person.leg=2;
var obj={};//var obj=new Object();代码更简短
var obj={
name:"cj",
age:18,
weight:123
};//对象字面量,要使用代码量更少的方法,古老的方式没有任何优势
var obj={
"姓名-全名":"CJ",
"age":18,
"weight":123
};
alert(obj["姓名-全名"]);
obj[0]=123456;
alert(obj[0]);
object没有length属性,没有push方法,没有join方法
var a=[];
a.abc=1234;
alert(a.abc);数组是对象的扩展
对象的循环
var obj={
name:"cJ",
age:18,
weight:128
};
for(var i in obj){//for in循环
alert(i);//name,age,weight
alert(obj[i]);
}
///////////////////////////////////////
string对象
var s="string";
alert(s.length);
alert(s.charAt(0));
length:返回字符串的长度
indexOf返回字符串内第一次出现子字符串的字符位置
lastIndexOf返回字符串中子字符串最后出现的位置
replace返回替换后的字符串的复制
substr返回一个从指定位置开始的指定长度的子字符串
substring返回位于string对象中指定位置的子字符串
toLowerCase
toUpperCase
split把字符串分割成字符串数组
var s="hello ,world!";
var s2=s.replace(",w""#w");
str.substr(1,2);//从下标1开始向后截取2个字符
alert(s.substring(1,3));//开始下标,结束下标
var a=["A","C","C"];
var a1=a.join(",").split(",");
alert(a1[0]);
////////////////////////////////////
document.title="ABC";
setInterval("alert('abc')",1000);//在指定的时间内运行一段代码 
setInterval(func,1000);
function func(){
alert("ABC");
document.title=new Date();
///流动的字符串


}
var s="可滚动的字符串".split("");
function func(){
s.shift();//shift方法,把数组第一个元素去掉
s.push(s[0]);
document.title=s.join("");
}

<input type="button" id="btn" value="Button">
<img src="a.jpg" onmouseover="this.src='b.jpg';">
<img id="img1" src="a.jpg" onclick="abc();">
<script type="text/javascript" src="demo.js">
var btn=document.getElementById("btn");
btn.value="按钮";
var img1=document.getElementById("img1");
img1.src="b.jpg";
img1.onmouseover=onmouseover;
img1.onclick=onclick;
function onmouseover(event){
this.src="b.jpg";
}
function onclick(){
alert("!@#");
}
/////
input{
type:button
id:btn
value:button
}
/////
alert(btn);
</script>
///////////////////////////////////////////////
如果把JAVASCRIPT代码写在页面内容没有加载之前,则访问到空。
window.onload=init;
function init(){
alert("loaded");
var btn=document.getElementById("btn");
btn.value="按钮";
}
/////////////////////////////////////////////////////
var obj=document.getElementById("img1");
{
tagName:"img",
src:"a.jpg"
id:"img1",
}
innerHTML


正则表达式
var re=new RegExp("abc");//RegExp是一个对象,和Array一样
alert(re.test("abc"));
re=new RegExp("模式字符串","标志");
re=new RegExp("abc","i");i表示忽略大小写
var re=/abc/i;//字面量方式,更为简单,/模式字符串/标志
re=/^he/i;//^代表字符开始位置,he必须出现在字符串开始
alert(re.test("he is lonely!!"));
等同于:
alert(s.indexOf("he")===0);
re=/\s/;//  /s匹配任何空白字符,包括空格制表符
re=/[a-zA-Z]/;[a-z]表示一个范围,匹配任意一个英文字母
alert(re.test("ABC"));
re=/[0-9]/;
\w字母,\d数字
re=/\w\d/;re=/[a-z-A-z0-9_][0-9]/;
+表示字符至少要出现一次
*表示出现0次或多次
var re=/^[a-z]+\s+\d+$/i;
alert(re.test("a 1"));
//////////////////////////////
var osVersion="Ubuntu 8";
var re=/^[a-z]+\s+\d+$/i;
alert(re.exec(osVersion));
alert("系统名称:"+/\w+/.exec(osVersion));
alert("版本号:"+/\d+/.exec(osVersion));
//其实可以一次写出来
re=/^([a-z]+)\s+(\d+)$/i;//() 分组
var a=re.exec(osVersion);
alert(a[0]);//与整个正则表达式匹配的字符串
alert(a[1]);//第一个分组
alert(a[2]);//第二个分组
alert("系统名称:"+a[1]+""版本号:“+a[2]”);
/////////////////////////////////////////////////////

var arr=new Array();//Array和Date一样,也是一个内置对象,需要使用new运算符创建
arr[0]="数据0";
arr[1]="数据1";
arr[2]="数据2";
arr[3]="数据3";
arr[4]="数据4";
alert(arr);//将会依次输出数据,以逗号隔开
alert(arr[0]);
alert(arr[1]);
alert(arr.length);
//////
var a=new Array();
a[999]=0;
alert(a.length);//1000.数组最大下标为数组长度减一
alert(a.length-1);输出a的最后一个元素
遍历数组for循环
for(var i=0;i<arr.length;i++)
arr[i]+="changed";
alert(arr);
for(var i=0;i<arr.length&&arr[i]!=undefined;i++)


var b=new Array(0,1,2,3,4);//更方便的创建数组
var c=new Array(2);//只有一个参数时,这个参数表示数组的长度
var d=[];//var d=new Array();创建一个长度为0的数组
d=[0,1,2,3];
d.push();//push方法专门用来向数组末尾添加元素
d.push(456);
var i=d.push(123);i表示新返回的length
d.push(123,123,123,324);可以一次性添加多个元素
alert(d[d.length-1]);
//////
delete d[2];//删除一个元素,元素值为undefined,长度不变.d[2]=undefined;
//////
alert(d.join("#"));//把每个元素变成字符串,另外中间加入分隔符#.
///////性能测试
var start=date.getTime();
alert((new Date()).getTime-start);//代码运行时间
////////////////
var date=new Date();
var start=date.getTime();
for(var i=0;i<99999999;i++){
s+="ABC";
}
alert("字符串相连:"+((new Date()).getTime()-start));
start=(new Date()).getTime();
for (var i=0;i<999999;i++){
a.push("ABC");
}
s=a.join("");
alert("使用数组:"+((new Date()).getTime()-start));
使用join方法比字符串相连的性能提高了一倍
////////////////////////////////////////


对象
对象是一堆属性的集合,其实它和数组就是相通的……。
var obj=new Object();//创建一个对象
obj.property="value";//使用点语法给对象添加属性
alert(obj.property);
var person=new Object();
person.age=18;
person.weight="123kg";
person.height="120km";
person.arm=2;
person.leg=2;
var obj={};//var obj=new Object();代码更简短
var obj={
name:"cj",
age:18,
weight:123
};//对象字面量,要使用代码量更少的方法,古老的方式没有任何优势
var obj={
"姓名-全名":"CJ",
"age":18,
"weight":123
};
alert(obj["姓名-全名"]);
obj[0]=123456;
alert(obj[0]);
object没有length属性,没有push方法,没有join方法
var a=[];
a.abc=1234;
alert(a.abc);数组是对象的扩展
对象的循环
var obj={
name:"cJ",
age:18,
weight:128
};
for(var i in obj){//for in循环
alert(i);//name,age,weight
alert(obj[i]);
}
///////////////////////////////////////
string对象
var s="string";
alert(s.length);
alert(s.charAt(0));
length:返回字符串的长度
indexOf返回字符串内第一次出现子字符串的字符位置
lastIndexOf返回字符串中子字符串最后出现的位置
replace返回替换后的字符串的复制
substr返回一个从指定位置开始的指定长度的子字符串
substring返回位于string对象中指定位置的子字符串
toLowerCase
toUpperCase
split把字符串分割成字符串数组
var s="hello ,world!";
var s2=s.replace(",w""#w");
str.substr(1,2);//从下标1开始向后截取2个字符
alert(s.substring(1,3));//开始下标,结束下标
var a=["A","C","C"];
var a1=a.join(",").split(",");
alert(a1[0]);
////////////////////////////////////
document.title="ABC";
setInterval("alert('abc')",1000);//在指定的时间内运行一段代码 
setInterval(func,1000);
function func(){
alert("ABC");
document.title=new Date();
///流动的字符串


}
var s="可滚动的字符串".split("");
function func(){
s.shift();//shift方法,把数组第一个元素去掉
s.push(s[0]);
document.title=s.join("");
}

<input type="button" id="btn" value="Button">
<img src="a.jpg" onmouseover="this.src='b.jpg';">
<img id="img1" src="a.jpg" onclick="abc();">
<script type="text/javascript" src="demo.js">
var btn=document.getElementById("btn");
btn.value="按钮";
var img1=document.getElementById("img1");
img1.src="b.jpg";
img1.onmouseover=onmouseover;
img1.onclick=onclick;
function onmouseover(event){
this.src="b.jpg";
}
function onclick(){
alert("!@#");
}
/////
input{
type:button
id:btn
value:button
}
/////
alert(btn);
</script>
///////////////////////////////////////////////
如果把JAVASCRIPT代码写在页面内容没有加载之前,则访问到空。
window.onload=init;
function init(){
alert("loaded");
var btn=document.getElementById("btn");
btn.value="按钮";
}
/////////////////////////////////////////////////////
var obj=document.getElementById("img1");
{
tagName:"img",
src:"a.jpg"
id:"img1",
}
innerHTML

正则表达式
var re=new RegExp("abc");//RegExp是一个对象,和Array一样
alert(re.test("abc"));
re=new RegExp("模式字符串","标志");
re=new RegExp("abc","i");i表示忽略大小写
var re=/abc/i;//字面量方式,更为简单,/模式字符串/标志
re=/^he/i;//^代表字符开始位置,he必须出现在字符串开始
alert(re.test("he is lonely!!"));
等同于:
alert(s.indexOf("he")===0);
re=/\s/;//  /s匹配任何空白字符,包括空格制表符
re=/[a-zA-Z]/;[a-z]表示一个范围,匹配任意一个英文字母
alert(re.test("ABC"));
re=/[0-9]/;
\w字母,\d数字
re=/\w\d/;re=/[a-z-A-z0-9_][0-9]/;
+表示字符至少要出现一次
*表示出现0次或多次
var re=/^[a-z]+\s+\d+$/i;
alert(re.test("a 1"));
//////////////////////////////
var osVersion="Ubuntu 8";
var re=/^[a-z]+\s+\d+$/i;
alert(re.exec(osVersion));
alert("系统名称:"+/\w+/.exec(osVersion));
alert("版本号:"+/\d+/.exec(osVersion));
//其实可以一次写出来
re=/^([a-z]+)\s+(\d+)$/i;//() 分组
var a=re.exec(osVersion);
alert(a[0]);//与整个正则表达式匹配的字符串
alert(a[1]);//第一个分组
alert(a[2]);//第二个分组
alert("系统名称:"+a[1]+""版本号:“+a[2]”);
/////////////////////////////////////////////////////


0 0
原创粉丝点击