前端笔试题记录【1】 + JS内置对象复习

目录

一、海康威视

二、微众银行

三、长沙兴盛优选  

四、复习JS的内置对象

1.Math对象

2.Date对象

Array对象

String对象


一、海康威视

单选题

多选题

两道编程题

1.冒泡排序

2.力扣172

二、微众银行

11个关于前端的选择题 45分,隐约记得的:

内联元素:即inline元素

yield

类的唯一标识是原型,构造函数时公共标识

console.log(Math.floor(Math.abs(Math.min(-123.45, 123.45, 32))));

submit是触发了什么?

三道编程题 55分

第一个题目是把一维数组转换成树状结构
第二个是数组去重,数组里面包含数组,对象,字符串

第三个输出计算两个日期之间的有效工作日(考虑闰年)

 function rangeDay(day1, day2) {
            const result = []
            const dayTimes = 24 * 60 * 60 * 1000 //一天有多少ms
            const startTime = day1.getTime() // 获得Date总的毫秒数(时间戳) 
            const range = day2.getTime() - startTime
            let total = 0

            while (total <= range && range > 0) {
                result.push(new Date(startTime + total).toLocaleDateString().replace(/\//g, '-'))
                total += dayTimes
            }
            return result
        };
        console.log(rangeDay(new Date("2000-2-27"), new Date("2000-3-02")))
    </script>

三、长沙兴盛优选  

共11道题

单选+多选两个(this指向、html)+三道简答+一道编程

单选:html协议在什么层、如何区分js运行在node环境下还是本地浏览器下、什么属性会加速GPU等

三道简答题

  • 移动web开发跨平台技术有那些,各自特点,框架
  • TCP面向连接和UDP面向无连接,链接指什么,怎么理解有链接和无连接
  • JS什么场景下使用字符串乘法

一道编程

leetcode179,输出数组最大

<script>
        var largestNumber = function(nums) {
            const res = nums.sort((a, b) => `${b}${a}` - `${a}${b}`).join('');
            return res.startsWith('0') ? '0' : res;
        };
        console.log(largestNumber([3, 30, 34, 5, 9]));
 </script>

四、复习JS的内置对象

1.Math对象

Math.PI

Math.floor

Math.ceil

Math.round  注意:console.log(Math.round(-1.5)); // 这个结果是 -1

Math.abs

Math.max()

Math.min()

Math.random()  0<=x<1

console.log(Math.PI); // 一个属性 圆周率
console.log(Math.max(1, 99, 3)); // 99
console.log(Math.max(-1, -10)); // -1
console.log(Math.max(1, 99, 'pink老师')); // NaN
console.log(Math.max()); // -Infinity

// 1.绝对值方法
console.log(Math.abs(1)); // 1
console.log(Math.abs(-1)); // 1
console.log(Math.abs('-1')); // 隐式转换 会把字符串型 -1 转换为数字型console.log(Math.abs('pink')); // NaN 

// 2.三个取整方法
// (1) Math.floor()   地板 向下取整  往最小了取值
console.log(Math.floor(1.1)); // 1
console.log(Math.floor(1.9)); // 1

// (2) Math.ceil()   ceil 天花板 向上取整  往最大了取值
 console.log(Math.ceil(1.1)); // 2
 console.log(Math.ceil(1.9)); // 2

// (3) Math.round()   四舍五入  其他数字都是四舍五入,但是 .5 特殊 它往大了取  
console.log(Math.round(1.1)); // 1
console.log(Math.round(1.5)); // 2
console.log(Math.round(1.9)); // 2
console.log(Math.round(-1.1)); // -1
console.log(Math.round(-1.5)); // 这个结果是 -1

 生成随机整数的方法

 function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
 console.log(getRandom(2, 10));

//应用
var arr = ['张三', '张三丰', '张三疯子', '李四', '李思思', 'pink老师'];
 console.log(arr[0]);
 console.log(arr[getRandom(0, arr.length - 1)]);

2.Date对象

<script>
        // Date() 日期对象  是一个构造函数 必须使用new 来调用创建我们的日期对象
        var arr = new Array(); // 创建一个数组对象
        var obj = new Object(); // 创建了一个对象实例
        // 1. 使用Date  如果没有参数 返回当前系统的当前时间
        var date = new Date();
        console.log(date);//Tue May 17 2022 20:21:42,此时的时间
        // 2. 参数常用的写法  数字型  2022, 4, 17)  或者是 字符串型 '2019-10-1 8:8:8'
        var date1 = new Date(2022, 4, 17);
        console.log(date1); // 返回的是 Tue May 17 2022 00:00:00  
        var date2 = new Date('2019-10-1 8:8:8');
        console.log(date2); //Tue Oct 01 2019
 </script>

 格式化日期年月日,注意月份需要加1

 <script>
        // 格式化日期 年月日 
        var date = new Date();
        console.log(date.getFullYear()); // 返回当前日期的年  
        console.log(date.getMonth() + 1); // 月份 返回的月份小1个月   记得月份+1 呦
        console.log(date.getDate()); // 返回的是 几号
        console.log(date.getDay()); // 3  周一返回的是 1 周六返回的是 6 但是 周日返回的是 0
      
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var dates = date.getDate();
        var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
        var day = date.getDay();
        console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);
</script>

格式化日期时分秒

 <script>
        // 格式化日期 时分秒
        var date = new Date();
        console.log(date.getHours()); // 时
        console.log(date.getMinutes()); // 分
        console.log(date.getSeconds()); // 秒
        // 要求封装一个函数返回当前的时分秒 格式 08:08:08
        function getTimer() {
            var time = new Date();
            var h = time.getHours();
            h = h < 10 ? '0' + h : h;
            var m = time.getMinutes();
            m = m < 10 ? '0' + m : m;
            var s = time.getSeconds();
            s = s < 10 ? '0' + s : s;
            return h + ':' + m + ':' + s;
        }
        console.log(getTimer());//打印的是当前的时:分:秒
    </script>

时间戳

 // 获得Date总的毫秒数(时间戳)  不是当前时间的毫秒数 而是距离1970年1月1号过了多少毫秒数
  // 1. 通过 valueOf()  getTime()
  var date = new Date();
  console.log(date.getTime());
  console.log(date.valueOf()); // 就是 我们现在时间 距离1970.1.1 总的毫秒数

  // 2. 简单的写法 (最常用的写法)
  var date1 = +new Date(); // +new Date()  返回的就是总的毫秒数
  console.log(date1);

  // 3. H5 新增的 获得总的毫秒数
  console.log(Date.now());

倒计时效果

 // 倒计时效果
        // 1.核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时 ,但是不能拿着时分秒相减,比如 05 分减去25分,结果会是负数的。
        // 2.用时间戳来做。用户输入时间总的毫秒数减去现在时间的总的毫秒数,得到的就是剩余时间的毫秒数。
        // 3.把剩余时间总的毫秒数转换为天、时、分、秒 (时间戳转换为时分秒)
        // 转换公式如下: 
        //  d = parseInt(总秒数/ 60/60 /24);    //  计算天数
        //  h = parseInt(总秒数/ 60/60 %24)   //   计算小时
        //  m = parseInt(总秒数 /60 %60 );     //   计算分数
        //  s = parseInt(总秒数%60);            //   计算当前秒数
        function countDown(time) {
            var nowTime = +new Date(); // 返回的是当前时间总的毫秒数
            var inputTime = +new Date(time); // 返回的是用户输入时间总的毫秒数
            var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数 
            var d = parseInt(times / 60 / 60 / 24); // 天
            d = d < 10 ? '0' + d : d;
            var h = parseInt(times / 60 / 60 % 24); //时
            h = h < 10 ? '0' + h : h;
            var m = parseInt(times / 60 % 60); // 分
            m = m < 10 ? '0' + m : m;
            var s = parseInt(times % 60); // 当前的秒
            s = s < 10 ? '0' + s : s;
            return d + '天' + h + '时' + m + '分' + s + '秒';
        }
        console.log(countDown('2022-5-17 15:26:00'));

Array对象

String对象

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值