JS入门练习-九九乘法表(每次刷新时单元格随机变色)

news/2024/7/10 23:24:08 标签: javascript, 前端, es6, ecmascript

效果图↑

首先,在script中建立输出一个table

javascript">
    <script>
        document.write(`<table width="800px" height="500px"  style="border:1px solid">`)
        //同时设置好table的宽高,设置一个边框,方便查看效果
       

        document.write(`</table>`)
    </script>

第一层for循环,输出行<tr></tr>

javascript">
    <script>
        document.write(`<table width="800px" height="500px"  style="border:1px solid">`)
        //同时设置好table的宽高,设置一个边框,方便查看效果
           for(var i = 1;i <= 9;i++){  //定义i = 1,总共9行
                
                document.write('<tr></tr>')
                document.write('<br>')    //设置换行    不设置也可以,主要为了好看

        }
        
        document.write(`</table>`)
    </script>

加入第二层循环,开始输出每行内的每列<td></td>,同时给每一个td设置一个边框方便查看效果

javascript"> <script>
        document.write(`<table width="800px" height="500px"  style="border:1px solid">`)
        //同时设置好table的宽高,设置一个边框,方便查看效果
           for(var i = 1;i <= 9;i++){  //定义i = 1,总共9行
                
                document.write('<tr></tr>')

                //第二层for循环
                for (var j = 1; j <= i; j++) {   
                 //j根据i的值逐行增多,i多一行,每行的j就会多一个
              
                    document.write(`<td style="border:1px solid"></td>`)
               
                }
                
                document.write('<br>')    //设置换行    不设置也可以,主要为了好看

        }
        
        document.write(`</table>`)
    </script>

此时效果为:

 现在我们可以去掉最外层的边框了

同时开始写九九乘法表的内容,因为要用 i 和 j 循环出来的值来填写内容,所以 i 和 j 是从1开始的,九九乘法表也是从1开始运算的

javascript"> <script>
        document.write(`<table width="800px" height="500px"`)
        //同时设置好table的宽高
           for(var i = 1;i <= 9;i++){  //定义i = 1,总共9行
                
                document.write('<tr></tr>')

                //第二层for循环
                for (var j = 1; j <= i; j++) {
                    //j根据i的值逐行增多,i多一行,每行的j就会多一个
              
                 document.write(`<td style="border:1px solid">${j}*${i}=${i*j}</td>`)
                       //i代表的是每行,第一行就是1,第二行就是2
                       //j代表的是每列,第一列就是1,第二列就是2,以此类推
                       //为了符合九九乘法表的书写规律,第一列开头为1,第二列开头为2,所以把j的值放在前面
               
                }
                
                document.write('<br>')    //设置换行    不设置也可以,主要为了好看

        }
        
        document.write(`</table>`)
    </script>

这个时候的效果就是:

 可以看到,我书写输出内容时最外层用的不是" ",也不是‘ ’

 而是反引号 ` ` ,是在英文状态中,单击波浪号的按键,也就是感叹号上方的按键

这样的话,在内部设置style等属性时,不用担心单双引号的问题 ,使用变量的值时可以用${ }的形式

一个九九乘法表做好了,接下来是设置每个单元格的随机背景颜色

考虑到随机性,使用Math的随机数方法,也就是Math.random( ),此方法的随机数范围为0~1的随机小数,而颜色设置不仅有十六进制的形式,也有rgb(r,g,b)的形式,范围为0~255,所以我们可以这么设置

javascript">var r = Math.random() * 255;
var g = Math.random() * 255;
var b = Math.random() * 255;

这样就可以取0~255间的随机数了,RGB内的数字会自动取整,所以我们不用特意取整

将上段代码加进我们的代码,这个时候为了代码好看,其实就可以把td的边框去掉了

javascript"> <script>
        document.write(`<table width="800px" height="500px"`)
        //同时设置好table的宽高
           for(var i = 1;i <= 9;i++){  //定义i = 1,总共9行
                
                document.write('<tr></tr>')

                //第二层for循环
                for (var j = 1; j <= i; j++) {
                    //j根据i的值逐行增多,i多一行,每行的j就会多一个

                      var r = Math.random() * 255;
                      var g = Math.random() * 255;
                      var b = Math.random() * 255;
                   //因为我们设置的是随机的单元格的背景颜色,所以变量写在第二层循环中
              
                 document.write(`<td style="background-color: rgb(${r} ,${g} , ${b})">${j}*${i}=${i*j}</td>`)
                       //i代表的是每行,第一行就是1,第二行就是2
                       //j代表的是每列,第一列就是1,第二列就是2,以此类推
                       //为了符合九九乘法表的书写规律,第一列开头为1,第二列开头为2,所以把j的值放在前面
               
                }
                
                document.write('<br>')    //设置换行    不设置也可以,主要为了好看

        }
        
        document.write(`</table>`)
    </script>

 此时的效果就完成了

 然后点击刷新,就可以看见随机不同颜色的九九乘法表了

