欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

javascript學(xué)習(xí)筆記,javascript總結(jié)

JavaScript學(xué)習(xí)筆記之?dāng)?shù)組基本操作示例

本文實(shí)例講述了JavaScript學(xué)習(xí)筆記之?dāng)?shù)組基本操作。分享給大家供大家參考,具體如下:

公司主營業(yè)務(wù):網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出碑林免費(fèi)做網(wǎng)站回饋大家。

一、數(shù)組定義

1、定義

vara=[1,2,3]

vara=newArray(1,2,3);

2、長度

返回長度

script

vara=[1,2,3,4,5,6];

alert(a.length);

/script

設(shè)置長度

script

vara=[1,2,3,4,5,6];

a.length=2;

alert(a);

/script

二、數(shù)組連接

script

vara=[1,2,3];

varb=[4,5,6];

alert(a.concat(b));

alert(b.concat(a));

/script

三、數(shù)組排序

sort()函數(shù)

默認(rèn)情況是把數(shù)組元素按字符串排序

例子

01

script

vararr=['float','width','alpha','zoom','left'];

arr.sort();

alert(arr);

/script

例子02

vararr=[12,8,99,19,112];

arr.sort();

alert(arr);

例子03

sort()函數(shù)的改進(jìn)

vararr=[12,8,99,19,112];

arr.sort(function(n1,n2){

returnn1-n2;

});

alert(arr);

四、數(shù)組連接

1、兩個(gè)數(shù)組間的連接:contact()

script

vara=[1,2,3];

varb=[4,5,6];

alert(a.concat(b));

alert(b.concat(a));

/script

2、數(shù)組元素間的連接:join()

script

vararr=[1,2,3,4];

alert(arr.join('--p'));

/script

五、數(shù)組元素添加、刪除

1、數(shù)組尾部的添加、刪除

尾部添加:push(value)

例子01

script

vara=[1,2,3];

a.push(4);

alert(a);

/script

尾部刪除:pop()

例子02

script

vara=[1,2,3];

a.pop();

alert(a);

/script

2、數(shù)組頭部的添加、刪除

頭部添加

unshift(value)

例子01

script

vararr=[1,2,3];

arr.unshift(0)

alert(arr);

/script

頭部刪除:shift()

例子02

script

vararr=[1,2,3];

arr.shift();

alert(arr);

/script

3、數(shù)組------splice()

刪除數(shù)據(jù)

例子01

script

vararr=[1,2,3,4,5,6];

//splice(起點(diǎn),長度)

arr.splice(2,3);

alert(arr);

/script

插入數(shù)據(jù)

例子02

script

vararr=[1,2,3,4,5,6];

//插入數(shù)據(jù)splice(起點(diǎn),長度,元素)

arr.splice(2,0,'a','b','c');

alert(arr);

/script

替換數(shù)據(jù)

例子02

script

vararr=[1,2,3,4,5,6];

//替換數(shù)據(jù)

arr.splice(2,2,'a','b');

alert(arr);

/script

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:測試上述代碼運(yùn)行結(jié)果。

更多關(guān)于JavaScript相關(guān)內(nèi)容還可查看本站專題:《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript字符與字符串操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript排序算法總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:js數(shù)組與字符串的相互轉(zhuǎn)換方法js刪除數(shù)組元素、清空數(shù)組的簡單方法(必看)js數(shù)組循環(huán)遍歷數(shù)組內(nèi)所有元素的方法JS

array

數(shù)組詳解js數(shù)組去重的三種常用方法總結(jié)JavaScript從數(shù)組中刪除指定值元素的方法JS數(shù)組的遍歷方式for循環(huán)與for...in向JavaScript的數(shù)組中添加元素的方法小結(jié)JS刪除數(shù)組里的某個(gè)元素方法javascript

數(shù)組的定義和數(shù)組的長度Js數(shù)組的操作push,pop,shift,unshift等方法詳細(xì)介紹

javascript權(quán)威指南 學(xué)習(xí)筆記之變量作用域分享

不知道,大家對(duì)語言中變量的“聲明”與“定義”是怎么理解的,

我的理解如下:

