JavaScript中檢測(cè)變量是否存在遇到的一些問題
更新時(shí)間:2013年11月11日 17:17:19 作者:
要檢測(cè)某一變量是否存在,雖然簡(jiǎn)單但是也要細(xì)心,下面整理了幾點(diǎn),遇到類似問題的朋友可以參考下
在編寫JavaScript程序時(shí)往往需要檢測(cè)某一變量是否存在,這是一件非常簡(jiǎn)單的工作,但如果不細(xì)心也會(huì)遇到一些問題。主要有一些幾點(diǎn):
1、普通變量
<script type="text/javascript">
if(variable){
alert('rain man');
}
</script>
這時(shí)會(huì)出現(xiàn)‘variable is not defined'的錯(cuò)誤,如果改成下面就會(huì)彈出預(yù)期的對(duì)話框:
<script type="text/javascript">
if( typeof variable == 'undefined' ){
alert('rain man');
}
</script>
2、對(duì)象的屬性
<script type="text/javascript">
var two = {};
if(two.b){
alert('rain man');
}
if( window.addEventListener ){
alert('This is not IE!');
}
</script>
對(duì)于檢測(cè)對(duì)象的屬性則不必使用 typeof 。
3、在給對(duì)象添加屬性時(shí),也會(huì)遇到類似的問題
<script type="text/javascript">
var obj = {};
obj.property.number = 2; //這時(shí)會(huì)出現(xiàn) 'obj.property is undefined' 的錯(cuò)誤
/**
* 下面這種情況雖然沒有出現(xiàn)語法錯(cuò)誤,但實(shí)際上已經(jīng)出現(xiàn)了錯(cuò)誤.
* 屬性是復(fù)合型變量所特有的,而obj.property是數(shù)值型變量,不能含有屬性.
*/
var obj = {};
obj.property = 2 ;
obj.property.number = 3;
</script>
1、普通變量
復(fù)制代碼 代碼如下:
<script type="text/javascript">
if(variable){
alert('rain man');
}
</script>
這時(shí)會(huì)出現(xiàn)‘variable is not defined'的錯(cuò)誤,如果改成下面就會(huì)彈出預(yù)期的對(duì)話框:
復(fù)制代碼 代碼如下:
<script type="text/javascript">
if( typeof variable == 'undefined' ){
alert('rain man');
}
</script>
2、對(duì)象的屬性
復(fù)制代碼 代碼如下:
<script type="text/javascript">
var two = {};
if(two.b){
alert('rain man');
}
if( window.addEventListener ){
alert('This is not IE!');
}
</script>
對(duì)于檢測(cè)對(duì)象的屬性則不必使用 typeof 。
3、在給對(duì)象添加屬性時(shí),也會(huì)遇到類似的問題
復(fù)制代碼 代碼如下:
<script type="text/javascript">
var obj = {};
obj.property.number = 2; //這時(shí)會(huì)出現(xiàn) 'obj.property is undefined' 的錯(cuò)誤
/**
* 下面這種情況雖然沒有出現(xiàn)語法錯(cuò)誤,但實(shí)際上已經(jīng)出現(xiàn)了錯(cuò)誤.
* 屬性是復(fù)合型變量所特有的,而obj.property是數(shù)值型變量,不能含有屬性.
*/
var obj = {};
obj.property = 2 ;
obj.property.number = 3;
</script>
相關(guān)文章
bootstrap制作jsp頁面(根據(jù)值讓table顯示選中)
這篇文章主要為大家詳細(xì)介紹了bootstrap做的jsp頁面,根據(jù)值讓table顯示選中,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
JavaScript禁用右鍵單擊優(yōu)缺點(diǎn)分析
在本篇文章里小編給大家分享了關(guān)于JavaScript禁用右鍵單擊優(yōu)缺點(diǎn)分析,有需要的朋友們學(xué)習(xí)下。2019-01-01
JavaScript實(shí)現(xiàn)隨機(jī)產(chǎn)生字符串的方法分享
這篇文章主要為大家詳細(xì)介紹了JavaScript中實(shí)現(xiàn)隨機(jī)產(chǎn)生字符串的方法,文中的示例代碼簡(jiǎn)潔易懂,對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下2022-11-11
Bootstrap select實(shí)現(xiàn)下拉框多選效果
這篇文章主要為大家詳細(xì)介紹了Bootstrap select實(shí)現(xiàn)下拉框多選效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
JavaScript實(shí)現(xiàn)購物車基本功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)購物車的基本功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
為非IE瀏覽器添加mouseenter,mouseleave事件的實(shí)現(xiàn)代碼
為非IE瀏覽器添加mouseenter,mouseleave事件的實(shí)現(xiàn)代碼,學(xué)習(xí)js的朋友可以參考下。2011-06-06
兩個(gè)table之間相互移動(dòng)數(shù)據(jù)
兩個(gè)table之間相互移動(dòng)數(shù)據(jù)的實(shí)現(xiàn)代碼。2009-05-05

