zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Django之信号
    Git协同开发操作+GitHub
    Django之auth组件
    Django之contenttyes组件
    Django之缓存
    Django之请求数据格式
    Django REST framework之渲染器组件以及阅读源码流程
    DJango REST framework之分页组件以及对源码的阅读
    Django REST framework之视图路由组件以及分层分析
    Leetcode103. Binary Tree Zigzag Level Order Traversal二叉树的锯齿形层次遍历
  • 原文地址:https://www.cnblogs.com/qijiang123/p/11558491.html
Copyright © 2011-2022 走看看