Get string "-" with JavaScript using only the symbols from "+[]"
260 ... 210  205 bytes
Saved 5 bytes thanks to @user202729

[+[[+[++[[]][+[]]+[++[[]][+[]]]+[[+[][[]]]+[][[]]][+[]][++[[]][+[]]+[+[]]]+[++[[]][+[]]]+[+[]]+[+[]]]+[]][+[]][++[[]][+[]]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[++[[]][+[]]]]+[]][+[]][++[++[[]][+[]]][+[]]]

Try it online!
How?
We first generate the string &quot;11e100&quot; and coerce it to an number to get 1.1e+101. By coercing it back to a string and extracting the 2nd character, we obtain a &quot;.&quot;
Using this &quot;.&quot;, we can now generate the string &quot;.0000001&quot;. When forced to a number, this gives 1e-7, which can be used to extract a &quot;-&quot;.
Below is a slightly more readable version:
[+[[+['11' + [[NaN] + undefined][0][10] + '100'] + []][0][1] + '0000001'] + []][0][2]

Commented
[                           // singleton array:
  +[                        //   coerce to a number:
    [                       //     singleton array:
      +[                    //       coerce to a number:
        ++[[]][+[]] +       //         1 +
        [++[[]][+[]]] +     //         &quot;1&quot; +
        [                   //         singleton array:
          [+[][[]]] +       //           &quot;NaN&quot; +
          [][[]]            //           undefined
        ][+[]]              //         [0] -&gt; &quot;NaNundefined&quot;
        [                   //         build [10]:
          ++[[]][+[]] +     //           1 +
          [+[]]             //           &quot;0&quot;
        ]                   //         -&gt; &quot;e&quot;
        + [++[[]][+[]]]     //         + &quot;1&quot;
        + [+[]] + [+[]]     //         + &quot;0&quot; + &quot;0&quot; -&gt; &quot;11e100&quot;
      ]                     //       -&gt; 1.1e101
      + []                  //       coerce to a string
    ][+[]]                  //     [0] -&gt; &quot;1.1e101&quot;
    [ ++[[]][+[]] ]         //     [1] -&gt; &quot;.&quot;
    + [+[]] + [+[]] + [+[]] //     + &quot;0&quot; + &quot;0&quot; + &quot;0&quot;
    + [+[]] + [+[]] + [+[]] //     + &quot;0&quot; + &quot;0&quot; + &quot;0&quot;
    + [++[[]][+[]]]         //     + &quot;1&quot; -&gt; &quot;.0000001&quot;
  ]                         //   -&gt; 1e-7
  + []                      //   coerce to a string
][+[]]                      // [0] -&gt; &quot;1e-7&quot;
[                           // build [2]:
  ++[                       //   pre-increment:
    ++[[]][+[]]             //     1
  ][+[]]                    //   [0]
]                           // -&gt; &quot;-&quot;