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)
js面试总结3的更多相关文章
- 前端js面试中的常见的算法问题
虽说我们很多时候前端很少有机会接触到算法.大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面.实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的.如果将来当我们面对较为复杂 ...
- js 面试的坑
JavaScript事件属性event.target <!DOCTYPE html> <html> <head> <meta charset="UT ...
- Vue + Js 面试宝典
https://github.com/rohan-paul/Awesome-JavaScript-Interviewshttps://github.com/nieyafei/front-end-int ...
- 46、VUE + JS 面试宝典
https://github.com/rohan-paul/Awesome-JavaScript-Interviewshttps://github.com/nieyafei/front-end-int ...
- 一些js面试高频知识点的总结
第一部分:Object Prototypes (对象原型) (1)定义一个方法,要求传入一个string类型的参数,然后将string的每个字符间加个空格返回,例如: spacify('hello w ...
- [译]Node.js面试问与答
原文: http://blog.risingstack.com/node-js-interview-questions/ 什么是error-first callback? 如何避免无休止的callba ...
- javascript笔记——js面试问题
1:javascript中的变量提升(先使用再声明,js中的函数也存在函数提升) 2:js中的事件捕获和事件冒泡(是两个相反的过程) 3:js中的动画队列(比如animate动画没有在点击的时候阻止正 ...
- 【Javascript】搞定JS面试——跨域问题
什么是跨域? 为什么不能跨域? 跨域的解决方案都有哪些(解决方法/适用场景/get还是post)? 一.什么是跨域? 只要协议.域名.端口有任何一个不同,就是跨域. ...
- js 面试知识点
基础 原型 原型链 作用域 闭包 异步 单线程 JS API DOM操作 AJAX 事件绑定 开发环境 版本管理 模块化 打包工具 运行环境 页面渲 ...
- JS面试题目
哪些地方会出现css阻塞,哪些地方会出现js阻塞? js的阻塞特性: 所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等.直到JS下载.解析.执行完毕后才开始继续并行下 ...
随机推荐
- JS window对象取消计时器clearInterval() clearInterval() 方法可取消由 setInterval() 设置的交互时间。
取消计时器clearInterval() clearInterval() 方法可取消由 setInterval() 设置的交互时间. 语法: clearInterval(id_of_setInterv ...
- 基于nginx结合openssl实现https
[root@localhost ~]#systemctl stop firewalld[root@localhost ~]#setenforce 0[root@localhost ~]#iptable ...
- fedora28 安装automake
yum install automake yum install hg //版本管理
- 普通浏览器实现点击打开微信app
给予点击事件,然后调用以下方法即可(我这用的是jq的点击): $(function() { Cz.Alert().success({text: '请返回公众号查看充值结果'}); $(".a ...
- Tools: windbg 使用指南
windbg使用 符号表C:\Symbols; SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols 系统变量_NT_SYMBOL_PAT ...
- 了解GTIN小记
GTIN为条形码,即"全球贸易项目代码"(Global Trade Item Number ) GTIN用作识别商品品项的全球性独一编码,是编码系统中应用最广泛的标识代码. GTI ...
- dubbo入门之异步调用
dubbo默认使用同步的方式调用.但在有些特殊的场景下,我们可能希望异步调用dubbo接口,从而避免不必要的等待时间,这时候我们就需要用到异步.那么dubbo的异步是如何实现的呢?下面就来看看这个问题 ...
- php 使用fseek指针读取大文件日志
function text($fp,$n,$b=5) { if($n>0){ $p = $n+1; $lines = array(); while(count($lines)< =$n){ ...
- ASCII 对应表
{ Bin (二进制) Oct (八进制) Dec (十进制) Hex (十六进制) 缩写/字符 解释 0000 0000 00 0 0x00 NUL(null) 空字符 0000 0001 01 1 ...
- Scrapy的初体验
上一节安装了python2和python3的开发环境 首先第一步:进入开发环境,workon article_spider 进入这个环境: 安装Scrapy,在安装的过程中出现了一些错误:通常这些错误 ...