JScript中的條件注釋詳解
JScript 可以使用以下語(yǔ)句根據(jù)條件編譯變量的值控制腳本的編譯。既可以使用 JScript 提供的變量,也可以使用 @set 指令或 /define 命令行選項(xiàng)定義自己的變量。
@cc_on
激活條件編譯支持。
@if
根據(jù)表達(dá)式的值,有條件地執(zhí)行一組語(yǔ)句。
@set
創(chuàng)建使用條件編譯語(yǔ)句的變量。
@cc_on、@if 或 @set 語(yǔ)句激活條件編譯。條件編譯的一些典型用途包括在 JScript 中使用新功能、將調(diào)試支持嵌入到一個(gè)腳本中以及跟蹤代碼執(zhí)行。
當(dāng)編寫(xiě)由 Web 瀏覽器運(yùn)行的腳本時(shí),總是將條件編譯代碼放在注釋中。因此,不支持條件編譯的宿主可以忽略該代碼。這是一個(gè)示例。
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
document.write("JScript Version 5.0 or better.<BR>");
@else @*/
document.write("You need a more recent script engine.<BR>");
/*@end @*/
此示例使用特殊的注釋分隔符,僅當(dāng) @cc_on 語(yǔ)句激活條件編譯之后才使用這些分隔符。不支持條件編譯的腳本引擎顯示一則消息,建議需要使用新的腳本引擎,而不會(huì)產(chǎn)生錯(cuò)誤。支持條件編譯的引擎根據(jù)引擎的版本編譯第一個(gè)或第二個(gè) document.write。請(qǐng)注意,7.x 版表示 JScript .NET。有關(guān)更多信息,請(qǐng)參見(jiàn)檢測(cè)瀏覽器功能。
條件編譯對(duì)于服務(wù)器端腳本和命令行程序也很有用。在這些應(yīng)用程序中,可使用條件編譯將其他函數(shù)編譯到一個(gè)程序中,便于在調(diào)試模式下進(jìn)行分析。
以下預(yù)定義變量可用于條件編譯。
@_win32
如果在 Win32 系統(tǒng)上運(yùn)行,并且沒(méi)有指定 /platform 選項(xiàng)或指定了 /platform:anycpu 選項(xiàng),則為 true;否則為 NaN。
@_win16
如果在 Win16 系統(tǒng)上運(yùn)行,則為 true;否則為 NaN。
@_mac
如果在 Apple Macintosh 系統(tǒng)上運(yùn)行,則為 true;否則為 NaN。
@_alpha
如果在 DEC Alpha 處理器上運(yùn)行,則為 true;否則為 NaN。
@_x86
如果在 Intel 處理器上運(yùn)行,并且沒(méi)有指定 /platform 選項(xiàng)或指定了 /platform:anycpu 選項(xiàng),則為 true;否則為 NaN。
@_mc680x0
如果在 Motorola 680x0 處理器上運(yùn)行,則為 true;否則為 NaN。
@_PowerPC
如果在 Motorola PowerPC 處理器上運(yùn)行,則為 true;否則為 NaN。
@_jscript
始終為 true。
@_jscript_build
JScript 腳本引擎的內(nèi)部版本號(hào)。
@_jscript_version
以 major.minor 格式表示 JScript 版本號(hào)的數(shù)字。
@_debug
如果在調(diào)試模式下編譯則為 true;否則為 false。
@_fast
如果在快速模式下編譯則為 true;否則為 false。
注意
JScript .NET 報(bào)告的版本號(hào)為 7.x。JScript 8.0 報(bào)告的版本號(hào)為 8.x。
在使用條件編譯變量之前,必須先打開(kāi)條件編譯。@cc_on 語(yǔ)句可打開(kāi)條件編譯。條件編譯變量通常用于針對(duì) Web 瀏覽器編寫(xiě)的腳本中。在為 ASP 或 ASP.NET 頁(yè)或命令行程序編寫(xiě)的腳本中很少使用條件編譯變量,這是因?yàn)榭梢允褂闷渌椒ù_定編譯器的兼容性。
當(dāng)編寫(xiě)用于網(wǎng)頁(yè)的腳本時(shí),始終將條件編譯代碼放在注釋中。這樣,不支持條件編譯的宿主就可以忽略該代碼。這是一個(gè)示例。
/*@cc_on
document.write("JScript version: " + @_jscript_version + ".<BR>");
@if (@_win32)
document.write("Running on 32-bit Windows.<BR>");
@elif (@_win16)
document.write("Running on 16-bit Windows.<BR>");
@else
document.write("Running on a different platform.<BR>");
@end
@*/
相關(guān)文章
JS 頁(yè)面自動(dòng)加載函數(shù)(兼容多瀏覽器)
兼容多個(gè)瀏覽器的自動(dòng)加載函數(shù)。2009-05-05JS PHP字符串截取函數(shù)實(shí)現(xiàn)原理解析
這篇文章主要介紹了JS PHP字符串截取函數(shù)實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08js實(shí)現(xiàn)編輯div節(jié)點(diǎn)名稱(chēng)的方法
這篇文章主要介紹了js實(shí)現(xiàn)編輯div節(jié)點(diǎn)名稱(chēng)的方法,可實(shí)現(xiàn)針對(duì)div節(jié)點(diǎn)名稱(chēng)的編輯及樣式的選擇效果,并且分別針對(duì)IE與FF瀏覽器的樣式進(jìn)行了選擇與控制,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12JS自定義對(duì)象創(chuàng)建與簡(jiǎn)單使用方法示例
這篇文章主要介紹了JS自定義對(duì)象創(chuàng)建與簡(jiǎn)單使用方法,結(jié)合實(shí)例形式分析了JavaScript創(chuàng)建與使用自定義對(duì)象的相關(guān)操作技巧,需要的朋友可以參考下2020-01-01JS實(shí)現(xiàn)拖動(dòng)滾動(dòng)條評(píng)分的效果代碼分享
本文給大家基于js實(shí)現(xiàn)拖動(dòng)滾動(dòng)條評(píng)分效果,在項(xiàng)目開(kāi)發(fā)中經(jīng)??梢杂玫降模蠹铱梢愿有枰m當(dāng)?shù)奶砑有薷?,?duì)js評(píng)分效果感興趣的朋友一起看看吧2016-09-09JavaScript XML和string相互轉(zhuǎn)化實(shí)現(xiàn)代碼
兩個(gè)小function實(shí)現(xiàn)XML和string相互轉(zhuǎn)化,需要的朋友可以參考下。2011-07-07javascript引用類(lèi)型之時(shí)間Date和數(shù)組Array
引用類(lèi)型的值(對(duì)象)其實(shí)就是引用類(lèi)型的一個(gè)實(shí)例,接下來(lái),通過(guò)本篇文章給大家介紹javascript引用類(lèi)型之時(shí)間Date和數(shù)組Array,需要的朋友可以參考下2015-08-08