ATG精准科技-前端面试题
1.请写出以下结果
for(var i=0; i<10; i++){
setTimeout(function () {
console.log(i)
},10)
}
结果:打印10次190
解析:
考察的是作用域和异步的知识点,这是js特有的知识点,其它程序语言没有
a:遇到异步代码,程序不等待,而将代码继续执行下去,即for循环先执行完,然后再过来执行setTime里的回调,此时i已被累加到10
b:由于js语言没有块级作用域,故而定时器内的的i就是外部的i的值,所以定时器内部打印的那个i,早就是10了
2.请依次写下下列执行结果
var num=10;
var obj={
num:8,
inner:{
num:6,
print:function () {
console.log(this.num);
}
}
} //-----------解析-----------
num=888
//this代表上下文环境,谁调用,谁就是this,打印6,无可争议,
obj.inner.print(); //全局调用,此时的fn函数内的this就被定向到window全局了,全局之中的num为10,后来被改成了888
var fn=obj.inner.print;
fn();// //这个跟obj.inner.print()没区别
(obj.inner.print)();// //在全局下运行此函数,内部this指向的则为window
// 可以化解
// (obj.inner.print = function () {console.log(this.num);})()
// 再化简
// (function () {console.log(this.num);})() 注意知识点(xxx=123)会返回123
//会发现等价于var fn=obj.inner.print; fn()
(obj.inner.print = obj.inner.print)();//
3.请写出下列结果
var a=1
b=a
a=2
console.log(b,a) var arr=[0,1]
var arrs=arr
arr[0]=1
console.log(arr,arrs)
结果:1,2
解析:考察基本数据类型和引用数据类型的拷贝,也就是深拷贝与浅拷贝,
a 基本类拷贝是直接复制一份在栈内存,以后两者互不影响
b 引用类型拷贝,是指针指向同一个堆内存地址,共享同一个值,相互关联
4 请写出一下代码执行结果
var z=10;
function foo() {
console.log(z)
} (function(funArg) {
console.log(z)
})(foo)
结果:10
解析:后边那个自执行代码直接打印全局z的值,完事了,至于传参的那个函数,完全是干扰视觉
5 请写出以下结果
function fun(n,o) {
console.log(o)
return {
fun:function(m){
return fun(m,n)
}
}
}
var a=fun(0); a.fun(1); a.fun(2); a.fun(3)
var b=fun(0).fun(1).fun(2).fun(3)
var c=fun(0).fun(1); c.fun(2);c.fun(3)
结果:一看题,就尼玛不想看了,长-乱
6 请输出一下结果,并解释原因
function test() {
console.log(a) //undefined,js语言特性(bug),声明提升,赋值不会提升
console.log(foo()) //2 js语言特性(bug),声明式函数存在提升
var a=1;
function foo() {
return 2
}
}
test()
7 一行代码实现一下数组去重
var arr=[1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5] //想考我es6是吧,太简单,es新增数据集合类型set,其特性就是不重复. 再结合es6给数组类新增的静态方法from构建新数组
console.log(Array.from(new Set(arr)))
8 请输出一下结果
var a={n:1}
var b=a; // js的赋值运算顺序是从右往左的,
// 不过由于“.”是优先级最高的运算符,所以这行代码先“计算”了a.x
// 这时候发生了这个事情——a指向的对象{n:1}新增了属性x(虽然这个x是undefined的)
// 然后接下来a={n:2} 使得a被重新指向堆内存中新的对象地址
//此时a和b是完全无关联的 对象
// 具体可参考:https://blog.csdn.net/yang295242361/article/details/78149872
a.x=a={n:2}
console.log(a.x) //undefined
console.log(b.x) //Object
9 vue中 请写出一种实现无缝轮播的组件(思路)
请百度
10 请简述vue声明周期
可以总共分为8个阶段:创建前/后, 载入前/后,更新前/后,销毁前/销毁后
简介常用的3个
created: 实例已经创建完成之后调用,在这一步,实例已经完成数据观测, 属性和方法的运算, watch/event事件回调. 然而, 挂载阶段还没有开始, $el属性目前还不可见
mounted: el被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。
activated: keep-alive组件激活时调用
ATG精准科技-前端面试题的更多相关文章
- 金三银四,磨砺锋芒;剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上
金三银四,磨砺锋芒:剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上 引言 元旦匆匆而过,2020年的春节又接踵而来,大家除了忙的提着裤子加班.年底冲冲冲外,还有着对于明年的迷茫和期待! ...
- 前端面试题2016--HTML
本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的!不可能的!不可 ...
- 前端面试题 之 JavaScript
昨天我们一起分享了关于html和css的面试题<前端面试题之Html和CSS>,今天我们来分享关于javascript有关的面试题.我面试的时候最害怕面试官问我js了,因为我真心不擅长这个 ...
- 【web前端面试题整理02】前端面试题第二弹袭来,接招!
前言 今天本来准备先了解下node.js的,但是,看看我们一个小时前与一个小时后的差距: 既然如此,我们继续来搜集我们的前端面试题大业吧!!! 特别感谢玉面小肥鱼提供哟,@玉面小飞鱼 题目一览 Jav ...
- 各大互联网公司前端面试题(js)
对于巩固复习js更是大有裨益. 初级Javascript: 1.JavaScript是一门什么样的语言,它有哪些特点? 没有标准答案. 2.JavaScript的数据类型都有什么? 基本数据类型 ...
- 前端面试题(html篇)
前端面试题(html篇)
- 2016最全的web前端面试题及答案整理
面试web前端开发,不管是笔试还是面试,都会涉及到各种专业技术问题,今天小编整理了一些常见的web前端面试题及答案,希望对大家有所帮助. 1.常用那几种浏览器测试?有哪些内核(Layout Engin ...
- 常见前端面试题之HTML/CSS部分
转自http://www.cnblogs.com/jscode/archive/2012/07/10/2583856.html Doctype是什么?如何触发严格模式与混杂模式模式?区分它们有何意义? ...
- 史上最全前端面试题(含答案)-A篇
HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所 ...
随机推荐
- 如何在Computer下添加System Folder(续)
之前的一篇博客如何在Computer下添加System Folder里提到需要每次都使用一个新的guid,否则再次在"HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...
- Amazon ec2 改成密码登录方式
sudo passwd rootsu rootvi /etc/ssh/sshd_config"# PasswordAuthentication yes" uncommentsbin ...
- 改变presentModalView大小
rc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; rc.modalPresentationStyle = UIModalP ...
- VC++ 学习笔记2 列表框添加字符串
向列表框添加字符串 现在知道两种方法 方法一:直接在需要添加内容地方输入下面代码 IDC_LIST1为需要添加列表框的ID号 改为你的 ((CListBox*)GetDlgItem(IDC_LIST ...
- 【BZOJ3691】游行 费用流
[BZOJ3691]游行 Description 每年春季,在某岛屿上都会举行游行活动.在这个岛屿上有N个城市,M条连接着城市的有向道路.你要安排英雄们的巡游.英雄从城市si出发,经过若干个城市,到城 ...
- springMVC访问 WEB-INF 下的 jsp 和 html
配置freemarker,记得加上jar包 <?xml version="1.0" encoding="UTF-8"?> <beans xml ...
- 爬虫之Scrapy详解
性能相关 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢. import requests def fetch_async(url): ...
- TFS二次开发07——锁定(Lock)和解锁(UnLock)
一:锁定(Lock) string tpcURL = "http://192.168.83.62:8080/"; TfsTeamProjectCollection tpc = ne ...
- python----题库(一)
1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py #必须在首行有 #!/usr/bin/env pyth ...
- 基于Solr和Zookeeper的分布式搜索方案的配置
1.1 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候 ...