1.原题:

function Foo() {
getName = function () { alert (); };
return this;
}
Foo.getName = function () { alert ();};
Foo.prototype.getName = function () { alert ();};
var getName = function () { alert ();};
function getName() { alert ();} //请写出以下输出结果:
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();

下面是我个人的分析:(先进行变量和函数的提升,在进行分析)

  function Foo(){
getName = function(){//这里是函数表达式,但是没有使用var,执行的时候,会现在当前作用域查找有没有getName,如果有就返回,如果没有就想上找,直到直到全局作用域下,本例中,当前作用域没有,但是全局作用域中有var getName的声明,并且还有赋值,这个时候,会被他覆盖掉,变成getName = function(){console.log(1)};也就是覆盖了下面的getName = function(){console.log(4)};
console.log();
}
return this;
} var getName;
// Foo().getName();
function getName(){console.log()};//函数声明,在函数提升的时候会把整个函数体提升
Foo.getName = function(){console.log()};//给Foo中创建了一个getName的属性,并赋值了一个匿名函数
Foo.prototype.getName=function(){console.log()};
getName = function(){console.log()};//这里是赋值操作,会覆盖40行的函数声明 Foo.getName();////访问Foo中的静态属性getName,也就是上面的赋值的匿名函数,所以输出的2
getName();//4因为45的赋值操作覆盖了42行的函数声明,顾输出的是4
Foo().getName();//1这里是这样操作的(Foo()).getName();我们可以看出Foo()属于window调用,this指向的就是window,
        他返回的this就是window,所以这里就相当于window.getName();window调用的时候会在当前作用域下找有没有getName,如果有就执行,
        这里全局环境的的赋值也就是getName = function(){console.log(4)};但是他已经被Foo中的getName覆盖了,变成了getName = function(){console.log(1)};
        所以这里输出的就是1;(注意这些覆盖是发生在调用的时候);;这里涉及this的问题
getName();//1、、由于上面的操作,getName = function(){console.log(4)};已经被覆盖成了getName = function(){console.log(1)};
            所以这里再直接访问getName()的时候,已经变了1
new Foo.getName();//2这里涉及的时候运算符的优先级,点的优先级高于new的优先级。所以先执行Foo.getName的操作,那就是输出2
new Foo().getName();//3这里也是优先级的问题,小括号的优先级最高,所以是(new Foo()).getName();那么就是先实例一个Foo的对象,然后去调用实例方法getName();
      根据属性搜索原则,先去构造函数中找,没有就上原型中去找,这里构造函数Foo中没有,但是原型中已经添加了getName = function(){console.log(3)};所以这里输出的是3
new new Foo().getName();////还是优先级的问题,应该是new ((new Foo()).getName)();先实例化Foo,在将Foo原型中的getName当成构造函数,
                    继续实例化,然后调用
// 这里我们写一个小demo
function fn(){
setName = function(){console.log()};
}
fn.prototype.setName= function(){console.log()};
// new new fn().setName();
// console.log(new((new fn()).setName)());
new((new fn()).setName)();

2.获取100 - 1000之内的左右水仙花数

 var daffodil = () => {
var temp = []
var x,y,z,sum
for (var i = 100; i < 1000; i++) {
x = parseInt(i / 100)
y = parseInt(i % 100 / 10)
z = parseInt(i % 100 % 10)
sum = Math.pow(x, 3) + Math.pow(y, 3) + Math.pow(z, 3)
if (i == sum) {
temp.push(i)
}
}
return temp
} var x = daffodil()
console.log(x)

