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下载.解析.执行完毕后才开始继续并行下 ...
随机推荐
- jQuery笔记(事件绑定和解绑)
事件绑定一.bind()1.传两参数 第一个参数是事件名,第二个是事件处理函数2.传键值对(对象) <body> <input type="button" val ...
- 杭电多校第一场-M-Code
题目描述 After returning with honour from ICPC(International Cat Programming Contest) World Finals, Tom ...
- C# 简单的统计指定几个字符组合的所有结果
比如 用 a,b,c,d 4个字符组成一个8个长度的字符串,问一共有多少可能,应该有4的8次方种,用代码简单实现 private string[] AAA() { string[] cs = { &q ...
- BCZM : 1.9
有n个学生参加见面会,分别对m个研究组中的若干个感兴趣,为了满足所有学生的要求,每个学生都能参加自己感兴趣的见面会,如果每个见面会的时间为t,如何安排才能使得所有见面会的总时间最短? 分析: 先建立模 ...
- jq-demo-tab切换
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Java位运算总结
关于位运算,以前也见过,搜过,当时会用了,过后就忘了,今天好好学习一遍,然后整理一下. Java中的位运算,涉及到计算机的二进制,位用bit表示,1Byte=8bit,根据各种基本数据类型占用的字节空 ...
- 【luoguP3701】「伪模板」主席树
description byx和诗乃酱都非常都非常喜欢种树.有一天,他们得到了两颗奇怪的树种,于是各自取了一颗回家种树,并约定几年后比一比谁种出来的树更加牛x. 很快,这棵树就开花结果了.byx和诗乃 ...
- Linux基本使用命令
一.常用命令归纳分类 课外网站 http://man.linuxde.net/ http://www.jb51.net/linux/ http ...
- php 即点即改
html代码 <td><span id="list_order">{$vo.list_order}</span> </td> < ...
- thinkphp 模板文件
因为模板文件中可能会泄露数据表的字段信息,有两种方法可以保护你的模板文件不被访问到: 第一种方式是配置.htaccess文件,针对Apache服务器而言. 大理石平台厂家 把以下代码保存在模块的模板目 ...