杂乱无章之javascript(一)
1.in 要求第一个(左边的)操作数必须是字符串类型或是可以转化成字符串类型的其他类型,而第二(右边的)操作数必须是数组或对象。只有第一个操作数的值是第二个操作数的属性名,才会返回true,否则返回false。对于对象而言比较的是对象的属性名,而对于数组比较的是数组的下标是否合法。
<script language="javascript">
var box={box_length:200,box_width:100};
var arr={"box_length",200,"200"};
var x="box_length";
var y=2;
if(x in box)
{
document.write("变量x包含在对象box中!");//返回true
}
else
{
document.write("变量x不包含在对象box中!");//返回false
}
if(y in box)
{
document.write("变量y包含在对象box中!");//返回false
}
else
{
document.write("变量y不包含在对象box中!");//返回true
}
if(x in arr)
{
document.write("变量x包含在数组arr中!");//返回false
}
else
{
document.write("变量x包含在数组arr中!");//返回true
}
if(y in arr)
{
document.write("变量y包含在数组arr中!");//返回true
}
else
{
document.write("变量y不包含在数组arr中!");//返回flase
}
</script>
2.with
语法:with(对象)
<语句块>
<html>
<head>
<title>with语法演示</title>
</head>
<body>
<form name="myform">
<input type="text" name="mytext1" /><br />
<input type="text" name="mytext2" /><br />
<input type="text" name="mytext3" />
</form>
<script language="javascript">
document.form[0].mytext1.value="第一个文本框";
with(document.forms[0])
{
mytext2.value="第二个文本框";
mytext3.value="第三个文本框";
}
</script>
</body>
</html>
3.函数(三种写法)
<script language="javascript">
var mySum=new Function("x","y","return x+y");//Function()可以接受一个或多个参数,Function()构造函数的最后一个参数为函数体的内容。
function mySum(x,y)
{
return x+y;
}
var mySum=function(x,y){return x+y;};
</script>
4.instanceof
用来判断对象是否属由某个构造函数定义的。要求第一个操作数是一个对象或数组的名称,而第二个操作数是对象类的名字。若第一个操作数是第二个操作数的实例,则会返回true;反之返回false。
<script language="javascript">
var myDate=new Date();
if(myDate instanceof Date)
{
document.write("myDate是Date类的实例!");//返回true
}
else
{
document.write("myDate不是Date类的实例!");//返回false
}
if(myDate instanceof Object)
{
document.write("所有类都是Object类的实例!");//返回true
}
else
{
document.write("所有类都不是Object类的实例!");//返回false
}
</script>
5.typeof
返回变量的数据类型
<script language="javascript">
var a="aldsfjkadf";
document.write(typeof(a));//输出结果是“string”
</script>
6.this this[.属性]
<html>
<head>
<title>this用法的演示</title>
<script language="javascript">
function output1(obj)
{
alert(obj.value);
}
function output2(str)
{
alert(str);
}
</script>
</head>
<body>
<input type="text" value="第1个文本框" onClick="output1(this)" />
<input type="text" value="第2个文本框" onClick="output2(this.value)" />
</body>
7.函数---获得实际传递参数的值(Arguments)
<script language="javascript">
function myFun(x,y)
{
if(arguments.length!=2)
{
var str="传递参数个数有误,共传递了"+arguments.length+"个参数!";
str+="传递的参数值分别为:<br>";
for(i=0;i<arguments.length;i++)
{
str+="第"+(i+1)+"个参数值为"+arguments[i]+"<br>";
}
return str;
}
else
{
var z=x+y;
return z;
}
}
</script>
<script language="javascript">
function Paixu()
{
var arrLength=arguments.length;
for(i=0;i<arguments.length;i++)
{
for(j=arrLength;j>i;j--)
{
if(arguments[j]<arguments[j-1])
{
temp=arguments[j];
arguments[j]=arguments[j-1];
arguments[j-1]=temp;
}
}
}
for (i=0;i<arrLength;i++)
{
document.write(arguments[i]+" ");
}
}
Paixu(12,4,8,3,6,2,0,1,25)
</script>
8.函数---获得函数定义参数的个数(length)
函数的length和arguments对象的length属性不同,arguments对象的length只能在函数内使用,而函数的length属性可以在函数外使用。
<script language="javascript">
function myCheck(parames)
{
if(parames.length!=parames.callee.length)//parames就是arguments;arguments.callee.length返回的是正在使用的函数定义参数的个数
{
return false;
}
else
{
return true;
}
}
</script>
9.call()方法 函数名.call(对象名,参数1,参数2,...)
改方法可以像调用其他对象的方法一样调用某个函数的。
<script language="javascript">
function Paixu()
{
var arrLength=arguments.length;
for(i=0;i<arguments.length;i++)
{
for(j=arrLength;j>i;j--)
{
if(arguments[j]<arguments[j-1])
{
temp=arguments[j];
arguments[j]=arguments[j-1];
arguments[j-1]=temp;
}
}
}
for (i=0;i<arrLength;i++)
{
document.write(arguments[i]+" ");
}
}
var myObject=new Object();
Paixu.call(myObject,13,3,45);
</script>
10.系统函数--求值函数eval()
该函数主要作用是将字符串指定为对象。
<script language="javascript">
function pen(color,price)
{
this.color=color;
this.price=price;
}
var pen1=new pen("红色",10);
var pen2=new pen("绿色",20);
var pen3=new pen("黑色",30);
for(i=1;i<4;i++)
{
var penx=eval("pen"+i);
document.write("笔"+i+"的颜色为"+penx.color+",价格为"+penx.price+"<br>");
}
</script>
11.系统函数--数值判断isNaN()
用来判断变量是否为数字型变量。如果该参数返回false,说明该变量为数字型变量,否则是非数字型变量。
<script language="javascript">
function mySum(x,y)
{
if(isNaN(x) || isNaN(y))
{
return "参数类型必须是数字类型!";
}
else
{
return (x+y);
}
}
document.write(mySum(1,2));
document.write(mySum(6,"a"));
</script>
12.创建有默认值的构造函数
<script language="javascript">
function pen(name,color,price)
{
this.name=name;
this.color=color;
if(price==undefined)
{
this.price=20;
}
else
{
this.price=price;
}
}
var pen1=new pen("铅笔","红色",40);
document.write(pen1.name);
document.write(pen1.color);
document.write(pen1.price);
</script>
13.创建有方法的构造函数
<script language="javascript">
function written(str)
{
document.write(str+"<br>");
}
function pen(name,color,price)
{
this.name=name;
this.color=color;
this.price=price;
this.write=write;
}
var pen1=new pen("钢笔","红色",100);
document.write(pen1.name);
document.write(pen1.color);
document.write(pen1.price);
pen1.write("钢笔字");
</script>
14.修改对象原型
<script language="javascript">
function pen(color,price)
{
this.color=color;
this.price=price;
}
pen.prototype.name="钢笔";
var mypen=new pen("红色",20);
document.write("笔的名称"+mypen.name);
pen.prototype.name="铅笔";
document.write("笔的名称"+mypen.constructor.prototype.name);
</script>
15.constructor属性:返回对象的构造函数
typeof可以判断操作数的类型,若操作数是对象则返回“object”,但它不能判断对象是什么类型的对象。Object对象中的constructor属性可以判断一个对象的类型,constructor属性引用的是对象的构造函数。
<script language="javascript">
var myObject1=new Object();
var myObject2=new Object(1.12234324);
var myObject3=new Object(false);
var myObject4=new Object("str");
if(myObject1.constructor==Object)
{
document.write("这是一个对象<br>");
}
if(myObject2.constructor==Number)
{
document.write("这是一个数字对象<br>");
}
if(myObject3.constructor==Boolean)
{
document.write("这是一个布尔对象<br>");
}
if(myObject1.constructor==String)
{
document.write("这是一个字符串对象<br>");
}
</script>
16.valueOf()方法:返回对象的原始值
valueOf()返回的是与对象相关的原始值,如果对象相关的原始值不存在,则返回对象本身。语法:object.valueOf()
<script language="javascript">
var myObject1=new Object();
myObject1.name="铅笔";
myObject1.price=20;
var myObject2=new Object(1.23453463);
var myObject3=new Object(false);
var myObject4=new Object("str");
document.write(myObject1.valueOf());//返回[object Object]
document.write(myObject2.valueOf());//返回1.23453463
document.write(myObject3.valueOf());//返回false
document.write(myObject4.valueOf());//返回str
</script>
17.日期对象
new Date();
new Date(str);
new Date(year,month,day,hours,minutes,seconds,milliseconds);
new Date(milliseconds1);//代表距离1970年1月1日0点时的毫秒数。
<script language="javascript">
var myDate1=new Date();
document.write(myDate1.toLocaleString());
var myDate2=new Date("auguest 31,2009 10:21:00");
var myDate3=new Date(2009,8,31);
var myDate4=new Date("auguest 31,2009");
var myDate5=new Date(2009,9,24,19,53,46);//2009-9-24 19:53:46
var myDate6=new Date(8000);//创建一个距离1970年1月1日午夜8000毫秒的日期
</script>
18.获得日期
date.getYear() //返回对象日期中的年份,不建议使用
date.getFullYear() //返回对象日期中的年份,建议使用,以4位数显示
date.getMonth() //返回对象日期中的月份,其值范围0--11,1月份返回0,2月份返回1 .....
date.getDate() //返回对象日期中的天数,即一个月的某一天。
date.getDay() //返回对象日期中的日期是一周中的第几天,其值范围是0--6,周日为0,周一为1......
<script language="javascript">
var myDate=new Date();
document.write(myDate.getFullYear());
</script>
19.获得时间
date.getHours() //返回对象日期中的小时部分
date.getMinutes() //返回对象日期中的分钟部分
date.getSeconds() //返回对象日期中的秒钟部分
date.getMilliseconds()//返回对象日期中的毫秒部分
date.getTime() //返回对象日期中的时间与19701月1日0时0分0秒所间隔的毫秒数
date.getTimezoneOffset()//返回对象日期中的本地时间与UTC(世界时间)之间的时差数。
以下是获取世界时间
date.getUTCHours()
date.getUTCMinutes()
date.getUTCSeconds()
date.getUTCMilliseconds()
20.创建Error对象
new Error()
new Error(message)
<script language="javascript">
function myFun(x,y)
{
var z;
try
{
if(y==0)
{
var myErr=new Error("除数不能为0!");
throw myErr;
}
z=x/y;
}
catch(ex)
{
z=ex.message;
}
return z;
}
document.write(myFun(1,0));
</script>
21.Error对象的属性
error.name:该属性为错误类型;
error.message:该属性为错误信息。
<script language="javascript">
var myString="My String";
try
{
var errString=myString.subString(2,4);//使用方法时将方法的大小写输入错误
}
catch(ex)
{
document.write("错误类型为:"+ex.name+"<br>");
document.write("错误信息为:"+ex.message);
}
</script>
22.Error对象的方法
error.toString() :该方法返回的是一个用来表示Error对象的字符串,通常为"[object Error]"。
23.定义数组
有四种定义方式
(1)new Array() 定义空数组
<script language="javascript">
var arr=new Array();
document.write("数组中的元素个数为:"+arr.length+"<br>");//返回0
arr[0]="字符串";
arr[1]=true;
arr[2]=13;
document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
</script>
(2)new Array(size) 指定数组长度定义数组
<script language="javascript">
var arr=new Array(3);
document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
document.write("数组中的元素值为:"+arr+"<br>");//返回“”
arr[0]="字符串";
arr[1]=true;
arr[2]=13;
document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
</script>
(3)new Array(element1,element2,...) 指定数组元素定义数组
<script language="javascript">
var arr=new Array("字符串",true,13);
document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
</script>
(4)直接定义数组
<script language="javascript">
var arr=["字符串",true,13]
document.write("变量arr的构造函数为:"+arr.constructor+"<br>");
document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
</script>
24.删除数组元素
<script language="javascript">
var arr=new Array("字符串",true,13);
document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,true,13”
delete arr[1];
document.write("数组中的元素个数为:"+arr.length+"<br>");//返回3
document.write("数组中的元素值为:"+arr+"<br>");//返回“字符串,,13”
</script>
25.数组元素的个数
array.length
<script language="javascript">
var myString="This is my string";
var myArr=myString.split(" ");
document.write(myArr.length);//返回4
myArr[myArr.length]="新增元素";
document.write(myArr.length);//返回5
document.write(myArr);//返回This,is,my,string,新增元素
</script>
26.toString()方法 将数组转换为字符串
27.join()方法 将数组元素连接成字符串
join()
join(str)
<script language="javascript">
var str=[1,2,3];
document.write(arr.join());//返回1,2,3
document.write(arr.join("-"));//返回1-2-3
document.write(arr.join("aaa"));//返回1aaa2aaa3
</script>
28.push()方法 在数组尾部添加元素
push(value,...)
<script language="javascript">
var arr=[1,2,3];
var arrlength=arr.push(9);//var arrlength=arr.push(4,5) //arr数组的值为[1,2,3,4,5]
document.write(arrlength+"<br>"+arr.toString());//返回4 1,2,3,9
arrlength=arr.push("a",true,111,666);
document.write(arrlength+"<br>"+arr.toString());//返回8 1,2,3,9,a,true,111,666
</script>
29.concat()方法 添加元素并生成新数组
concat(value,...)
<script language="javascript">
var oldarr=[1,2,3];
var newarr=oldarr.concat("a",true,111,666);
document.write(newarr.toString());//返回1,2,3,a,true,111,666
document.write(oldarr.toString());//返回1,2,3
</script>
30.unshift()方法 在数组头部添加元素(用法和push()方法相同)
31.pop()方法 删除并返回数组的最后一个元素
<script language="javascript">
var arr=[1,2,3];
document.write(arr.toString());//返回1,2,3
var lastarr=arr.pop();
document.write(lastarr);//返回3
document.write(arr.length);//返回2
document.write(arr.toString());//返回1,2
</script>
32.shift()方法 删除并返回数组的第一个元素(用法和pop方法相同)
33.splice()方法 删除、替换或插入数组元素
splice(start,count,value,...)
start:要删除、替换或插入数组元素的开始位置,即下标。
count:要删除、替换或插入数组元素的个数,该参数可选。
value:要插入数组元素的值,从start下标开始插入,该参数可选。
splice()方法的返回值是一个数组,删除元素时,返回的是已删除的元素;替换元素时,返回的是被替换的元素。
<script language="javascript">
var arr=[1,2,3,4,5,6,7,8,9];
document.write(arr.toString());//返回1,2,3,4,5,6,7,8,9
var arr1=arr.splice(5,1);
document.write(arr1.toString());//返回6
document.write(arr.toString());//返回1,2,3,4,5,7,8,9
var arr2=arr.splice(1,3);
document.write(arr2.toString());//返回2,3,4
document.write(arr.toString());//返回1,5,7,8,9
var arr3=arr.splice(1,3,"a","b","c","d","e");
document.write(arr3.toString());//返回5,7,8
document.write(arr.toString());//返回1,a,b,c,d,e,9
var arr4=arr.splice(1,0,true,false);
document.write(arr4.toString());//返回
document.write(arr.toString());//返回1,true,false,a,b,c,d,e,9
</script>
34.slice()方法 返回数组中的一部分
slice(start,end)
start:返回数组部分的开始处的数组下标。该值可以为负数,若为负数则表示从数组的最后1个元素开始计数位置,如-1为数组的最后1个元素,-2为数组的倒数第2个元素;
end:返回数组部分的结束处的数组下标。该值可以为负数,若为负数则表示从数组最后1个元素开始计数位置,如-1为数组的最后1个元素,-2为数组的倒数第2个元素;
slice方法返回的也是一个数组,是原数组的一个片段,即从start到end为止的所有元素,不包括end元素。
<script language="javascript">
var arr=[1,2,3,4,5,6,7,8,9];
var arr1=arr.slice(1,5);
document.write(arr.toString());//返回1,2,3,4,5,6,7,8,9
document.write(arr1.toString());//返回2,3,4,5
var arr2=arr.slice(1,-1);
document.write(arr2.toString());//返回2,3,4,5,6,7,8
var arr3=arr.slice(-5,-1);
document.write(arr3.toString());//返回5,6,7,8
var arr4=arr.slice(4);
document.write(arr4.toString());//返回5,6,7,8
</script>
35.reverse()方法 颠倒数组中的元素
<script language="javascript">
var arr=[1,2,3,4,5,6,7,8,9];
document.write(arr.toString());//返回1,2,3,4,5,6,7,8,9
arr.reverse();
document.write(arr.toString());//返回9,8,7,6,5,4,3,2,1
</script>
36.sort()方法 将数组元素排序
sort()
sort(order)
其中order参数是可选参数,用来指定使用什么方法来对数组中的元素进行排序,若省略order参数,将按字符编码的顺序排序,反之则必须指定order的参数。order参数必须是一个函数,该函数应该有两个参数(假设x和y)。在使用sort()排序时,每次比较两个元素时都会执行比较函数,并将两个元素作为参数传递个比较函数。比较函数有以下两个返回值
(1)如果返回值大于0,则交换两个元素的位置。
(2)如果返回值小于或等于0,则不进行操作。
<script language="javascript">
var arr=[39,35,11,88,55,222,77];
document.write(arr.toString());//返回39,35,11,88,55,222,77
arr.sort();
document.write(arr.toString());//返回11,222,35,39,55,77,88
//正序排序
function ascorder(x,y)
{
if(x>y)
{
return 1;
}
else
{
return -1;
}
}
//倒序排序
function descorder(x,y)
{
if(x>y)
{
return -1;
}
else
{
return 1;
}
}
arr.sort(ascorder);
document.write(arr.toString());//返回11,35,39,55,77,88,222
arr.sort(descorder);
document.write(arr.toString());//返回222,88,77,55,39,35,11
</script>
杂乱无章之javascript(一)的更多相关文章
- 杂乱无章之javascript(二)
1.浏览器与事件事件通常是由浏览器所产生,不同的浏览器会产生的事件也有所不同,即使同一浏览器不同版本所产生的事件也有不同.以下为HTML4.01中的事件 2.error事件:它可以调用一个错误处理函数 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- JavaScript 总结几个提高性能知识点
前段时间花时间看了大半的<High Performance JavaScript>这本书啊,然后就开始忙项目了,庆幸最忙的一周已经熬过去了.由于空不出时间,这个月写的学习笔记也不多,忙完最 ...
- 面向对象的Javascript(5):继承
在小项目中对于JavaScript使用,只要写几个function就行了.但在大型项目中,尤其是在开发追求 良好的用户体验的网站中,如SNS,就会 用到大量的JavaScrpt,有时JavaScrip ...
- 面向对象的JavaScript(3):私有成员和公开成员
在小项目中对于JavaScript使用,只要写几个function就行了.但在大型项目中,尤其是在开发追求 良好的用户体验的网站中,如SNS,就会 用到大量的JavaScrpt,有时JavaScrip ...
- 面向对象的Javascript(4):重载
在小项目中对于JavaScript使用,只要写几个function就行了.但在大型项目中,尤其是在开发追求 良好的用户体验的网站中,如SNS,就会 用到大量的JavaScrpt,有时JavaScrip ...
- 面向对象的JavaScript(2):类
在小项目中对于JavaScript使用,只要写几个function就行了.但在大型项目中,尤其是在开发追求良好的用户体验的网站中,如SNS,就会 用到大量的JavaScrpt,有时JavaScript ...
- 面向对象的JavaScript(一)命名空间
在小项目中对于JavaScript使用,只要写几个function就行了.但在大型项目中,尤其是在开发追求良好的用户体验的网站中,如SNS,就会用到大量的JavaScrpt,有时JavaScript的 ...
- JavaScript开发规范要求
http://www.cnblogs.com/webflash/archive/2010/06/11/1756255.html 作为一名开发人员(WEB前端JavaScript开发),不规范的开发不仅 ...
随机推荐
- 恒天云技术分享系列5 – 虚拟化平台性能对比(KVM & VMware)
恒天云技术分享系列:http://www.hengtianyun.com/download-show-id-14.html 概述 本性能测试报告将详细陈述各虚拟化平台基准性能测试的主要结论和详细结果. ...
- java集合框架1
1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). 当我们把一个对象放入集合中后,系统会把所有集合元素都当成O ...
- Java集合排序(看完秒懂)
比如将一个List<Student>排序,则有两种方式: 1:Student实现Comparable接口: 2:给排序方法传递一个Comparator参数: 请看下面的举例: Studen ...
- Merge Cells for DataGrid 合并单元格
只适合不分页的固定行列的表格 <script type="text/javascript"> function onLoadSuccess(data){ var mer ...
- 软件工程——PairProject
结对编程组员: 马辰 11061178 柴泽华 11061153 1) 照至少一张照片, 展现两人在一起合作编程的情况. 结对编程的优点 1)在编程过程中,任何一段代码都不断地复审,同 ...
- Java设计模式系列之观察者模式
观察者模式 Observer的定义 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象. 这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己. 第一 ...
- Android实例-读取设备联系人(XE8+小米2)
相关资料: http://www.colabug.com/thread-1071065-1-1.html 结果: 1.将权限打开Read contacts设置为True,不然报图一的错误. 2.搜索空 ...
- FIREDAC调用中间件远程方法查询数据示例
服务端使用FDQUERY查询数据并返回TDATASET: function TServerMethods1.GetData(var sql: string): tdataset;begin qry.C ...
- URAL 2066 Simple Expression (水题,暴力)
题意:给定三个数,让你放上+-*三种符号,使得他们的值最小. 析:没什么好说的,全算一下就好.肯定用不到加,因为是非负数. 代码如下: #pragma comment(linker, "/S ...
- UVaLive 6625 Diagrams & Tableaux (状压DP 或者 DFS暴力)
题意:给一个的格子图,有 n 行单元格,每行有a[i]个格子,要求往格子中填1~m的数字,要求每个数字大于等于左边的数字,大于上边的数字,问有多少种填充方法. 析:感觉像个DP,但是不会啊...就想暴 ...