js面试总结3

时间:2019-09-20
本文章向大家介绍js面试总结3,主要包括js面试总结3使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

异步和单线程

题目:

1.同步和异步的区别?

2.一个关于setTimeout的笔试题。

3.前段使用异步的场景有哪些?

什么是异步?

 console.log(100)
            setTimeout(function() {
                console.log(200)
            }, 1000);
            console.log(300)

何时需要异步?

可能发生等待的时候我们需要异步

在等待的过程中不能像alert一样阻塞程序运行

因此在等待的情况下需要异步

前段使用异步的场景

定时任务:setTimeout,setInverval,

网络的请求:ajax请求,动态<img>加载。

事件绑定

单线程:

什么是单线程?

一次只能干一件事,一件事一次一次来

 console.log(100)
        setTimeout(function() {
            console.log(200)
        })
        console.log(300)

执行的过程:

执行第一行打印100;

执行setTimeout后,传入setTimeout的函数会被暂存起来,不会立即执行,(单线程的特点,不能同时执行两件事,)

执行最后一行,打印300

待所有程序执行完,处于空闲状态时,会立马看到有没有暂存起来的要执行。

发现暂存起来的setTimeout中的函数无需等待时间,就立即来过来执行

日期:

题目:

获取2017-06-10格式的日期。

获取随机数,要求长度是一致的字符窜的长度。

写一个能遍历的对象和数组的通用的forEach函数

获取随机数Math.random()

数组API

forEach: 遍历所有元素

every:判断所有元素是否都符合条件

some:判断是否至少有一个元素符合条件

sort:排序

map:对元素重新组装,生成新的数组,

filter:过滤符合条件的元素

对象API

主要的就是for in 

代码的实现:

日期:

 var dt  = new Date()
        console.log(dt)
        console.log(dt.getTime())
        console.log(dt.getUTCFullYear())
        console.log(dt.getMonth())
        console.log(dt.getDate())

math.random()

for Each和数组的API,对象的API

 function formatDate(dt){
            if(!dt){
                dt = new Date()
            }
            var year = dt.getFullYear()
            var month = dt.getMonth() + 1
            var date = dt.getDate()
            if (month<10){
                month = 0 + month
            }
            if (date < 10){
                date = 0 + date
            }

            return year + '-' + month + '-' + date
        }


        console.log(  formatDate(new Date()))
随机数
var random = Math.random()
        random = random + '0000000000'
        random = random.slice(0,10)
        console.log(random)

原文地址:https://www.cnblogs.com/qijiang123/p/11558491.html