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精准科技-前端面试题的更多相关文章

  1. 金三银四,磨砺锋芒;剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上

    金三银四,磨砺锋芒:剑指大厂,扬帆起航(2020年最全大厂WEB前端面试题精选)上 引言 元旦匆匆而过,2020年的春节又接踵而来,大家除了忙的提着裤子加班.年底冲冲冲外,还有着对于明年的迷茫和期待! ...

  2. 前端面试题2016--HTML

    本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的!不可能的!不可 ...

  3. 前端面试题 之 JavaScript

    昨天我们一起分享了关于html和css的面试题<前端面试题之Html和CSS>,今天我们来分享关于javascript有关的面试题.我面试的时候最害怕面试官问我js了,因为我真心不擅长这个 ...

  4. 【web前端面试题整理02】前端面试题第二弹袭来,接招!

    前言 今天本来准备先了解下node.js的,但是,看看我们一个小时前与一个小时后的差距: 既然如此,我们继续来搜集我们的前端面试题大业吧!!! 特别感谢玉面小肥鱼提供哟,@玉面小飞鱼 题目一览 Jav ...

  5. 各大互联网公司前端面试题(js)

    对于巩固复习js更是大有裨益.    初级Javascript: 1.JavaScript是一门什么样的语言,它有哪些特点? 没有标准答案. 2.JavaScript的数据类型都有什么? 基本数据类型 ...

  6. 前端面试题(html篇)

    前端面试题(html篇)

  7. 2016最全的web前端面试题及答案整理

    面试web前端开发,不管是笔试还是面试,都会涉及到各种专业技术问题,今天小编整理了一些常见的web前端面试题及答案,希望对大家有所帮助. 1.常用那几种浏览器测试?有哪些内核(Layout Engin ...

  8. 常见前端面试题之HTML/CSS部分

    转自http://www.cnblogs.com/jscode/archive/2012/07/10/2583856.html Doctype是什么?如何触发严格模式与混杂模式模式?区分它们有何意义? ...

  9. 史上最全前端面试题(含答案)-A篇

    HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所 ...

随机推荐

  1. ASP.NET MVC View使用Conditional compilation symbols

    由于View(.cshtml)的运行时编译关系,在项目级别中定义的symbols是无法被直接使用的.需要在Web.config中添加compilerOptions(在View目录下的Web.confi ...

  2. Scrapy计划表

    第一步 Scrapy 一览:理解Scrapy是什么,他能帮到你什么 安装指南:在电脑上安装Scrapy Scrapy 教程:编写第一个Scrapy项目 示例:通过前人写好的Scrapy项目进行学习 基 ...

  3. C# 创建txt文本

    1.创建txt文本 /// <summary> /// log日志,txt的 /// </summary> /// <param name="Log1" ...

  4. thinkphp开启事物的简单方法

    使用thinkphp开启事务,ThinkPHP 3.2.2实现事务操作的方法: 开启事务: $User->startTrans() 提交事务: $User->commit() 事务回滚: ...

  5. R序列seq

    > seq(from=10,to=20,by=3) [1] 10 13 16 19 > seq(from=10,to=20,length=5) [1] 10.0 12.5 15.0 17. ...

  6. Java 多线程 线程的五种状态,线程 Sleep, Wait, notify, notifyAll

    一.先来看看Thread类里面都有哪几种状态,在Thread.class中可以找到这个枚举,它定义了线程的相关状态: public enum State { NEW, RUNNABLE, BLOCKE ...

  7. failed to register esriAddin

    ArcGIS AddIN开发遇到此种异常,目前有两种错误的可能:(1)项目名称好像不能为中文名,如果为中文名,请改正 (2)在Config.esriAddinx配置文件中,存在如下代码 <Tar ...

  8. window server 2012 II8 假陌生 碰到的问题

    1.我们网站是.net 3.5 开发的.还有一个32DLL 2.从windows server 2008 r2 iis 7 迁移过来碰到了3个问题,及解决办法 I. 在唯一密钥属性“fileExten ...

  9. 洛谷P2178 品酒大会【后缀数组】【单调栈】

    题目描述 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战 两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个奖项,吸引了众多品酒师参加. 在大会的晚餐上,调酒师 Rainb ...

  10. linux:查找搜索文件

    学习内容来源: 实验楼链接: https://www.shiyanlou.com/ 与搜索相关的命令常用的有 whereis,which,find 和 locate . whereis 简单快速 $w ...