javascript模块化教程学习笔记08

本小妞迷上赌 提交于 2020-02-11 00:10:56

今天学了一个计算器,

记录一下里面的一些知识点和内容。

css:

  两张图片,分别设置了button的背景不同的样式:

         

 

 

 

     可能看不清楚,但是确实第二张图片的按键有立体感一些,区别是它用到了:

          linear-gradient(hsla(0,0%,100%,.2),transparent)

          虽然是一个简单的颜色渐变,但是挺百搭的。

    hsla(), 知道,但是从来没用过。它可以表现出所有颜色。

        H是色度,取值在0度~360度之间,0度是红色,120度是绿色,240度是蓝色。360度也是红色。

        S是饱和度,是色彩的纯度,是一个百分比的值,取值在0%~100%,0%饱和度最低,100%饱和度最高

        L是亮度,也是一个百分比值,取值在0%~100%,0%最暗,100%最亮。

        A是不透明度,取值在0.0~1.0,0.0完全透明,1.0完全不透明。 

    transparent, 查了下,是全透明黑色(black)的速记法,即一个类似rgba(0,0,0,0)这样的值。

      来一张transparent和black的对比:

     

          丑爆了。

js:

  我直接贴过来

    有:    1. .replace() ,  2. .eval()  3. .search()  4.  .toFixed()  5.srting到number的类型转换(除了(1)parseInt()、parseFloat()    (2)Number() 这里用到了一个+,上图:

   

//获取元素//监听点击事件
//if 点击事件对象为BUTTON时
    //if 上次结果为“计算错误”且点击对象不为AC
            //返回
        //else if 点击对象为AC
            //重置
        //else if 点击对象为CE
            //删除
        //else if 点击对象为=
            //计算并显示结果
           else if (btnValue == '='){
              var text = result.value
              if (!text){
                  // 屏幕无任何字符,直接返回
                return
              }
              else {
                // 如果屏幕中有x,替换为计算机的*,再使用eval()运算值
                // .replace()中,//是正则界定符,\是转义,g代表全局匹配(否则只匹第一个),
                            // i代表忽略大小写,
                    text = text.replace(/x/g,'*')
                    var calcResult 
                    try{
                        // 缓存计算结果,eval()是一个不精确的计算方法
                        calcResult = eval(text)+""
                        // 判断结果中是否有小数点
                            // search()中,\为转义,返回搜索字符所在的位置数字,如果没有返回-1
                        if (calcResult.search(/\./) > 0){
                            // 如果有小数点,设置hasDec为真
                            hasDec = true
                            // 如果小数点后超过5位则只保留5位
                            //   .split('') 比如1.25.split('.'),只会产生两个数组
                                //1.25.split('.')[0]就是小数点前,为1,1.25.split[1]就是小数点后,为25,
                            //calcResult为字符串类型,+calcResult为数字类型
                                //由于.toFixed只能四舍五入数字类型,所以必须先转换
                                    //.toFixed()是一个不精确的四舍五入小数位数的方法
                            if (calcResult.split('.')[1].length > 5 ){
                                calcResult = (+calcResult).toFixed(5)
                            }
                        }
                    //在屏幕上显示计算结果
                    result.value = calcResult
                    count = result.length
                    } catch(e){
                        result.value = '计算错误'
                    }
            }
    //else 点击非数字或非小数点时,处理小数点,动态显示用户的按键
            

差不多就这些。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!