“聲明”變量,只是僅僅聲明,而“定義”變量,指聲明了,并且賦值了。

例如:

復(fù)制代碼

代碼如下:

var

name;//只是聲明

var

num

=

11;//聲明,并且賦值,即定義了

var

password

=

"yangjiang";//聲明,并且賦值,即定義了

下面是幾點(diǎn)總結(jié):

變量的作用域:全局的和局部的。(注意:如果嘗試讀取一個(gè)未聲明的變量的值,javascript會(huì)生成一個(gè)錯(cuò)誤)

第一點(diǎn):在都使用var關(guān)鍵字修飾變量的情況下,如果給一個(gè)局部變量或函數(shù)的參數(shù)聲明的名字與某個(gè)全局變量的名字相同,

那么就有效地隱藏了這個(gè)全局變量。

例如:

復(fù)制代碼

代碼如下:

var

scope1

=

"global";//var修飾

function

checksScope(){

var

scope1

=

"local";//var修飾

document.write(scope1);

}checksScope();//local

第二點(diǎn):如果嘗試給一個(gè)未用

var

關(guān)鍵字聲明的變量,那么,隱式聲明的變量總是被創(chuàng)建為全局變量,即使

該變量只在一個(gè)函數(shù)體內(nèi)使用(只有該函數(shù)運(yùn)行了,才會(huì)發(fā)生作用),注意不支持函數(shù)嵌套的情形。

例如:

復(fù)制代碼

代碼如下:

scope2

=

"globalAAAAA";//沒有使用var修飾(js會(huì)默認(rèn)將其聲明為全局變量)

function

checkScopeA(){

scope2

=

"localAAAAA";//沒有使用var修飾(js會(huì)默認(rèn)將其聲明為全局變量)

document.write("br/"+scope2);

myscope

=

"myLocalAAAAA";//沒有使用var修飾(js會(huì)默認(rèn)將其聲明為全局變量)

document.write(","+myscope);

}

checkScopeA();//localAAAAA,myLocalAAAAA

*A

document.write("br/"+scope2);//localAAAAA

*B

document.write("br/"+myscope);//myLocalAAAAA

*C

如果將上面的例子中的

*A處的代碼注釋掉,

例如:

復(fù)制代碼

代碼如下:

scope2

=

"globalAAAAA";//沒有使用var修飾(js會(huì)默認(rèn)將其聲明為全局變量)

function

checkScopeA(){

scope2

=

"localAAAAA";//沒有使用var修飾(js會(huì)默認(rèn)將其聲明為全局變量)

document.write("br/"+scope2);

myscope

=

"myLocalAAAAA";//沒有使用var修飾(js會(huì)默認(rèn)將其聲明為全局變量)

document.write(","+myscope);

}

//checkScopeA();

*A

document.write("br/"+scope2);//globalAAAAA

*B

document.write("br/"+myscope);//發(fā)生錯(cuò)誤

*C

因?yàn)楹瘮?shù)checkScopeA沒有執(zhí)行,所以

*B處輸出為globalAAAAA;

因?yàn)楹瘮?shù)checkScopeA沒有執(zhí)行,所以變量myscope沒有聲明,如果嘗試讀取一個(gè)未聲明的變量,會(huì)發(fā)生錯(cuò)誤。

第三點(diǎn):

在javascript中,函數(shù)的定義是可以嵌套的。由于

每個(gè)函數(shù)都有它自己的局部作用域,所以有可能出現(xiàn)幾個(gè)局部作用域的嵌套層。

例如:

復(fù)制代碼

代碼如下:

var

scope3

=

"global

scope";

//定義了一個(gè)全局變量

function

checkScopeB(){

var

scope3

=

"local

scope";

//定義了一個(gè)局部變量,覆蓋了全局變量scope3

function

nested(){

var

scope3

=

"nested

scope";

//在函數(shù)的函數(shù)的內(nèi)部,定義了一個(gè)局部變量

document.write("br/"+scope3);

//nested

scope

}

nested();

}

checkScopeB();//nested

scope

第四點(diǎn):

在javascript中,沒有塊級(jí)作用域,函數(shù)中聲明的所有變量,無論是在哪里聲明的,在整個(gè)函數(shù)中它們都是有聲明的。

