javascript
杂乱无章之javascript(一)
1.in 要求第一個(gè)(左邊的)操作數(shù)必須是字符串類型或是可以轉(zhuǎn)化成字符串類型的其他類型,而第二(右邊的)操作數(shù)必須是數(shù)組或?qū)ο蟆V挥械谝粋€(gè)操作數(shù)的值是第二個(gè)操作數(shù)的屬性名,才會(huì)返回true,否則返回false。對(duì)于對(duì)象而言比較的是對(duì)象的屬性名,而對(duì)于數(shù)組比較的是數(shù)組的下標(biāo)是否合法。
<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包含在對(duì)象box中!");//返回true
}
else
{
?document.write("變量x不包含在對(duì)象box中!");//返回false
}
if(y in box)
{
?document.write("變量y包含在對(duì)象box中!");//返回false
}
else
{
?document.write("變量y不包含在對(duì)象box中!");//返回true
}
if(x in arr)
{
?document.write("變量x包含在數(shù)組arr中!");//返回false
}
else
{
?document.write("變量x包含在數(shù)組arr中!");//返回true
}
if(y in arr)
{
?document.write("變量y包含在數(shù)組arr中!");//返回true
}
else
{
?document.write("變量y不包含在數(shù)組arr中!");//返回flase
}
</script>
2.with???
語(yǔ)法:with(對(duì)象)
??<語(yǔ)句塊>
<html>
<head>
<title>with語(yǔ)法演示</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="第一個(gè)文本框";
?with(document.forms[0])
?{
??mytext2.value="第二個(gè)文本框";
??mytext3.value="第三個(gè)文本框";
?}
</script>
</body>
</html>
3.函數(shù)(三種寫(xiě)法)
<script language="javascript">
?var mySum=new Function("x","y","return x+y");//Function()可以接受一個(gè)或多個(gè)參數(shù),Function()構(gòu)造函數(shù)的最后一個(gè)參數(shù)為函數(shù)體的內(nèi)容。
?
?function mySum(x,y)
?{
??return x+y;
?}
?
?var mySum=function(x,y){return x+y;};
</script>
4.instanceof
用來(lái)判斷對(duì)象是否屬由某個(gè)構(gòu)造函數(shù)定義的。要求第一個(gè)操作數(shù)是一個(gè)對(duì)象或數(shù)組的名稱,而第二個(gè)操作數(shù)是對(duì)象類的名字。若第一個(gè)操作數(shù)是第二個(gè)操作數(shù)的實(shí)例,則會(huì)返回true;反之返回false。
<script language="javascript">
var myDate=new Date();
if(myDate instanceof Date)
{
?document.write("myDate是Date類的實(shí)例!");//返回true
}
else
{
?document.write("myDate不是Date類的實(shí)例!");//返回false
}
if(myDate instanceof Object)
{
?document.write("所有類都是Object類的實(shí)例!");//返回true
}
else
{
?document.write("所有類都不是Object類的實(shí)例!");//返回false
}
</script>
5.typeof
返回變量的數(shù)據(jù)類型
<script language="javascript">
var a="aldsfjkadf";
document.write(typeof(a));//輸出結(jié)果是“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個(gè)文本框" onClick="output1(this)" />
??? <input type="text" value="第2個(gè)文本框" onClick="output2(this.value)" />
</body>
7.函數(shù)---獲得實(shí)際傳遞參數(shù)的值(Arguments)
<script language="javascript">
function myFun(x,y)
{
?if(arguments.length!=2)
?{
??var str="傳遞參數(shù)個(gè)數(shù)有誤,共傳遞了"+arguments.length+"個(gè)參數(shù)!";
??str+="傳遞的參數(shù)值分別為:<br>";
??for(i=0;i<arguments.length;i++)
??{
???str+="第"+(i+1)+"個(gè)參數(shù)值為"+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.函數(shù)---獲得函數(shù)定義參數(shù)的個(gè)數(shù)(length)
函數(shù)的length和arguments對(duì)象的length屬性不同,arguments對(duì)象的length只能在函數(shù)內(nèi)使用,而函數(shù)的length屬性可以在函數(shù)外使用。
<script language="javascript">
?function myCheck(parames)
?{
??if(parames.length!=parames.callee.length)//parames就是arguments;arguments.callee.length返回的是正在使用的函數(shù)定義參數(shù)的個(gè)數(shù)
??{
???return false;
??}
??else
??{
???return true;
??}
?}
</script>
9.call()方法??? 函數(shù)名.call(對(duì)象名,參數(shù)1,參數(shù)2,...)
改方法可以像調(diào)用其他對(duì)象的方法一樣調(diào)用某個(gè)函數(shù)的。
<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.系統(tǒng)函數(shù)--求值函數(shù)eval()
該函數(shù)主要作用是將字符串指定為對(duì)象。
<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+",價(jià)格為"+penx.price+"<br>");
}
</script>
11.系統(tǒng)函數(shù)--數(shù)值判斷isNaN()
用來(lái)判斷變量是否為數(shù)字型變量。如果該參數(shù)返回false,說(shuō)明該變量為數(shù)字型變量,否則是非數(shù)字型變量。
<script language="javascript">
function mySum(x,y)
{
?if(isNaN(x) || isNaN(y))
?{
??return "參數(shù)類型必須是數(shù)字類型!";
?}
?else
?{
??return (x+y);
?}
}
document.write(mySum(1,2));
document.write(mySum(6,"a"));
</script>
12.創(chuàng)建有默認(rèn)值的構(gòu)造函數(shù)
<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.創(chuàng)建有方法的構(gòu)造函數(shù)
<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.修改對(duì)象原型
<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屬性:返回對(duì)象的構(gòu)造函數(shù)
typeof可以判斷操作數(shù)的類型,若操作數(shù)是對(duì)象則返回“object”,但它不能判斷對(duì)象是什么類型的對(duì)象。Object對(duì)象中的constructor屬性可以判斷一個(gè)對(duì)象的類型,constructor屬性引用的是對(duì)象的構(gòu)造函數(shù)。
<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("這是一個(gè)對(duì)象<br>");
}
if(myObject2.constructor==Number)
{
?document.write("這是一個(gè)數(shù)字對(duì)象<br>");
}
if(myObject3.constructor==Boolean)
{
?document.write("這是一個(gè)布爾對(duì)象<br>");
}
if(myObject1.constructor==String)
{
?document.write("這是一個(gè)字符串對(duì)象<br>");
}
</script>
16.valueOf()方法:返回對(duì)象的原始值
valueOf()返回的是與對(duì)象相關(guān)的原始值,如果對(duì)象相關(guān)的原始值不存在,則返回對(duì)象本身。語(yǔ)法: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.日期對(duì)象
new Date();
new Date(str);
new Date(year,month,day,hours,minutes,seconds,milliseconds);
new Date(milliseconds1);//代表距離1970年1月1日0點(diǎn)時(shí)的毫秒數(shù)。
<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);//創(chuàng)建一個(gè)距離1970年1月1日午夜8000毫秒的日期
</script>
18.獲得日期
date.getYear()???? ?//返回對(duì)象日期中的年份,不建議使用
date.getFullYear() ?//返回對(duì)象日期中的年份,建議使用,以4位數(shù)顯示
date.getMonth()??//返回對(duì)象日期中的月份,其值范圍0--11,1月份返回0,2月份返回1 .....
date.getDate()??//返回對(duì)象日期中的天數(shù),即一個(gè)月的某一天。
date.getDay()??//返回對(duì)象日期中的日期是一周中的第幾天,其值范圍是0--6,周日為0,周一為1......
<script language="javascript">
var myDate=new Date();
document.write(myDate.getFullYear());
</script>
19.獲得時(shí)間
date.getHours()??//返回對(duì)象日期中的小時(shí)部分
date.getMinutes()?//返回對(duì)象日期中的分鐘部分
date.getSeconds()?//返回對(duì)象日期中的秒鐘部分
date.getMilliseconds()//返回對(duì)象日期中的毫秒部分
date.getTime()??//返回對(duì)象日期中的時(shí)間與19701月1日0時(shí)0分0秒所間隔的毫秒數(shù)
date.getTimezoneOffset()//返回對(duì)象日期中的本地時(shí)間與UTC(世界時(shí)間)之間的時(shí)差數(shù)。
以下是獲取世界時(shí)間
date.getUTCHours()
date.getUTCMinutes()
date.getUTCSeconds()
date.getUTCMilliseconds()
20.創(chuàng)建Error對(duì)象
new Error()
new Error(message)
<script language="javascript">
function myFun(x,y)
{
?var z;
?try
?{
??if(y==0)
??{
???var myErr=new Error("除數(shù)不能為0!");
???throw myErr;
??}
??z=x/y;
?}
?catch(ex)
?{
??z=ex.message;
?}
?return z;
}
document.write(myFun(1,0));
</script>
21.Error對(duì)象的屬性
error.name:該屬性為錯(cuò)誤類型;
error.message:該屬性為錯(cuò)誤信息。
<script language="javascript">
var myString="My String";
try
{
?var errString=myString.subString(2,4);//使用方法時(shí)將方法的大小寫(xiě)輸入錯(cuò)誤
}
catch(ex)
{
?document.write("錯(cuò)誤類型為:"+ex.name+"<br>");
?document.write("錯(cuò)誤信息為:"+ex.message);
}
</script>
22.Error對(duì)象的方法
error.toString() :該方法返回的是一個(gè)用來(lái)表示Error對(duì)象的字符串,通常為"[object Error]"。
23.定義數(shù)組
有四種定義方式
(1)new Array()? 定義空數(shù)組
<script language="javascript">
?var arr=new Array();
?document.write("數(shù)組中的元素個(gè)數(shù)為:"+arr.length+"<br>");//返回0
?arr[0]="字符串";
?arr[1]=true;
?arr[2]=13;
?document.write("數(shù)組中的元素個(gè)數(shù)為:"+arr.length+"<br>");//返回3
?document.write("數(shù)組中的元素值為:"+arr+"<br>");//返回“字符串,true,13”
</script>
(2)new Array(size)? 指定數(shù)組長(zhǎng)度定義數(shù)組
<script language="javascript">
?var arr=new Array(3);
?document.write("數(shù)組中的元素個(gè)數(shù)為:"+arr.length+"<br>");//返回3
?document.write("數(shù)組中的元素值為:"+arr+"<br>");//返回“”
?arr[0]="字符串";
?arr[1]=true;
?arr[2]=13;
?document.write("數(shù)組中的元素個(gè)數(shù)為:"+arr.length+"<br>");//返回3
?document.write("數(shù)組中的元素值為:"+arr+"<br>");//返回“字符串,true,13”
</script>
(3)new Array(element1,element2,...)? 指定數(shù)組元素定義數(shù)組
<script language="javascript">
?var arr=new Array("字符串",true,13);
?document.write("數(shù)組中的元素個(gè)數(shù)為:"+arr.length+"<br>");//返回3
?document.write("數(shù)組中的元素值為:"+arr+"<br>");//返回“字符串,true,13”
</script>
(4)直接定義數(shù)組
<script language="javascript">
?var arr=["字符串",true,13]
?document.write("變量arr的構(gòu)造函數(shù)為:"+arr.constructor+"<br>");
?document.write("數(shù)組中的元素個(gè)數(shù)為:"+arr.length+"<br>");//返回3
?document.write("數(shù)組中的元素值為:"+arr+"<br>");//返回“字符串,true,13”
</script>
24.刪除數(shù)組元素
<script language="javascript">
?var arr=new Array("字符串",true,13);
?document.write("數(shù)組中的元素個(gè)數(shù)為:"+arr.length+"<br>");//返回3
?document.write("數(shù)組中的元素值為:"+arr+"<br>");//返回“字符串,true,13”
?delete arr[1];
?document.write("數(shù)組中的元素個(gè)數(shù)為:"+arr.length+"<br>");//返回3
?document.write("數(shù)組中的元素值為:"+arr+"<br>");//返回“字符串,,13”
</script>
25.數(shù)組元素的個(gè)數(shù)
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()方法? 將數(shù)組轉(zhuǎn)換為字符串
27.join()方法? 將數(shù)組元素連接成字符串
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()方法? 在數(shù)組尾部添加元素
push(value,...)
<script language="javascript">
?var arr=[1,2,3];
?var arrlength=arr.push(9);//var arrlength=arr.push(4,5) //arr數(shù)組的值為[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()方法? 添加元素并生成新數(shù)組
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()方法? 在數(shù)組頭部添加元素(用法和push()方法相同)
31.pop()方法? 刪除并返回?cái)?shù)組的最后一個(gè)元素
<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()方法? 刪除并返回?cái)?shù)組的第一個(gè)元素(用法和pop方法相同)
33.splice()方法? 刪除、替換或插入數(shù)組元素
splice(start,count,value,...)
start:要?jiǎng)h除、替換或插入數(shù)組元素的開(kāi)始位置,即下標(biāo)。
count:要?jiǎng)h除、替換或插入數(shù)組元素的個(gè)數(shù),該參數(shù)可選。
value:要插入數(shù)組元素的值,從start下標(biāo)開(kāi)始插入,該參數(shù)可選。
splice()方法的返回值是一個(gè)數(shù)組,刪除元素時(shí),返回的是已刪除的元素;替換元素時(shí),返回的是被替換的元素。
<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()方法? 返回?cái)?shù)組中的一部分
slice(start,end)
start:返回?cái)?shù)組部分的開(kāi)始處的數(shù)組下標(biāo)。該值可以為負(fù)數(shù),若為負(fù)數(shù)則表示從數(shù)組的最后1個(gè)元素開(kāi)始計(jì)數(shù)位置,如-1為數(shù)組的最后1個(gè)元素,-2為數(shù)組的倒數(shù)第2個(gè)元素;
end:返回?cái)?shù)組部分的結(jié)束處的數(shù)組下標(biāo)。該值可以為負(fù)數(shù),若為負(fù)數(shù)則表示從數(shù)組最后1個(gè)元素開(kāi)始計(jì)數(shù)位置,如-1為數(shù)組的最后1個(gè)元素,-2為數(shù)組的倒數(shù)第2個(gè)元素;
slice方法返回的也是一個(gè)數(shù)組,是原數(shù)組的一個(gè)片段,即從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()方法? 顛倒數(shù)組中的元素
<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()方法? 將數(shù)組元素排序
sort()
sort(order)
其中order參數(shù)是可選參數(shù),用來(lái)指定使用什么方法來(lái)對(duì)數(shù)組中的元素進(jìn)行排序,若省略order參數(shù),將按字符編碼的順序排序,反之則必須指定order的參數(shù)。order參數(shù)必須是一個(gè)函數(shù),該函數(shù)應(yīng)該有兩個(gè)參數(shù)(假設(shè)x和y)。在使用sort()排序時(shí),每次比較兩個(gè)元素時(shí)都會(huì)執(zhí)行比較函數(shù),并將兩個(gè)元素作為參數(shù)傳遞個(gè)比較函數(shù)。比較函數(shù)有以下兩個(gè)返回值
(1)如果返回值大于0,則交換兩個(gè)元素的位置。
(2)如果返回值小于或等于0,則不進(jìn)行操作。
<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>
轉(zhuǎn)載于:https://www.cnblogs.com/jassy/p/4229468.html
總結(jié)
以上是生活随笔為你收集整理的杂乱无章之javascript(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [转]高效编程之欲擒故纵
- 下一篇: [LeetCode] Same Tree