JavaScript中檢測變量是否存在遇到的一些問題
更新時(shí)間:2013年11月11日 17:17:19 作者:
要檢測某一變量是否存在,雖然簡單但是也要細(xì)心,下面整理了幾點(diǎn),遇到類似問題的朋友可以參考下
在編寫JavaScript程序時(shí)往往需要檢測某一變量是否存在,這是一件非常簡單的工作,但如果不細(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ù)期的對話框:
<script type="text/javascript">
if( typeof variable == 'undefined' ){
alert('rain man');
}
</script>
2、對象的屬性
<script type="text/javascript">
var two = {};
if(two.b){
alert('rain man');
}
if( window.addEventListener ){
alert('This is not IE!');
}
</script>
對于檢測對象的屬性則不必使用 typeof 。
3、在給對象添加屬性時(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ù)期的對話框:
復(fù)制代碼 代碼如下:
<script type="text/javascript">
if( typeof variable == 'undefined' ){
alert('rain man');
}
</script>
2、對象的屬性
復(fù)制代碼 代碼如下:
<script type="text/javascript">
var two = {};
if(two.b){
alert('rain man');
}
if( window.addEventListener ){
alert('This is not IE!');
}
</script>
對于檢測對象的屬性則不必使用 typeof 。
3、在給對象添加屬性時(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)文章
JS深入學(xué)習(xí)之?dāng)?shù)組對象排序操作示例
這篇文章主要介紹了JS深入學(xué)習(xí)之?dāng)?shù)組對象排序操作,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript數(shù)組對象排序相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05基于JavaScript實(shí)現(xiàn)五子棋游戲
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11微信小程序?qū)崿F(xiàn)點(diǎn)擊卡片 翻轉(zhuǎn)效果
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)點(diǎn)擊卡片 翻轉(zhuǎn)效果本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09詳解JavaScript中Canvas的高級繪圖和動(dòng)畫技術(shù)
JavaScript中的Canvas 是一個(gè)強(qiáng)大的 HTML5 元素,允許你通過編程方式創(chuàng)建圖形、繪制圖像和實(shí)現(xiàn)復(fù)雜的動(dòng)畫效果,在本文中,我們將深入探討 JavaScript Canvas 的高級繪圖和動(dòng)畫技術(shù),并提供一個(gè)復(fù)雜的案例,以展示其潛力,需要的朋友可以參考下2023-10-10阿里巴巴技術(shù)文章分享 Javascript繼承機(jī)制的實(shí)現(xiàn)
這篇文章主要介紹了阿里巴巴技術(shù)文章,分享的是一篇關(guān)于Javascript實(shí)現(xiàn)繼承機(jī)制的文章,感興趣的小伙伴們可以參考一下2016-01-01微信小程序 多行文本顯示...+顯示更多按鈕和收起更多按鈕功能
這篇文章主要介紹了微信小程序多行文本顯示...+顯示更多按鈕和收起更多按鈕,代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09js刪除數(shù)組元素、清空數(shù)組的簡單方法(必看)
下面小編就為大家?guī)硪黄猨s刪除數(shù)組元素、清空數(shù)組的簡單方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07事件綁定之小測試 onclick && addEventListener
昨晚回去后,和雷子討論如何才能“檢測”到頁面上某個(gè)元素都綁定了哪些事件監(jiān)聽函數(shù),第一感覺就是應(yīng)該從瀏覽器入手,比如FF,或者Chrome等2011-07-07