<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        asp.net中eval不能定義變量的問題的解決方法

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:40:21
        文檔

        asp.net中eval不能定義變量的問題的解決方法

        asp.net中eval不能定義變量的問題的解決方法: 代碼如下:eval.asp <%@ LANGUAGE='JAVASCRIPT'%> <script Language=javascript runat=server> eval(var f1=1,f2=2,f3=3;); Response.Write(f1+<br/>); Response.Write(f
        推薦度:
        導讀asp.net中eval不能定義變量的問題的解決方法: 代碼如下:eval.asp <%@ LANGUAGE='JAVASCRIPT'%> <script Language=javascript runat=server> eval(var f1=1,f2=2,f3=3;); Response.Write(f1+<br/>); Response.Write(f

        代碼如下:

        eval.asp
        <%@ LANGUAGE='JAVASCRIPT'%>
        <script Language="javascript" runat=server>
        eval("var f1=1,f2=2,f3=3;");
        Response.Write(f1+"<br/>");
        Response.Write(f2+"<br/>");
        Response.Write(f3+"<br/>");
        </script>
        運行結果:
        1
        2
        3
        eval01.aspx
        <%@ LANGUAGE='JAVASCRIPT' DEBUG="true"%>
        <script Language="javascript" runat=server>
        eval("var f1=1,f2=2,f3=3;");
        Response.Write(f1+"<br/>");
        Response.Write(f2+"<br/>");
        Response.Write(f3+"<br/>");
        </script>
        第三行出現(xiàn)語法錯誤!
        可以通過對一個空對象動態(tài)加屬性的方法,解決按表字段來定義變量的問題:
        表名:T
        F1 int,
        F2 char(10),
        F3 datetime
        asp:
        eval(“var F1='',F2='',F3='';”);
        Response.Write(“F1=”+F1);
        aspx:
        var T={};
        T[“F1”]=””;
        T[“F2”]=””;
        T[“F3”]=””;
        Response.Write(“F1=”+T.F1);
        <%@ LANGUAGE='JScript' DEBUG="true"%>
        <%
        var TAB={
        };
        var n=12;
        var FLD;
        for(var i=0;i<n;i++)
        {
        FLD= "F0"+((i<10)?("00"):((i<100)?("0"):("")))+i;
        TAB[FLD]=i+1000;
        }
        for(var i=0;i<n;i++)
        {
        FLD= "F0"+((i<10)?("00"):((i<100)?("0"):("")))+i;
        Response.Write(TAB[FLD]+"<br/>");
        }
        %>

        微軟官方網(wǎng)站上對Jscript8.0的說明:

        http://msdn.microsoft.com/zh-cn/library/8e4z2w8w(v=vs.90).aspx#jsconupgradingapplicationcreatedinpreviousversionsofjscriptanchor7

        升級先前的 JScript 版本中創(chuàng)建的應用程序

        Visual Studio 2008

        其他版本

        ·Visual Studio 2010

        ·Visual Studio 2005

        此主題尚未評級 - 評價此主題

        更新:2007 年 11 月

        大多數(shù)現(xiàn)有的 JScript 代碼都可以很好地使用 JScript 8.0 中包含的增強功能,因為對于以前的版本,JScript 8.0 幾乎是完全向后兼容的。JScript 8.0 的新功能開創(chuàng)了新的天地。

        默認情況下,JScript 8.0 程序是在快速模式 中編譯的。由于快速模式對所允許的代碼類型有一些限制,因此程序可能會更有效并執(zhí)行得更快。但是,以前版本中可用的一些功能在快速模式下不可用。這些功能大部分與多線程應用程序不兼容,并會使代碼效率低下。對于用命令行編譯器編譯的程序,可以關閉快速模式,而利用完全的向后兼容性。注意,用這種方法編譯的代碼運行得較慢,容錯性也較差。在 ASP.NET 應用程序中不能關閉快速模式,因為會出現(xiàn)穩(wěn)定性問題。有關更多信息,請參見 /fast。

        快速模式

        在快速模式中,會觸發(fā)以下 JScript 行為:

        · 必須聲明所有變量。

        · 函數(shù)變?yōu)槌?shù)。

        · 內部對象不能有 expando 屬性。

        · 不能列出或更改內部對象的屬性。

        · arguments 對象不可用。

        · 不能給只讀變量、字段或方法賦值。

        · eval 方法不能在封閉范圍內定義標識符。

        · eval 方法在受限安全上下文中執(zhí)行腳本。

        必須聲明所有變量

        先前的 JScript 版本不要求顯式聲明變量。盡管此功能使程序員節(jié)省了擊鍵次數(shù),但它也使跟蹤錯誤變得困難。例如,您可能賦值給拼寫錯誤的變量名,這將既不生成錯誤也不會返回需要的結果。而且,未聲明的變量具有全局范圍,還會引起其他混淆。

        快速模式要求顯示聲明變量。這有助于避免出現(xiàn)前面提到的各種錯誤,并可產生運行得更快的代碼。

        JScript .NET 還支持經(jīng)過類型批注的變量。這樣就將每個變量與特定的數(shù)據(jù)類型綁定在一起,該變量只能存儲那種類型的數(shù)據(jù)。盡管類型批注不是必須的,但使用它有助于避免與在變量中意外存儲錯誤數(shù)據(jù)相關的那些錯誤,并可提高程序執(zhí)行的速度。

        有關更多信息,請參見 JScript 變量和常數(shù)。

        函數(shù)變?yōu)槌?shù)

        在以前的 JScript 版本中,用 function 語句聲明的函數(shù)與保存 Function 對象的變量被同等對待。特別是,任何函數(shù)標識符都可用作變量,來存儲任何類型的數(shù)據(jù)。

        在快速模式中,函數(shù)變成了常數(shù)。因此,不能為函數(shù)賦新值或重新定義函數(shù)。這樣可避免意外更改函數(shù)的意義。

        如果您的腳本需要使函數(shù)發(fā)生更改,則可以顯式使用某個變量以保存 Function 對象的實例。但是請注意,F(xiàn)unction 對象運緩慢。有關更多信息,請參見 Function 對象。

        內部對象不能有 expando 屬性

        在先前的 JScript 版本中,可以為內部對象添加 expando 屬性。例如,此行為可用于為 String 對象添加方法以剪裁字符串前面的空格。

        在快速模式中,這是不允許的。如果您的腳本使用了此功能,則必須修改腳本。可以在全局范圍內定義函數(shù),而不是將那些函數(shù)作為方法附加到對象上。然后,重寫腳本中的每個實例(在該腳本中 expando 方法是從對象中調用的),以便將對象傳遞給適當?shù)暮瘮?shù)。

        此規(guī)則的一個重要例外是 Global 對象,它仍然可具有 expando 屬性。全局范圍內的所有修飾符實際上都是 Global 對象的屬性。顯然,Global 對象必須能動態(tài)擴展以支持添加新的全局變量。

        不能列出或更改內部對象的屬性

        在以前的 JScript 版本中,可以對內部對象的預定義屬性進行刪除、枚舉或寫入。例如,此種行為可用于更改 Date 對象的默認 toString 方法。

        在快速模式中,這是不允許的。由于內部對象不能具有 expando 屬性,因此不再需要此功能,而每個對象的屬性則列在參考部分。有關更多信息,請參見對象。

        arguments 對象不可用

        先前的 JScript 版本在函數(shù)定義中提供了一個 arguments 對象,該對象允許函數(shù)接受任意個參數(shù)。該參數(shù)對象還可以引用當前函數(shù)和調用函數(shù)。

        在快速模式中,arguments 對象不可用。但是,JScript 8.0 允許進行函數(shù)聲明以便在函數(shù)參數(shù)列表中指定一個參數(shù)數(shù)組。這就允許函數(shù)接受任意多個參數(shù),從而取代了 arguments 對象的部分功能。有關更多信息,請參見 function 語句。

        在快速模式中沒有辦法直接訪問和引用當前函數(shù)或調用函數(shù)。

        不能給只讀變量、字段或方法賦值

        在先前的 JScript 版本中,語句似乎可以為只讀標識符賦值。這種賦值將無提示地失敗,而發(fā)現(xiàn)賦值失敗的唯一方法是測試值是否實際發(fā)生了更改。為只讀標識符賦值通常是某種差錯引起的,因為它不會有任何效果。

        在快速模式中,如果試圖為只讀標識符賦值,將生成編譯時錯誤。要么可以移除該賦值,要么可以嘗試為非只讀的標識符賦值。

        如果關閉快速模式,為只讀標識符賦值將在運行時無提示地失敗,但是會生成一個編譯時警告。

        eval 方法不能在封閉范圍內定義標識符

        在先前的 JScript 版本中,函數(shù)和變量可以通過調用 eval 方法在本地或全局范圍內定義。

        在快速模式中,函數(shù)和變量可以在對 eval 方法的調用中定義,但只能從這個特定的調用中對它們進行訪問。一旦完成 eval 后,在 eval 內定義的函數(shù)和變量就不能再行訪問。在 eval 內計算所得的結果可以賦給當前范圍內可訪問的任何變量。對 eval 方法的調用很慢,應考慮重寫包含這些調用的代碼。

        當關閉快速模式時,可恢復 eval 方法的先前行為。

        eval 方法在受限安全上下文中執(zhí)行腳本

        在以前版本的 JScript 中,傳遞至 eval 方法的代碼將與調用代碼在同一安全上下文中運行。

        為了保護用戶,傳遞至 eval 方法的代碼會在受限安全上下文中執(zhí)行,除非將字符串“unsafe”作為第二個參數(shù)傳遞。受限安全上下文禁止訪問系統(tǒng)資源,如文件系統(tǒng)、網(wǎng)絡或用戶界面。如果代碼試圖訪問這些資源,則會產生安全異常。

        當 eval 的第二個參數(shù)為字符串“unsafe”時,傳遞給 eval 方法的代碼在調用代碼所在的安全上下文中執(zhí)行。這樣,可以還原 eval 方法以前的行為。

        安全說明:

        以非安全模式使用 eval 只能執(zhí)行從已知源獲得的代碼字符串

        聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        asp.net中eval不能定義變量的問題的解決方法

        asp.net中eval不能定義變量的問題的解決方法: 代碼如下:eval.asp <%@ LANGUAGE='JAVASCRIPT'%> <script Language=javascript runat=server> eval(var f1=1,f2=2,f3=3;); Response.Write(f1+<br/>); Response.Write(f
        推薦度:
        標簽: 不能 解決 定義
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 日韩成人毛片高清视频免费看| 亚洲中文字幕在线无码一区二区 | 又粗又硬又黄又爽的免费视频| 91午夜精品亚洲一区二区三区| 99久久精品免费视频| 亚洲宅男永久在线| 亚洲国产精品免费在线观看| 亚洲精品国产专区91在线| 四虎成年永久免费网站 | 亚洲免费视频在线观看| 十九岁在线观看免费完整版电影| 久久亚洲精品中文字幕无码| 一级毛片不卡片免费观看| 亚洲视频在线免费看| 国产福利在线免费| 亚洲av中文无码字幕色不卡| 国产免费av片在线播放| 国产一区二区三区免费观在线| 亚洲高清在线视频| 岛国av无码免费无禁网站| 美女被免费网站视频在线| 77777亚洲午夜久久多人| 日韩精品人妻系列无码专区免费| 亚洲日韩乱码中文无码蜜桃| 天天拍拍天天爽免费视频| 草久免费在线观看网站| 亚洲AV无码成人精品区在线观看 | 污污视频网站免费观看| 亚洲AV无码一区二区二三区入口| 精品香蕉在线观看免费| 理论片在线观看免费| 亚洲人成网站在线播放影院在线| 成人免费毛片内射美女-百度| 国产成人 亚洲欧洲| 久久久久久a亚洲欧洲AV| 成年性羞羞视频免费观看无限| 成人午夜免费视频| 亚洲欧洲日韩综合| 国产亚洲人成A在线V网站| 成年网站免费视频A在线双飞| 一个人看的免费高清视频日本|