当然,如果是只想整个背景颜色随机而不是单元格的话,把变量更改到最外层的表格中就可以了,如下

javascript"><script>
        document.write(`<table width="800px" height="500px"`)
        //同时设置好table的宽高
       
          var r = Math.random() * 255;
          var g = Math.random() * 255;
          var b = Math.random() * 255;

           for(var i = 1;i <= 9;i++){  //定义i = 1,总共9行
                
                document.write('<tr></tr>')

                //第二层for循环
                for (var j = 1; j <= i; j++) {
                    //j根据i的值逐行增多,i多一行,每行的j就会多一个

                 document.write(`<td style = "background-color: rgb(${r} ,${g} , ${b}) ">${j}*${i}=${i*j}</td>`)

                       //i代表的是每行,第一行就是1,第二行就是2
                       //j代表的是每列,第一列就是1,第二列就是2,以此类推
                       //为了符合九九乘法表的书写规律,第一列开头为1,第二列开头为2,所以把j的值放在前面
               
                }
                
                document.write('<br>')    //设置换行    不设置也可以,主要为了好看

        }
        
        document.write(`</table>`)
    </script>

 此时的效果为:

 点击刷新页面,就可以随机颜色了


http://www.niftyadmin.cn/n/736815.html

相关文章

JS入门-冒泡排序

<script>// 冒泡排序&#xff1a;//sortvar arr [3,4,5,7,1,2,8,13,35,7,9];// 1 2 7 8 13 7 9 35// console.log(arr.sort((a,b)>a-b)); // console.log(arr.sort(function(a,b){return a-b})); // 轮数->两两比较的次数// 从小到大排列// 轮次…

JS闭包的一些概念

闭包的定义 包含自由变量的函数就是闭包(自由变量指不是函数参数&#xff0c;也不是函数内部变量的变量&#xff0c;即外部变量) 该函数通常为内部函数&#xff0c;被返回&#xff0c;外部可以引用该函数&#xff0c;通过其访问自由变量。 闭包的形成 将一个内部函数,通过某种…

CSS的选择器

基础选择器 选择器作用缺点使用情况用法标签选择器可以选出所有相同的标签&#xff0c;比如p不能差异化选择较多p { color&#xff1a;red;}类选择器可以选出1个或者多个标签可以根据需求选择非常多.nav { color: red; }id选择器一次只能选择器1个标签只能使用一次不推荐使用#…

我的第一个博客_超超超级详细的V4L2编程

参考&#xff1a;https://wenku.baidu.com/view/acaef8d8f01dc281e43af004.html 第一次写博客&#xff0c;有点小鸡冻&#xff0c;小二&#xff0c;先来盘花生&#xff0c;半斤牛肉&#xff0c;一斤白酒&#xff0c;容我压压惊。。。 心得&#xff1a; 1.多看优秀的代码&#x…

c++ backtrace的简单实用案例

写作目的&#xff1a;由于搜backtrace时&#xff0c;一堆又生又涩的原理解析&#xff0c;让脑容量只有几KB的我很是头大&#xff0c;所以写了一个简单实用的案例&#xff0c;话不多说&#xff0c;上菜&#xff01; backtrace是回溯的意思&#xff0c;就是将程序在堆栈上运行的…

valgrind memleak asan gperftools等内存泄漏工具对比总结

写作目的&#xff1a;检查内存泄露的工具网上有很多&#xff0c;结合自己在项目中的使用&#xff0c;对比一下如下几个内存泄露的工具。 特性/工具valgrindmemleakasangperftools原理独立的内存医生记录malloc和freegcc自带是个工具包功能灰常全面单一单一可视化占用内存超级大…

正宗的宏定义printf

写作目的&#xff1a;找了网上大佬的一系列解答&#xff0c;再结合自己的实际经验&#xff0c;总结一下宏定义printf。 printf就是医生的听诊器&#xff0c;可以将函数运行的值打印出来&#xff0c;从而得知逻辑是否正确&#xff0c;哪个值出了问题&#xff0c;当然也可以用GD…

gtest的个人经验总结

前言&#xff1a;根据网上满山遍野的gtest介绍&#xff0c;再结合自己的项目经验&#xff0c;做一下个人总结。 1.应用场景 gtest是google的一款代码检查工具&#xff0c;功能确实很强大&#xff0c;但也要看用在什么地方了。 a.对一个不太成熟的模块&#xff0c;需要gtest&…