Javascript入門(mén)學(xué)習(xí)第二篇 js類(lèi)型第2/2頁(yè)
更新時(shí)間:2008年07月06日 09:58:09 作者:
上篇文章講了js中的一些概念(詞法結(jié)構(gòu)) 和 數(shù)據(jù)類(lèi)型(部分)。
這章我們 繼續(xù).然后了解下js中操作數(shù)據(jù) 和 函數(shù)的 作用域。
4,垃圾收集機(jī)制:
Js中自動(dòng)釋放內(nèi)存。
比如:
var s =”heelo”;
var b = s.toUpperCase();
s=b; //運(yùn)行到這里后,js會(huì)自動(dòng)檢測(cè)不再使用某個(gè)對(duì)象,因?yàn)閟=b了,所以js會(huì)自動(dòng)釋放字符串“heelo”所占的存儲(chǔ)空間。即我們不能再獲取原始的 “heelo” 值;.
5 , javascript變量:
Js是非類(lèi)型的。它的變量可以放任何類(lèi)型的值。
變量的聲明:
var a ;
var b ;
或者
var a , b ;
或者
var a=0 , b=1 ;
重復(fù)聲明 是合法的,
如果 遺漏聲明 , js會(huì)隱式的聲明該變量。當(dāng)然隱式聲明的變量總是全局變量。
6 , 變量的作用域:
Js有2種:全局和局部。
從名字的定義可以知道,全局變量的作用域是全局性的。
在js代碼中,處處都有定義。
局部變量的作用域是局部的。
在函數(shù)體內(nèi)定義。
同名的局部變量的優(yōu)先級(jí)比同名的全局變量高,下面的例子說(shuō)明了這點(diǎn):
var a ="abc"; //全局變量
function check(){
var a = "efg"; //同名的局部變量
document.write(a);
}
check(); // 輸出 efg
看一個(gè)比較經(jīng)典的例子:
var scope = "global";
function f(){
alert(scope); //輸出 undefined
var scope = "local";
alert(scope); //輸出 local
}
f();
為什么第一個(gè)會(huì)輸出undefined 呢?
因?yàn)閖s規(guī)定當(dāng) 局部變量和全局變量的名稱(chēng)相同的時(shí)候,函數(shù)體內(nèi)的同名全局變量會(huì)被隱藏。
那么剛才例子 實(shí)際 等價(jià)于:
function f(){
var scope;
alert(scope);
scope = "local";
alert(scope);
}
f();
OK,如果你看懂了這個(gè)例子,說(shuō)明你對(duì)局部和全局的一些區(qū)別稍微了解了。
7 , 變量的作用域:
從里到外:
詞法作用域 作用域鏈 變量查找
var x = 1;
function f(){
var y =2 ;
function g(){
var z =3 ;
}
} 調(diào)用g()對(duì)象; z =3 ;
調(diào)用f()對(duì)象; y =2 ;
全局變量 x = 1 在此定義了嗎?
是
否
獲得值
在此定義了嗎?
是
否
獲得值
在此定義了嗎?
是
否
獲得值
未定義
8 , 客戶(hù)端全局變量:
在客戶(hù)端js中,Window對(duì)象代表瀏覽器窗口,他是一個(gè)全局對(duì)象。、
比如 ;我們常用的 parseInt() , Math() 都是Window對(duì)象定義的屬性。
Js允許多個(gè)全局變量的執(zhí)行環(huán)境,每個(gè)環(huán)境有不同的全局對(duì)象。
比如:客戶(hù)端js的每個(gè)獨(dú)立的瀏覽器窗口,或者同一窗口的不同幀。
其中的代碼都運(yùn)行在自己的執(zhí)行環(huán)境中,具有自己的全局對(duì)象。
當(dāng)然可以使用 表達(dá)式 parent.frames[0].x ; 來(lái)引用第一個(gè)幀中的全局變量 x ;這樣就把不同幀中的代碼聯(lián)系起來(lái)了。
不過(guò)這里有安全性問(wèn)題。
總結(jié);
主要講了 傳值和傳址 和 函數(shù)的作用域 。
對(duì)新手來(lái)說(shuō)稍微難理解些。如果還有不懂,可以google 搜索資料
或者聯(lián)系我 ,可以去我的blog 給我留言 :
http://www.cssrain.cn/LoadMod.asp?plugins=GuestBookForPJBlog
今天講到這里了,呵呵,明天繼續(xù)。相信大家的js技術(shù)會(huì)一步步提高的。
相關(guān)文章
DOM下的節(jié)點(diǎn)屬性和操作小結(jié)
DOM 節(jié)點(diǎn)屬性操作方法小結(jié)。2009-05-05用meta實(shí)現(xiàn)的頁(yè)面跳轉(zhuǎn)代碼
用meta實(shí)現(xiàn)的頁(yè)面跳轉(zhuǎn)代碼,建議與js一起使用,防止頁(yè)面假死或不支持js的情況,都可以實(shí)現(xiàn)效果。2007-09-09JS嚴(yán)格模式知識(shí)點(diǎn)總結(jié)
本篇文章給大家整理了JS嚴(yán)格模式下的相關(guān)知識(shí)點(diǎn)以及代碼實(shí)例分享,感興趣的跟著小編一起學(xué)習(xí)下吧。2018-02-02在javascript中創(chuàng)建對(duì)象的各種模式解析
下面小編就為大家?guī)?lái)一篇在javascript中創(chuàng)建對(duì)象的各種模式解析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧2016-05-05