麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > JS > 正文

JScript中的'var'定義變量的作用域

2024-09-06 12:43:08
字體:
來源:轉載
供稿:網友
都不記得是什么時候看的JScript的語法教程了,里面說在聲明變量時忽略var關鍵字是完全合法的。當時也因為覺得JavaScript是loosely-typed的語言,所以var可能真的就是個擺設。但是事實常常又證明想當然的結果是不可靠的。 
 看看下面這幾個例子的結果就知道問題了: 
No.1  

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

No.2  

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

No.3 

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

這三個例子的執行結果分別是:  
代碼如下:
Results#region Results  
No.1  
0  
undefined  

No.2  
0  
1  

No.3  
0  
undefined  
#endregion  


     原來JavaScript的變量也是有作用域的,只是它非常的籠統,就分為全局變量和函數變量。在第二個例子中得到0和1,是因為所有的變量都是全局變量,而且那個語句塊一共就定義了兩個變量。而第一個第三的函數外全局變量,確實說明var關鍵字有沒有都沒有關系。而函數內的var關鍵字就很關鍵了,它說明第二個var01是函數內的變量,所以在初始化var01前輸出自然就是'undefined'了。 

     那么函數里面是不是就屏蔽掉了全局的var01了呢?我們知道在C/C++可以使用::去訪問全局變量,那么JavaScript可不可以呢?這里其實我們只要明白了全局變量到底是什么東西,就好弄了。原來全局變量都是動態添加到Window對象的實例window上的屬性而以,所以我們只要在函數內用:document.write(window.var01);就可以取到其值1了。同時在這個上下文中,function內的this也是指向的window實例,我們也可以把引用寫成:this.var01。 

    By the way, 重看JScript教程時,它說變量只能是[a-zA-Z_]+[a-zA-Z0-9_]*格式,可是'$'卻也可以作為變量名字符,而且還可以用在開頭,比如:$1234,更甚至于:$$$ 也是合法的變量名,faint。 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩手机在线观看 | 噜噜噜躁狠狠躁狠狠精品视频 | 99精品电影 | 91网站永久免费看 | 亚洲精品久久久久久久久久久 | 极品xxxx欧美一区二区 | 午夜视 | 91久久久久久久 | 操碰 | 宅男噜噜噜66一区二区 | 亚洲啊v在线观看 | 久久久久久久国产视频 | 成人aaaa免费全部观看 | a级高清免费毛片av在线 | 中文字幕在线观看亚洲 | 久草成人在线 | 久久不雅视频 | 国产v综合v亚洲欧美久久 | 国产精品一区二区羞羞答答 | 九九视频精品在线观看 | 成人综合在线观看 | 国产91一区二区三区 | 黄色的视频免费观看 | 一级免费a | 韩国十九禁高潮床戏在线观看 | 欧美成人鲁丝片在线观看 | 久久色播 | 免费a级片在线观看 | 伊人成人免费视频 | 一本到免费视频 | 久久亚洲网 | 中文字幕免费在线观看视频 | 插插操| 国产精品成人一区二区三区吃奶 | 国产毛片毛片毛片 | 91精品久久久久久 | www日韩大片 | 国产精品亚洲综合 | chinese xvideos gay | chengrenzaixian| 免费在线观看成人av |