JavaScript的表达式解析器-4. 使用JSFormula

使用JSFormula的例子如下:

1.在 HTML的HEAD部分引入以下js脚本,有点多。


    
        
        
        
        
        
        
        
        
        
        
        
        
        

        
        
        
        
        
        
        

        
        
        
        
        
        
        
        
        

        
        
        
        
        
        
        
        
        
        

        
    

...

2. 示例代码如下:

            function log( msg )
            {
                TA_Log.value += msg + '\n';
            }

            function testFormula( logFunc )
            {
                var state = [
                    '=0',
                    '=0+0',
                    '=0.0',
                    '=0.1',
                    '=0+1',
                    '=1+1',
                    '=0.1+1',
                    '=1+2+3',
                    '=1+2*3',
                    '=1+2/3',
                    '=1 > 2',
                    '=1 < 2',
                    '=1 >= 2',
                    '=1 <= 2',
                    '=3 > 2 + 1',
                    '=3 < 2 + 1',
                    '= 3 >= 2 + 1',
                    '= 3 <= 2 + 1',
                    '=1 >> 2',
                    '=1 << 2',
                    '=1 & 2',
                    '=2 & 1',
                    '=!1',
                    '=+1+-2',
                    '=(1) + ((2))',
                    '=true',
                    '=false',
                    '=3 % 5',
                    '=~1',
                    '=1^2',
                    '=Sum(1, 2, 3)',
                    '=power(2, 4)',
                    '=average(1, 2, 3, 4, 5, 6)',
                    '=1 + Sum(2, 3) + Power(2, 0)',
                    '=1 + -Sum(2, Power(2, 3))',
                    '=1 + Sum(2, Power(2, (3 + -1)))',
                ];

                var exp = igame.Expression;

                for ( var i = 0; i < state.length; i++ )
                {
                    if ( state[i] )
                    {
                        var fm = new exp.Formula( state[i] );

                        try
                        {
                            var val = fm.evaluate();

                            logFunc( state[i] + '\t\t==>\t\t' + val.toString() );
                        }
                        catch ( e )
                        {
                            logFunc( state[i] + ':' + e.description );
                        }
                    }
                }

            }
                        
            btn_test.onclick = function()
            {
                testFormula( log );
            }


你可能感兴趣的:(JavaScript)