杂乱无章之javascript(一)

1.in 要求第一个(左边的)操作数必须是字符串类型或是可以转化成字符串类型的其他类型,而第二(右边的)操作数必须是数组或对象。只有第一个操作数的值是第二个操作数的属性名,才会返回true,否则返回false。对于对象而言比较的是对象的属性名,而对于数组比较的是数组的下标是否合法。
<script language="javascript">
var box={box_length:200,box_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>

原文地址:https://www.cnblogs.com/jassy/p/4229468.html