在javascript中,沒有塊級(jí)作用域,函數(shù)中定義的所有變量,無論是在哪里定義的,在整個(gè)函數(shù)中它們都是有定義的。

例如:

復(fù)制代碼

代碼如下:

function

test(o){//根據(jù)以上的說明:此函數(shù)中的i,j,k三個(gè)變量的作用域是相同的。

var

i

=

0;

//變量

i

在整個(gè)函數(shù)中都有定義

if(typeof

o

==

"object"){

var

j

=

;

//變量

j

在整個(gè)函數(shù)中都有定義,而不僅僅是在

if

語句塊

for(var

k=0;k10;k++){//變量

k

在整個(gè)函數(shù)中都有定義,而不僅僅是在

if

語句塊

document.write("br/k的值為:"+k);

}

document.write("br/for循環(huán)外k的值:"+k);//此時(shí)的

k

仍然被定義了,k=10

}

document.write("br/j的值:"+j);

//變量

j

被聲明了,但可能沒有被初始化

因?yàn)榭赡芡瘮?shù)中

傳入的參數(shù)

不是對(duì)象

,if語句塊不會(huì)執(zhí)行

}

下面通過兩種方式調(diào)用此函數(shù):

方式一:傳入對(duì)象

test({});//輸出結(jié)果:上例中的注釋

方式二:什么都不傳

test();//輸出結(jié)果:j的值:undefined

想不明白的是,在第二種方式中的輸出結(jié)果,為什么會(huì)是

undefined。我當(dāng)時(shí)猜的是:j的值:0

后來,這本書上面說:

由于局部變量在整個(gè)函數(shù)體內(nèi)都是有聲明(或定義)的,這就意味著在整個(gè)函數(shù)體中都隱藏了同名的全局

變量。雖然

局部變量在整個(gè)函數(shù)體內(nèi)中都是有聲明(或定義)的,但是在執(zhí)行var語句之前,它是不會(huì)被初始化的。

這樣的話,上面的方式二調(diào)用的輸出結(jié)果,就比較好解釋了,由于變量j在整個(gè)函數(shù)中都有定義,而又由于傳入函數(shù)的參數(shù)為空,所以函數(shù)體中的if語句不會(huì)執(zhí)行,從而使得j的值為undefined.(這是我參照上面書上說的那句話的理解)

下面的例子,更好的說明:

復(fù)制代碼

代碼如下:

var

sssss

=

"全局變量";

function

f(){

document.write("br/"+sssss);//輸出:undefined

而不是輸出"全局變量"

var

sssss

=

"局部變量";

document.write("br/"+sssss);//輸出:局部變量

}

Javascript學(xué)習(xí)筆記 delete運(yùn)算符

一、語法

delete后面的表達(dá)式必須給出一個(gè)屬性的引用,比如

var

o

=

{a:1};

delete

o.a;

//此處o.a是對(duì)象o的屬性a的引用

只有在with語句里才能使用單獨(dú)的屬性名

復(fù)制代碼

代碼如下:

with(o){

delete

a;

}

二、delete的返回值

delete是普通運(yùn)算符,會(huì)返回true或false。規(guī)則為:當(dāng)被delete的對(duì)象的屬性存在并且不能被刪除時(shí)

返回false,否則返回true。

這里的一個(gè)特點(diǎn)就是,對(duì)象屬性不存在時(shí)也返回true,所以返回值并非完全等同于刪除成功與否。

復(fù)制代碼

代碼如下:

var

o

=

{a:1};

delete

o.a;

//返回true

var

b

=

2;

delete

b;//返回false,ECMA規(guī)則約定:使用var和function聲明的變量不可以被delete

三、哪些情況下不允許delete

上例提到的var和function聲明的變量不可以被delete,但隱式聲明可以被刪除

復(fù)制代碼

代碼如下:

function

c(){return

12;}

delete

c;//返回false

d

=

function(){return

12;}

delete

d;//返回true

不能delete從原型鏈上繼承的屬性,但可以刪除原型鏈上的屬性

復(fù)制代碼

代碼如下:

function

Foo(){}

Foo.prototype.bar

=

42;

