【问题标题】:javascript can i put a variable check inside a stringjavascript 我可以在字符串中放置变量检查吗
【发布时间】:2013-07-19 18:05:41
【问题描述】:

在 javascript 中可以实现这样的事情吗?

也许我有一个有时可能未定义的变量(在本例中是一个数字)。我想在字符串中做一些代码来检查变量...

ps:我知道这个 throws 会抛出错误!

var mystring='<b class="my string">'+(if(variable){variable;}else{0;})+'</b>';

【问题讨论】:

  • 你看过inline conditionals吗?
  • 是的,您可以在 JS 中执行此操作,如下所示,但仅仅因为您可以执行此操作并不意味着您应该这样做。在嵌套在作用域变量中的字符串中插入逻辑不是好的做法。如果您决定编写单元测试甚至调试您的代码,这可能会变得非常困难。我建议将您的逻辑和字符串分配分开。

标签: javascript


【解决方案1】:

您可以使用conditional operator (?:):

var
    variable = true,
    mystring = 'Hello, ' + ( variable ? 'world' : 'nobody' ) + '!'
;

JSFiddle demo.

【讨论】:

    【解决方案2】:

    似乎是三元运算符?对你会有一些用处:

    var like = true;
    
    var myString = 'some string i ' +  ( (like) ? 'really' : 'do not' ) + ' like' ;
    

    【讨论】:

      【解决方案3】:

      typeof 运算符将特别告诉您变量是否已定义。

      链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof

      例如

      var mystring = 'The variable ' + (typeof variable !== 'undefined' ? 'exists' : 'doesn\'t exist');
      

      JSFiddle:http://jsfiddle.net/FlameTrap/AJfFk/1/

      【讨论】:

        【解决方案4】:

        var mystring = '&lt;b class="my string"&gt;' + ( typeof variable !== undefined ) ? 'variable' : 0 + '&lt;/b&gt;';

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-22
          • 2023-03-23
          • 2021-10-20
          • 2020-07-24
          相关资源
          最近更新 更多