<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    斷點

    每天進步一點點!
    posts - 174, comments - 56, trackbacks - 0, articles - 21

    Eval用法

    Posted on 2010-03-09 23:24 斷點 閱讀(715) 評論(0)  編輯  收藏 所屬分類: JScript

            Eval 是Javascript 中一個非常有用而奇特的預定義函數,它的概念和作用也像C 語言中的指針一樣較難理解,因而在實際應用中常常不能運用得當。函數Eval的功能是把一個字符串參數轉換成Javascript的代碼,這個被轉換的代碼可以是一個變量名,也可以是一個算術表達式,甚至是一個函數表達式。如i = eval("name1")是把名為name1 的變量賦值給變量i;i=eval("3+2")是把表達式3+2 的值5 賦給變量i ; i = eval("funname(n)")是把函數funname(n)返回值傳給變量i。這時,你也許要問了,這不是多此一舉嗎?直接寫成i=name1;i=3+2;i=funname(n)不就行了嗎?是的,如果我們僅僅把字符串值當作參數,是一點作用都不起。但如果我們把字符串變量作為參數,Eval 的作用就大了。如i=eval(str)(其中,str 是字符串變量),str 作為一個變量,其值可以動態地發生變更,從而使i = eval(str)產生不同的結果。這時str是不是像C語言的指針?它“指”向name1(即str 的值是"name1" 字串),i得到的是變量name1 的值。它“指”向一個函數名,就調用該函數并返回值給i(但該函數必須事先定義好,Javascript 引擎要找得到才行)。此外,它比“指針”更有用的是,還可解析執行動態生成的運算表達式。
            
            下面通過一個Web仿真計算器實例來描述它的這個作用。這是一個基于Web的計算器仿真程序。用戶可以像操作一個現實世界中的計算器一樣,通過單擊按鈕輸入數據和運算符號,當輸入等號后在文本框中得到最終結果。它的原理很簡單,就是記錄用戶輸入的運算式字串,然后用Eval 函數把該字串轉成運算式交給Javascript 執行即可。先手動建立一個簡單的HTML 文件,只要<html>、head>和<body>元素即可。接著在<body></body>間插入以下html 代碼,設置好該程序界面。
    <input type="text" name=textdisp value="" ><br>
    <input type="button" name=leftk value="(" onclick="yunsuan(value)">
    <input type="button" name=rightk value=")" onclick="yunsuan(value)">
    <input type="button" name=op1 value="1" onclick="yunsuan(value)">
    <input type="button" name=op2 value="2" onclick="yunsuan(value)">
    <input type="button" name=op3 value="3" onclick="yunsuan(value)">
    <input type="button" name=op4 value="4" onclick="yunsuan(value)">
    <br><p>
    <input type="button" name=op5 value="5" onclick="yunsuan(value)">
    <input type="button" name=op6 value="6" onclick="yunsuan(value)">
    <input type="button" name=op7 value="7" onclick="yunsuan(value)">
    <input type="button" name=op8 value="8" onclick="yunsuan(value)">
    <input type="button" name=op9 value="9" onclick="yunsuan(value)">
    <input type="button" name=op0 value="0" onclick="yunsuan(value)">
    <br><p>
    <input type="button" name=oppoint value="." onclick="yunsuan(value)">
    <input type="button" name=opadd value="+" onclick="yunsuan(value)">
    <input type="button" name=opsub value="-" onclick="yunsuan(value)">
    <input type="button" name=opmul value="*" onclick="yunsuan(value)">
    <input type="button" name=opdiv value="/" onclick="yunsuan(value)">
    <input type="button" name=opeql value="=" onclick="yunsuan(value)">
    <br><p>
    <input type="button" name=cle value="restar" onclick="res()">
    現在用IE6 打開它,就會得到如圖所示的效果。再接再厲,現在在<head></head>中輸入以下Javascript
    代碼:
    <TITLE>test</TITLE>
    <script language="javascript">
    var expstring="";
    var numstring="";
    function yunsuan(btn){
    if(btn=="=")
    textdisp.value=eval(expstring);
    else
    {if(((btn>="0")&&(btn<="9"))||(btn=="."))
    {numstring=numstring+btn;
    textdisp.value=numstring;
    }
    else
    numstring="";
    expstring=expstring+btn;
    }
    }
    function res(){
    expstring="";
    textdisp.value="";
    numstring="";
    }
    </script>
    這樣,我們利用Eval 函數,僅僅十幾行代碼就做好了這個計算器。

    轉載:http://school.cfan.com.cn/pro/pother/2006-08-28/1156732532d14455.shtml
    主站蜘蛛池模板: 亚洲综合另类小说色区| 久久青草91免费观看| 亚洲高清一区二区三区电影| 亚洲人成电影网站免费| 一个人看的免费观看日本视频www| 中文在线观看永久免费| 57pao国产成永久免费视频| 免费黄色网址入口| 一区二区三区亚洲视频| 久久av无码专区亚洲av桃花岛| 亚洲中文字幕久久精品蜜桃| 拍拍拍无挡免费视频网站| 成年人视频在线观看免费| 亚洲精品tv久久久久| 亚洲国产综合在线| 亚洲免费一区二区| 性感美女视频免费网站午夜| 亚洲av中文无码乱人伦在线咪咕| wwwxxx亚洲| 久久这里只精品热免费99| 亚洲精品视频久久| 国产无遮挡又黄又爽免费网站| 国产亚洲成AV人片在线观黄桃| 羞羞的视频在线免费观看| 0588影视手机免费看片| 亚洲中文久久精品无码| 少妇太爽了在线观看免费视频| 亚洲人成无码www久久久| 国产精品亚洲片在线花蝴蝶| 手机看黄av免费网址| 久久青青成人亚洲精品| 精品成在人线AV无码免费看 | 久久精品国产亚洲AV无码娇色 | 久久亚洲春色中文字幕久久久| 思思re热免费精品视频66 | 337p日本欧洲亚洲大胆艺术| 最近更新免费中文字幕大全| 亚洲男人天堂影院| 亚洲国产天堂久久久久久| 久久国产精品成人片免费| 久久精品夜色国产亚洲av|