var

foo

=

new

Foo();

delete

foo.bar;

//

返回true,但并沒有起作用

alert(foo.bar);

//

alerts

42,

屬性是繼承的

delete

Foo.prototype.bar;

//

在原型上刪除屬性bar

alert(foo.bar);

//

alerts

"undefined",

屬性已經(jīng)不存在,無法被繼承

四、特例

復(fù)制代碼

代碼如下:

eval執(zhí)行的代碼中如有通過var和function聲明的變量,可以被delete

eval("var

a=1");

delete

a;

alert(a);

//報(bào)未定義錯(cuò)誤

如果聲明是在eval執(zhí)行代碼中的閉包內(nèi)進(jìn)行的,則變量不能被delete

eval("(function(){var

a=1;delete

a;

return

a;})()");//1

五、delete

數(shù)組元素

從數(shù)組中delete其元素并不會(huì)影響數(shù)組的長度

復(fù)制代碼

代碼如下:

var

arr

=

['yuyin','suhuan','baby'];

delete

arr[0];

alert(arr.length);//alert

3

被delete的鍵值已經(jīng)不屬于數(shù)組,但卻還是可以被訪問,其值為undefined。

復(fù)制代碼

代碼如下:

var

arr

=

['yuyin','suhuan','baby'];

delete

arr[0];

in

arr;

//

false

alert(arr[0]);//undefined

arr[0]

===

undefined;//true

對(duì)比直接將鍵值賦值undefined

復(fù)制代碼

代碼如下:

var

arr

=

['yuyin','suhuan','baby'];

arr[0]

=

undefined;

in

arr;

//

true

alert(arr[0]);//undefined

arr[0]

===

undefined;//true

可以看出delete

操作只是將鍵值這個(gè)屬性從數(shù)組中刪除了,數(shù)組本身也是對(duì)象,這個(gè)情況好理解的。如果需要保留鍵值,可以用undefined賦值。

Javascript Object 對(duì)象學(xué)習(xí)筆記

構(gòu)造函數(shù)

new

Object()

new

Object(value)

參數(shù)

value

可選的參數(shù),聲明了要轉(zhuǎn)換成Number對(duì)象、Boolean對(duì)象或String對(duì)象的原始值(即數(shù)字、布爾值或字符串)。JavaScript

1.1之前的版本和ECMAScript

Vl不支持該對(duì)象。

返回值

如果沒有給構(gòu)造函數(shù)傳遞value參數(shù),那么它將返回一個(gè)

新創(chuàng)建的Object實(shí)例。如果指定了原始的value參數(shù),構(gòu)造函數(shù)將創(chuàng)建并返回原始值的包裝對(duì)象,即Number對(duì)象、Boolean對(duì)象或

String對(duì)象。當(dāng)不使用new運(yùn)算符,將Object()構(gòu)造函數(shù)作為函數(shù)調(diào)用時(shí),它的行為與使用new運(yùn)算符時(shí)一樣。

屬性

constructor

對(duì)一個(gè)JavaScript函數(shù)的引用,該函數(shù)是對(duì)象的構(gòu)造函數(shù)

方法

1.hasOwnProperty(

)

檢查對(duì)象是否有局部定義的(非繼承的)、具有特定名字的屬性。

復(fù)制代碼

代碼如下:

 

script

type="text/javascript"

var

o

=

new

Object();

o.name="Tom";

alert(o.hasOwnProperty("name"));

//true

alert(o.hasOwnProperty("age"));

//false

/script

2.isPrototypeOf()

語法

object.isPrototypeOf(o)

參數(shù)

o

任意對(duì)象。

返回值

如果object是O的原型,則返回true。如果o不是對(duì)象,或者object不是o的原

型,則返回false。

描述

JavaScript對(duì)象繼承了原型對(duì)象的屬性。一個(gè)對(duì)象的原型是通過用于創(chuàng)建并初始化該對(duì)象的構(gòu)造函數(shù)的prototype屬性引用的。isPrototypeOf()方法提供了判斷一個(gè)對(duì)象是否是另一個(gè)對(duì)象原型的方法。該方法可以用于確定對(duì)象的

類。

示例

復(fù)制代碼

