eval可以对指定的表达式求值,例如eval(1+1)=2 ,
而eval("[数量] * [单价]")可以求出金额。
eval函数可以在运行过程中动态生成表达式,然后再求得这个表达式的值。
**关键是准确写出eval中的"表达式"**作为字符串中的引号"放在eval中必须加倍**
一、数值运算表达式:
2+3;(3+5)/2;-----
用eval对数值表达式求值:
eval(2+2)=4--直接把2+2作为数值表达式执行运算
eval("2+2")=4--把字符型表达式2+2直接进行运算
eval(""2+2"")--语法错误!
eval("""2+2""")=2+2--执行后成为一字符串2+2没有运算
eval(Eval("""2+2"""))=4--再执行一次就运算了
二、字符串表达式:
要表示字符串abcd可以:"abcd";也可以:"ab"+"cd"
用eval对字符串表达式求值:
eval(abcd)--这时没有把abcd作为表达式,而是作为一个变量abcd。
eval("abcd")--这时把abcd作为表达式,而这个表达式无意义,结果为空。
eval(""abcd"")--语法错误!
eval("""abcd""")--这时把"abcd"作为表达式,执行结果为一字符串abcd
eval(""ab"+"cd"")--语法错误!
eval("""ab""+""cd""")--执行结果为一字符串abcd
eval("""ab"""+"""cd""")--与eval("""ab""+""cd""")比较多了二个引号"",执行结果为一字符串ab"cd
eval(Abs(2-8))=6--这时把Abs(2-8)作为表达式,执行结果当然为6
eval(""Abs(2-8)"")--语法错误!
eval("""Abs(2-8)""")=Abs(2-8)--执行后成为一字符串Abs(2-8)没有运算
再执行一次eval(eval("""Abs(2-8)"""))=6