杂乱无章之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开发),不规范的开发不仅 ...
随机推荐
- OpenStack的Resize和冷迁移代码解析及改进
原文:http://www.hengtianyun.com/download-show-id-79.html OpenStack的Resize(升级)功能,我们可以改变虚拟机的CPU核数.内存及磁盘大 ...
- HDU5742:It's All In The Mind(模拟+贪心 )
题意: 给出n和m,表示n个数,之后会给出m个下标xi和值yi,a[xi]=yi,n个数是不下降的,且总和>0,要使得(x1+x2)/∑(xi)最大. 分析: 尽可能使得前两个数最大,其他数尽可 ...
- POJ 3159 Candies(差分约束,最短路)
Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 20067 Accepted: 5293 Descrip ...
- C#正则表达式判断字符串是否是金钱
public static bool IsMoney(string input) { string pattern = @"^\-{0,1}[0-9]{0,}\.{0,1}[0-9]{1,} ...
- [iOS微博项目 - 1.8] - 各种尺寸图片加载 & 控件不显示研究
A. 图片的加载: [UIImage imageNamed:@"home"]; 加载png图片 一.非retina屏幕 1.3.5 inch(320 x 480) * ...
- HDU 1078 FatMouse and Cheese (记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 老鼠初始时在n*n的矩阵的(0 , 0)位置,每次可以向垂直或水平的一个方向移动1到k格,每次移 ...
- Codeforces Round #271 (Div. 2) D. Flowers (递推)
题目链接:http://codeforces.com/problemset/problem/474/D 用RW组成字符串,要求w的个数要k个连续出现,R任意,问字符串长度为[a, b]时,字符串的种类 ...
- Java NIO类库Selector机制解析(下)
五. 迷惑不解 : 为什么要自己消耗资源? 令人不解的是为什么我们的Java的New I/O要设计成这个样子?如果说老的I/O不能多路复用,如下图所示,要开N多的线程去挨个侦听每一个Channel ...
- Unity3D之Mecanim动画系统学习笔记(二):模型导入
我们要在Unity3D中使用上模型和动画,需要经过下面几个阶段的制作,下面以一个人形的模型开发为准来介绍. 模型制作 模型建模(Modelling) 我们的美术在建模时一般会制作一个称为T-Pose( ...
- CSS基础(01)
1. Css基础 1.1 CSS(层叠样式表 Multiple Styles) CSS 是 Cascading Style Sheets(层叠样式表)的简称. CSS 语言是一种标记语言,它不需要 ...