如何在javascript范围内传达所有表达式

How to communicate all expressions in javascript scope

本文关键字:表达式 范围内 javascript      更新时间:2023-09-26

这个问题很基本,以下是我想在javascrtipt中执行的示例代码:

(function getdata(){
  gettrue( true=true );
  gettrue( 1==2 );
  gettrue( 1==1 );
  // write something here to get all three expressions result ? 
  // console.log( [ all three result ] )
})()

gettrue(){}

更新:

这个问题可用于测试框架:

test("several test result:" , function(){
   assert("test1" , true );
   assert("test2" , false )
 })
function test(title , fn){
   console.log("running: " + title)
   fn()
   // write something here to get all result of assert
   //  not more than 2 lines
  }
function assert(str, test){
   if(test){
     console.log(str +" :  PASS ")
   }else{
     console.log(str +" :  Fail ")
   }
   return test
}
 

您需要将结果存储在某个地方。事实上,你把这三个都扔掉了。

数组似乎最简单:

(function getdata() {
  var results = [
    gettrue( true==true ),
    gettrue( 1==2 ),
    gettrue( 1==1 )
  ];
  console.log(results);
})()

赋值true=true无效。 gettrue()没有返回某些内容并缺少参数。

function gettrue(b) { return !!b; }
(function getdata() {
    console.log([
        gettrue(true == true),
        gettrue(1 == 2),
        gettrue(1 == 1),
    ]);
})();

我不确定我是否理解这个问题,但您是否正在寻找这样的东西?此外,您不能将任何内容设置为真实,您的意思是true==true?

var values = [];
(function getdata(){
  values.push(gettrue( true==true ));
  values.push(gettrue( 1==2 ));
  values.push(gettrue( 1==1 ));
  console.log(values);
})();
function gettrue(val){ return val; }

作为结论,与几位有经验的程序员讨论。如果没有触摸 getture 或断言函数,不可能获得所有评估结果。

var count;
(function getdata(){
  count=0 
  gettrue( true );
  gettrue( 1==2 );
  gettrue( 1==1 );
  gettrue( count==3 )
})()
function gettrue(test ){
  console.log( test ) 
  count++
}

对于测试框架,它可以是:

    var count;
    test("several test result:" , function(){
       assert("test1" , true );
       assert("test2" , false )
     })
    function test(title , fn){
       console.log("running: " + title)
       count = 0 ;
       fn()
       var expectTotal = fn.toString().match(/assert/)
       if(expectTotal)
        assert( title , expectTotal.length == count )
      }
    function assert(str, test){
       if(test){
         console.log(str +" :  PASS ")
       }else{
         console.log(str +" :  FAIL ")
       }
       count ++
       return test
    }