美文网首页
前端工作常用小技巧

前端工作常用小技巧

作者: wxyzcctn | 来源:发表于2021-09-18 17:48 被阅读0次

    1. JS 获取零点时间

    // 获取当天时间戳
    var s1 = new Date(new Date().toLocaleDateString()).getTime()
    // 获取当天时间
    var s2 = new Date(new Date(new Date().toLocaleDateString()).getTime());
    // 获取本周第一天
    var day = new Date().getDay() || 7;
    var weekStart = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 1 - day);
    // 获取本月第一天
    var MonthFirstDay = new Date(new Date().getFullYear(), new Date().getMonth(), 1);
    // 获取本年第一天
    var MonthFirstDay = new Date(new Date().getFullYear(), 0, 1);
    

    2. span标签中的内容过长显示...,鼠标浮上显示全部内容

    <span class="test" title="hello world">11111111111111111</span>
    
    .test {
      border: 1px solid red;
      width: 80px;
      display: inline-block;
      overflow: hidden;
      text-overflow: ellipsis;
      -o-text-overflow: ellipsis;
      white-space: nowrap;
    }
    

    3. 生成数组

    // 生成全false的二维矩阵
    var canretchA = Array.from({ length: m }, () => {
            return Array.from({ length: n }, () => false)
        })
    // 生成0-9的数组
    var orgList = Array.from({length:10},(val,index)=>index);
    

    4. 在数组中指定位置删除/添加元素

    // 删除的是index为1的那个元素,删除之后的arr为[0,2,3,4]
    var arr = [0,1,2,3,4];
    arr.splice(1,1);    // arr: [0, 2, 3, 4]
    // 在index为1处添加元素5
    var brr = [0,1,2,3,4]
    brr.splice(1,0,5)   // brr: [0, 5, 1, 2, 3, 4]
    

    5. vue在data中没有声明的object变量需要在代码中动态加入可以使用

    this.$set(this.$data, 'rules', copyRules);
    // rules为data中的对象,copyRules为需要更新的对象内容,这样更新的内容会动态的渲染到网页上
    

    6. substr()与substring()的区别

    s.substr(i,j)取的是s从i开始,长度为j的子字符串
    s.substring(i,j)取的是s从i开始,到j结束的子字符串

    7. vue通过路由跳转界面

    this.$router.push({
                    // 在路由中设置的name
                    name: 'searchFace',
                    // 跳转路由时所带的参数
                    params: {
                        tabName: this.queryIndex,
                        imgUrl: cardUrl
                    }
                });
    // 在新的窗口打开
    window.open(href, '_blank')
    

    8. vue获取url查询字符串

                // 获取url查询字符串
                let searchObj = {};
                if (!window) {
                    return;
                }
                let str = window.location.hash || '';
                if (str && str.split('?')[1]) {
                    let queryArray = str.split('?')[1].split('&');
                    queryArray.map(query => {
                        let searchItem = query.split('=');
                        if (searchItem.length > 1) {
                            searchObj[searchItem[0]] = searchItem[1];
                        }
                    });
                }
    

    9. 使用flex布局时,父元素设置为

    display: flex
    

    而某个子元素不设置宽度,而其中的内容很多,并且设置

    flex:1
    

    此时该元素的宽度会无超出父元素,如要保证元素宽度在父元素内,就需要设置width

    10. 转换时间格式

    function(dateTime, formatType) {
            // 输入dateTime: 时间戳,可以是字符串
            // 输出: 格式化时间,依赖Date转化
            var v = '';
            if (dateTime) {
                if (isNaN(Number(dateTime))) {
                    return '';
                }
                dateTime = Number(dateTime);
    
                var date = new Date(dateTime);
                // var format = 'yyyy-MM-dd hh:mm:ss';
                var format = formatType;
                if (typeof formatType === 'undefined') {
                    format = 'yyyy-MM-dd hh:mm:ss';
                }
                // sonar 恒为object
                // if (typeof date === 'string' || typeof date !== 'object') {
                //     return;
                // }
                var year = date.getFullYear();
                var month = date.getMonth() + 1;
                var day = date.getDate();
                var hour = date.getHours();
                var minute = date.getMinutes();
                var second = date.getSeconds();
                // var weekDay = date.getDay();
                var ms = date.getMilliseconds();
                var weekDayString = '';
    
                // if (weekDay === 1) {
                //     weekDayString = window.vm.$t('unknow');
                // } else if (weekDay === 2) {
                //     weekDayString = window.vm.$t('Tuesday');
                // } else if (weekDay === 3) {
                //     weekDayString = window.vm.$t('Wednesday');
                // } else if (weekDay === 4) {
                //     weekDayString = window.vm.$t('Thursday');
                // } else if (weekDay === 5) {
                //     weekDayString = window.vm.$t('Friday');
                // } else if (weekDay === 6) {
                //     weekDayString = window.vm.$t('Saturday');
                // } else if (weekDay === 7) {
                //     weekDayString = window.vm.$t('Sunday');
                // }
    
                v = format;
                // Year
                v = v.replace(/yyyy/g, year);
                v = v.replace(/YYYY/g, year);
                v = v.replace(/yy/g, (year + '').substring(2, 4));
                v = v.replace(/YY/g, (year + '').substring(2, 4));
    
                // Month
                var monthStr = '0' + month;
                v = v.replace(/MM/g, monthStr.substring(monthStr.length - 2));
    
                // Day
                var dayStr = '0' + day;
                v = v.replace(/dd/g, dayStr.substring(dayStr.length - 2));
    
                // hour
                var hourStr = '0' + hour;
                v = v.replace(/HH/g, hourStr.substring(hourStr.length - 2));
                v = v.replace(/hh/g, hourStr.substring(hourStr.length - 2));
    
                // minute
                var minuteStr = '0' + minute;
                v = v.replace(/mm/g, minuteStr.substring(minuteStr.length - 2));
    
                // Millisecond
                v = v.replace(/sss/g, ms);
                v = v.replace(/SSS/g, ms);
    
                // second
                var secondStr = '0' + second;
                v = v.replace(/ss/g, secondStr.substring(secondStr.length - 2));
                v = v.replace(/SS/g, secondStr.substring(secondStr.length - 2));
    
                // weekDay
                v = v.replace(/E/g, weekDayString);
            }
    
            return v;
        },
    

    11. 判断一个值是否为空值

            isEmpty(value){
                return (
                    value === undefined ||
                    value === null ||
                    (typeof value === "object" && Object.keys(value).length === 0) ||
                    (typeof value === 'string' && value.trim().length === 0)
                )
            }
    

    12. JavaScript向上取整,向下取整,四舍五入

    // 只保留整数(丢弃小数部分)
    parseInt('' + 2.123) // 2
    // 向下取整
    Math.floor(2.123) // 2
    // 向上取整
    Math.ceil(2.123) // 3
    // 四舍五入
    Math.round(2.123) // 2
    Math.round(2.567) // 3
    // 绝对值
    Math.abs(-1) // 1
    // 返回两者中的较大值
    Math.max(1,2) // 2
    // 返回两者中的较小值
    Math.min(1,2) // 1
    // 生成(0-1)的随机数
    Math.random();
    

    13. 获取上一个页面的url

    // 使用:vue-router的beforeRouterEnter钩子,一个路由守卫
    <script>
    export default {
      data() {
        return {
          label: "",
        };
      },
      beforeRouteEnter(to, from, next) {
        next((vm) => {
          vm.label = '标签'
          console.log('来到的界面路由',to)
          console.log('目标界面上一界面路由',from)
        });
      },
      methods: {
        goTo() {
    
        },
      },
    };
    </script>
    

    使用document.referrer

    相关文章

      网友评论

          本文标题:前端工作常用小技巧

          本文链接:https://www.haomeiwen.com/subject/khsrsltx.html