关于JavaScript的一些笔试题的更多相关文章

  1. ThoughtWorks西邮暑期特训营 -- JavaScript在线笔试题

    ThoughtWorks 公司在西邮正式开办的只教女生前端开发的女子卓越实验室已经几个月过去了,这次计划于暑期在西邮内部开展面向所有性别所有专业的前端培训. 具体官方安排请戳:ThoughtWorks ...

  2. 从阿里巴巴笔试题看Java加载顺序

    一.阿里巴巴笔试题: public class T implements Cloneable { public static int k = 0; public static T t1 = new T ...

  3. 我设计的ASP.NET笔试题,你会多少呢

    本笔试题考查范围包括面向对象基础.HTML.CSS.JS.EF.jQuery.SQL.编码思想.算法等范围. 第1题:接口和抽象类有何区别? 第2题:静态方法和实例方法有何区别? 第3题:什么是多态? ...

  4. 也许你需要点实用的-Web前端笔试题

    之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...

  5. Web前端面试笔试题总结

    最近一段时间要毕业了,忙着找工作,见过不少笔试面试题,自己总结了一些加上网上找的一些整合了一下.答案暂时都东拼西凑出来了,但是还是先不发出来,一方面是答案并不是唯一的并且自己的答案不能保证对,另一方面 ...

  6. 一道灵活的css笔试题

    今天在网上看到一css笔试题,乍一看很简单,实则内部暗藏玄机,题目大概是:九宫格,每格长宽50px,边框宽度5px,鼠标经过边框变红,效果如下: 鼠标路过时: 以下是代码(如有不足之处望多加指正) & ...

  7. PHP笔试题(转载)

    整理了一份PHP高级工程师的笔试题,问题很全面.嗯,基本上这些题都答得不错,那么你应该可以胜任大部分互联网企业的PHP职位了.下面直接上题. 1. 基本知识点 HTTP协议中几个状态码的含义:503, ...

  8. 收藏所用C#技术类面试、笔试题汇总

    技术类面试.笔试题汇总 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补 ...

  9. Android开发面试经——4.常见Android进阶笔试题(更新中...)

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

随机推荐

  1. [noip模拟赛]算算数

    https://www.zybuluo.com/ysner/note/1298755 题面 有一天小胡同学看到了一种表达式.这个表达式有四个变量\(A,B,C,D\).这四 个变量都只有\(0\)和\ ...

  2. ssh使用秘钥文件连接提示WARNING: UNPROTECTED PRIVATE KEY FILE!(转载)

    转自:http://www.01happy.com/ssh-unprotected-private-key-file/ 在centos 6.4下使用ssh连接远程主机时,用的是另外一个密钥,需要用-i ...

  3. MySQL权限及登陆、退出方法

    用户权限列表 SELECT 查询权限 INSERT 插入权限 UPDATE 更新权限 DELETE 删除权限(用于删除数据) CREATE 创建权限 DROP 删除权限(用户删除文件) RELOAD ...

  4. bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级【分层图+spfa】

    至死不用dijskstra系列2333,洛谷上T了一个点,开了O2才过 基本想法是建立分层图,就是建k+1层原图,然后相邻两层之间把原图的边在上一层的起点与下一层的终点连起来,边权为0,表示免了这条边 ...

  5. Nginx(一) 安装基于centos7

    1.   nginx介绍 1.1. 什么是nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师Igor Sysoev所开 ...

  6. Uva 10766 Organising the Organisation (Matrix_tree 生成树计数)

    题目描述: 一个由n个部门组成的公司现在需要分层,但是由于员工间的一些小小矛盾,使得他们并不愿意做上下级,问在满足他们要求以后有多少种分层的方案数? 解题思路: 生成树计数模板题,建立Kirchhof ...

  7. BFS POJ 2251 Dungeon Master

    题目传送门 /* BFS:这题很有意思,像是地下城,图是立体的,可以从上张图到下一张图的对应位置,那么也就是三维搜索,多了z坐标轴 */ #include <cstdio> #includ ...

  8. 二分搜索 Codeforces Round #218 (Div. 2) C. Hamburgers

    题目传送门 /* 题意:一个汉堡制作由字符串得出,自己有一些原材料,还有钱可以去商店购买原材料,问最多能做几个汉堡 二分:二分汉堡个数,判断此时所花费的钱是否在规定以内 */ #include < ...

  9. [转]position:fixed; 在IE9下无效果的问题

    本文转自:http://www.cnblogs.com/xinwang/archive/2013/04/06/3002384.html 平常DIV+CSS布局时,position属性一般用absoul ...

  10. 10步成为专业iOS开发者——新手向,从零起步

    想在移动开发大餐中分一杯羹,体验最火最炫的技术?小伙子,很有眼光嘛 毫无疑问,移动开发在目前和未来几年内都会盛极一时.无数开发职位虚位以待.各大公司都在寻找各种层次的程序员——新手级.入门级.中级.老 ...