前端常见面试题总结part2
今天总结了几道,感觉非常有意思的题,有感兴趣的可以看下,有疑问请留言~
(答案在最后)
1.
考察自执行函数的this指向
审题要细心
var n = 2,
obj = {
n:2,
fn:(function(n){
n*=2;
this.n+=2;
console.log(this.n);
console.log(window.n);
return function(m){
this.n*=2;
console.log(m+(++n))
}
}(n)
};
var fn = obj.fn;
fn(3);
obj.fn(3)
console.log(n,obj.n);
- prototype:原型属性
_proto_: 原型链属性
hasOwnProperty:检测属性是否属于当前对象私有属性
function Fn() {
var n = 100;
this.AA = function () { }
this.BB = function () { }
}
Fn.prototype.AA = function () { }
var f1 = new Fn();
var f2 = new Fn;
console.log(f1.n);
console.log(f1.AA === f2.AA);
console.log(f1.__proto__.AA === f2.AA)
console.log(f1.__proto__.AA === f2.__proto__.AA)
console.log(f1.__proto_.AA === Fn.prototype.AA)
console.log(f1.hasOwnProperty('AA') === Fn.prototype.hasOwnProperty('AA'));
- 比较简单的一道题
console.log(a);
a = 20;
function fn(){
console.log(a)
var a = 12;
}
fn();
console.log(a)
- 考察变量提升
var foo = 1;
function fn(){
if(!foo){
var foo = 12;
}
console.log(foo);
}
fn();
- 函数形参变量和arguments存在映射
函数默认返回undefinedvar a = 4;
function test(x,y,a){
console.log(a);
arguments[2] = 100;
console.log(a)
}
a = test(1,2,3);
console.log(a)
- 函数形参变量和arguments映射建立在函数执行形参赋值的一刻
形参和实参一一对应,多出来的不建立映射function fn(x,y){
var arg = arguments;
arg[0] = 100;
var y = 200;
arg[1] = 300;
console.log(y);
}
fn(20);
- 逻辑与 逻辑或
console.log(0||1&&2||0||3&&2||1)
- 还是考察this
var num = 10;
var obj = {num:20};
obj.fn = (function(num){
num = this.num + 10;
this.num = num + 10;
return function(){
this.num += ++num;
}
})(num)
var fn = obj.fn;
fn();
obj.fn();
console.log(num,obj.num)
- 很长的一段
function Fn(){
this.x = 100;
this.y = 200;
this.getX = function(){
console.log(this.x)
}
}
Fn.prototype.getX = function(){
console.log(this.x)
}
Fn.prototype.getY = function(){
console.log(this.y)
}
var f1 = new Fn;
var f2 = new Fn;
console.log(f1.getX === f2.getX);
console.log(f1.getY === f2.getY);
console.log(f1.__proto__getY === Fn.prototype.getY);
console.log(f1.__proto__.getX === f2.getX);
console.log(f1.getX === Fn.prototype.getX);
console.log(f1.constructor);
console.log(Fn.prototype.__proto__.constructor);
f1.getX();
f1.__proto__.getX();
f2.getY();
Fn.prototype.getY();
10)还是this得问题(发现了好多this的题)
var name = 'window';
var Tom = {
name:'Tom',
show:function(){
console.log(this.name)
},
wait:function(){
var fun = this.show;
fun();
}
}
Tom.wait();
答案:
- 9
10
8 6 - undefined
false
false
true
true
true - a is not defined
- 12
- 3
100
undefined - 200
- 2(逻辑与的优先级高于逻辑或)
- 51 42
- false
true
true
false
false
Fn
Object
100
undefined;this:f1.proto ,上面没有x,所以是undefined
200
undefined;this:Fn.prototype,上面没有y,所以是undefined - window
前端常见面试题总结part2的更多相关文章
- 一道常被人轻视的web前端常见面试题(JS)
本文转载自站长之家,如有侵权问题,请联系我,马上删除. 面试题是招聘公司和开发者都非常关心的话题,公司希望通过它了解开发者的真实水平和细节处理能力,而开发者希望能够最大程度地展示自己的水平(甚至超常发 ...
- WEB前端常见面试题汇总:(一)
1.JS找字符串中出现最多的字符 例如:求字符串'nininihaoa'中出现次数最多字符 方法一: var str = "nininihaoa"; var o = {}; for ...
- web前端常见面试题
转载自:https://www.cnblogs.com/jj-z/p/7999538.html 一.理论知识 1.1.讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 a. 域名解析 b. 发起 ...
- web前端常见面试题汇总
一.理论知识 1.1.讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 a. 域名解析 b. 发起TCP的3次握手 c. 建立TCP连接后发起http请求 d. 服务器端响应http请求,浏览器 ...
- 【javascript常见面试题】常见前端面试题及答案
转自:http://www.cnblogs.com/syfwhu/p/4434132.html 前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性.上 ...
- Web开发的常见面试题HTML和HTML5等
作为一名前端开发人员,HTML,HTML5以及网站优化都是必须掌握的技术,下面列举一下HTML, HTML5, 网站优化等常见的面试题: HTML常见面试题: 1. 什么是Semantic HTML( ...
- 整理的最全 python常见面试题(基本必考)
整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...
- 整理的最全 python常见面试题
整理的最全 python常见面试题(基本必考)① ②③④⑤⑥⑦⑧⑨⑩ 1.大数据的文件读取: ① 利用生成器generator: ②迭代器进行迭代遍历:for line in file; 2.迭代 ...
- Vue常见面试题汇总
Vue框架常见面试题 1.active-class是哪个组件的属性?嵌套路由怎么定义? 答:vue-router模块的router-link组件. 2.怎么定义vue-router的动态路由?怎么 ...
随机推荐
- java基本类型和包装类型的区别以及object的公共方法
Java的类型分为两部分,一个是基本类型(primitive),如int.double等八种基本数据类型: 一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节 ...
- DOCKER - POD操作
强制删除 Terminating 的pod kubectl delete -n <namespace> <pod podname> --grace-period=0 --fo ...
- mitmproxy安装与使用
mitmproxy安装与使用 (抓包,中间人代理工具.支持SSL) 在开发微信公端的时候开发调试只能用浏览器自带开发工具,本来移动端可以用用fiddler.wireshark等工具来抓包,但是自从改用 ...
- HTML 符号实体
带有实体名称的 ASCII 实体 结果 描述 实体名称 实体编号 " quotation mark " " ' apostrophe ' ' & ...
- 洛谷——P1183 多边形的面积
P1183 多边形的面积 多边形求面积公式: $\frac {\sum_{i=0}^{n-1}(x_iy_{i+1}-y_ix_{i+1})}{2}$ #include<bits/stdc++. ...
- 51nod1006 -最长公共子序列Lcs【动态规划】
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). 比如两个串为: abcicba abdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最 ...
- svn 使用TortoiseSVN server搭建本地SVN服务器
使用TortoiseSVN server搭建本地SVN服务器
- Python 爬虫之第一次接触
爬豆瓣网电影TOP250名单 ------- 代码未写完,等待更新 import requests from requests.exceptions import RequestException i ...
- (蓝桥)2017C/C++A组第一题迷宫
#include<iostream> #include<memory.h> using namespace std; char mi[10][10] ; int visited ...
- C写的AES(ECB/PKCS5Padding)
摘自POLARSSL #pragma once #define AES_ENCRYPT 1 #define AES_DECRYPT 0 struct aes_context { int nr; /*! ...