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)
  • 相关阅读:
    python数据类型--字符串
    Cannot open include file: 'afxcontrolbars.h': No such file or directory
    关于找不到tbb_debug.dll解决办法
    Android fill_parent、wrap_content和match_parent的区别
    多个摄像头同步工作【转】
    如何查找openCV函数源代码[转]
    Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)[转]
    CvCaptureFromCam
    OpenCV与相机的关系[转]
    10亿以内和987654互质正整数的和[转自深圳-冒泡]
  • 原文地址:https://www.cnblogs.com/qijiang123/p/11558491.html
Copyright © 2011-2022 走看看