代碼如下:

var

o

=

new

Object(

);

//

創(chuàng)建一個(gè)對(duì)象

Object.prototype.isPrototypeOf(o)

//

true:

o

是一個(gè)對(duì)象

Function.prototype.isPrototypeOf(o.toString);

//

true:

toString

是一個(gè)函數(shù)

Array.prototype.isPrototypeOf([1,2,3]);

//

true:

[1,2,3]

是一個(gè)數(shù)組

//下面是執(zhí)行同樣測試的另一種方法

(o.constructor

==

Object);

//

true:

o

was

created

with

Object(

)

constructor

(o.toString.constructor

==

Function);

//

true:

o.toString

is

a

function

/原型則對(duì)象本身于原型對(duì)象。下面的調(diào)用返回true

//說明函數(shù)繼

Function.prototype和Object.prototyp屬性.

Object.prototype.isPrototypeOf(Function.prototype);

3.ProertyIsEnumerable()

語法

object.propertyIsEnumerable(propname)

參數(shù)

propname

一個(gè)字符串,包含object原型的名字。

返回值

如果object具有名為propname的非繼承屬性,而且該屬性是可枚舉的(即用for/in循環(huán)可以枚舉出它),則返回true。

描述

用for/in語句可以遍歷一個(gè)對(duì)象“可枚舉”的屬性。但并非—個(gè)對(duì)象的所有屬性都是可枚舉的,通過JavaScript代碼添加到對(duì)象的屬性是可枚舉的,而內(nèi)部對(duì)象的預(yù)定義屬性(如方法)通常是不可枚舉的。propertylsEnumerable()方法提供了區(qū)分可枚舉屬性和不可枚舉屬性的方法。但要注意,ECMAScript標(biāo)準(zhǔn)規(guī)定,propertyIsEnumerable()方法不檢測原型鏈,這意味著它只適用于對(duì)象的局部屬性,不能檢測繼承屬性的可枚舉性。

示例

復(fù)制代碼

代碼如下:

var

o

=

new

Object(

);

//

創(chuàng)建一個(gè)對(duì)象

o.x

=

3.14;

//

定義—個(gè)屬性

o.propertyIsEnumerable("x");

//

true屬性x是局部的、可枚舉的

o.propertyIsEnumerable("y");

//false:o沒有屬性y

o.propertyIsEnumerable("toString");

//false:toStrlng屬性是繼承的

Object.prototype.propertyIsEnumerable("toString");

//

false:

枚舉的

Bug

當(dāng)標(biāo)準(zhǔn)限制propertylsEnumerable()方法只能檢測非繼承屬性時(shí),明顯是錯(cuò)的。

Internet

Explorer

5.5按標(biāo)準(zhǔn)實(shí)現(xiàn)了該方法。Nestacpe

6.0實(shí)現(xiàn)的propertyIsEnumerable()方法考慮了原型鏈。雖然這種方法可取,但它與標(biāo)準(zhǔn)沖突,所以Netscape

6.1修改了它,以便與IE

5.5匹配。由于標(biāo)準(zhǔn)中有這個(gè)錯(cuò)誤,因此該方法不是那么有用。

復(fù)制代碼

代碼如下:

script

var

obj

=

new

Object();

obj.title

=

'aaa';

obj.funb

=

function(a,

b)

{

alert(a+b);

}

alert(obj.title);

obj.funb(1,2);

/script

這里一種方法

******************************

復(fù)制代碼

代碼如下:

script

language="javascript"

function

object(value,a,b){

this.title

=

value;

this.funb

=

function(){

this.a

=

a;

this.b

=

b;

alert(a+b);

}

}

var

obj

=

new

object("aaa",1,2);

alert(obj.title);

obj.funb();

//這里為對(duì)象添加新的方法

object.prototype.name

=

"123456";

alert(obj.name);

/script

這是另一種方法

網(wǎng)頁名稱:javascript學(xué)習(xí)筆記,javascript總結(jié)
文章網(wǎng)址:http://chinadenli.net/article48/dsephhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作小程序開發(fā)網(wǎng)站營銷網(wǎng)站維護(hù)面包屑導(dǎo)航App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司