js 可以帮我详细解答一下每行的意思和原理吗,谢谢

 for (var i = 0; i < l; i++) { 
      for (var j = 0; j < (l - i - 1); j++)
          document.write('&nbsp;');
      var a = 2 * i + 1; //星星个数
      for (var k = 4; k < a; k++) {
          document.write(k == i ? "☆" : "★");
      }
          document.write('</br>');
      }

输出三角形的星星

 var l =9;
    for (var i = 0; i < l; i++) {
        for (var j = 0; j < (l - i - 1); j++) {
            document.write('。');
        }
        var a = 2 * i + 1; //星星个数
        for (var k = 4; k < a; k++) { //从第k+1行开始,显示☆
            document.write(k == i ? "☆" : "★");
        }
        document.write('</br>');
    }

图片说明




test
  <script>
          /*先不要考虑白色星星
             当l为1    不会打印星星
             当l为2    不会打印星星

             当l为3     打印    *

             当l为4     打印     *
                               * * *

             当l为5     打印    
                                   *                                      
                                 * * *
                               * * * * *
                。。。   */

        //打印l行星星   某一行要大于4才能输出星星  就是  先原样输出l行星星   在删除第l行的星星和第l-1行的星星  就是输出结果                  

     for (var i = 0; i < 4; i++) { //l  想要打印的行数
       for (var j = 0; j < (4 - i - 1); j++)  //打印这一行  星星前面的空格数
           document.write('&nbsp;&nbsp;&nbsp;');
       var a = 2 * i + 1; //星星个数  //当前行的星星个数
       for (var k = 4; k < a; k++) {   // 只有星星个大于4才能被打印
           document.write(k == i ? "☆" : "★");
       }
       document.write('</br>');
    }


    //   

  </script>