1.(function(){

return typeof arguments

})();

这里返回时是argument类型,它是个类数组,也就对象,所以是object,准确谁是[object argumens]

2

var f = function g(){

return 23;

};

typeof g();

本题是命名函数表达式,但是函数名g只在命名作用域内有效,所以结果是错误,注意本题在老的ie下是解析为函数声明,也就是结果是number;

3

(function(x){

delete x;

return x;

})(1);

本题考察delete删除对象属性;所以此处返回为1;

4

var y = 1, x = y = typeof x;

x;

很明显,undefined

5

(function f(f){

return typeof f();

})(function(){ return 1; });

number

6

var foo = {

bar: function() {

return this.baz;

},

baz: 1

};

(function(){

return typeof arguments[0]();

})(foo.bar);

答案:undefined;

7

var foo = {

bar: function(){

return this.baz;},

baz: 1}

typeof (f = foo.bar)();

本题阵亡了,答案undefined,注意对象只持有方法的引用,并不持有方法

8

var f = (

 function f(){

return "1"; 

},

 function g(){

return 2;

}

)();

typeof f;

答案是number;

9

var x = 1;
if (function f(){}) {
x += typeof f;
}
x;

1undefined
10
var x = [typeof x, typeof y][1];
typeof typeof x;
x是undefined
x的type是string; 11
(function(foo){
return typeof foo.bar;
})({ foo: { bar: 1 } });
很明显undefined;
12
(function f(){
function f(){ return 1; }
return f();
function f(){ return 2; }
})();
答案是2,变量提升原则
13
function f(){ return f; }
new f() instanceof f;
false
14
with (function(x, undefined){}) length;
返回时他arguments的length







												

关于14道魔鬼js考题的整理的更多相关文章

  1. vue.js面试题整理

    Vue.js面试题整理 一.什么是MVVM? MVVM是Model-View-ViewModel的缩写.MVVM是一种设计思想.Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务 ...

  2. 14条最佳JS代码编写技巧

    http://gaohaixian.blog.163.com/blog/static/123260105201142645458315/写任何编程代码,不同的开发者都会有不同的见解.但参考一下总是好的 ...

  3. js数组学习整理

    原文地址:js数组学习整理 常用的js数组操作方法及原理 1.声明数组的方式 var colors = new Array();//空的数组 var colors = new Array(3); // ...

  4. JS正则表达式大全(整理详细且实用)

    JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释, ...

  5. 14.10.4 Defragmenting a Table 整理表

    14.10.4 Defragmenting a Table 整理表: 随机插入或者删除从一个secondary index 可以导致index变的fragmented Fragmentation意味着 ...

  6. Js Date泣血整理

    原文:Js Date泣血整理 JS Date 对象用于处理日期和时间. 创建 Date 对象的语法: var myDate=new Date() Date 对象会自动把当前日期和时间保存为其初始值. ...

  7. SVG.js 元素操作整理(二)-Transform

    一.transform()获取或设置矩阵变换 var draw = SVG('svg1').size(300, 300); //Transforming SVG元素矩阵变换 var rect = dr ...

  8. SVG.js 元素操作整理(一)

    一.属性操作Attributes var draw = SVG('svg1').size(300, 300); //attr() 属性操作 //设置属性的值 var rect = draw.rect( ...

  9. 刷14道leetcode的总结

    引子 为什么我要刷leetcode?换工作?不是!那是?玩!巴菲特的双目标清单系统,基本方法是列两个清单,一个是职业生涯最重要的目标(不超过5个),另一个是比较重要的目标.对于比较重要的目标,要像躲避 ...

随机推荐

  1. mvc上传图片(上传和预览)webuploader

    笔者看到mvc最近比较流行,而很多使用一些比较旧的的方法上传图片,再次安利一下百度的webuploader控件吧 webuploader第一步要先下载一些插件这点可以在webuploader官网上下载 ...

  2. 集合栈计算机(The SetStack Computer, ACM/ICPC NWERC 2006,Uva12096)

    集合栈计算机(The SetStack Computer, ACM/ICPC NWERC 2006,Uva12096) 题目描述 有一个专门为了集合运算而设计的"集合栈"计算机.该 ...

  3. java读取xml文件的四种方法

    Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> ...

  4. 远程连接Oracle 服务器 解决Oracle查询中文乱码

    Dos方法: 依托于 目录下的文件 使用plsql developer 客户端软件进行连接 需要配置一下: 就是把Dos的客户端配置进来 然后,把服务器端的文件拷贝到你的的机器 并设置TNS_ADMI ...

  5. Yii2中使用Soap WebSerivce

    Soap是一种轻量的.简单的.基于XML(标准通用标记语言下的一个子集)的协议 WebService顾名思义就是web服务,web服务主要有两种,一种是基于soap类型的服务,一种是基于rest类型的 ...

  6. Laravel 入门笔记

    1.MVC简介 MVC全名是Model View Controller,是模型-视图-控制器的缩写 Model是应用程序中用于处理应用程序数据逻辑的部分 View是应用程序中处理数据显示的部分 Con ...

  7. spark启动原理总结

    一般情况下,我们启动spark集群都是start-all.sh或者是先启动master(start-master.sh),然后在启动slave节点(start-slaves.sh),其实翻看start ...

  8. python逻辑判断 () not and or

    python逻辑判断 () not and or 优先级关系:()>not>and>or 运算符示意 not –表示取反运算. and –表示取与运算. or –表示取或运算. or ...

  9. php7+apache2.4+mysql 环境配置(window环境)

    最近,小主从事PHP开发.特将最近如何搭建php7的过程记录在此!希望有需要,可以借鉴!( 电脑必须win7 sp1以上, .netframework4 ) Windows7安装php7,Win7+p ...

  10. MQTT客户端

    MQTT客户端 最近公司项目中使用到了一个MQTT的协议,用这个通讯协议将嵌入式端收集到的数据接入到物联网中,很是方便的解决了,嵌入式端存储空间小,也解决了用户需要自定义使用这些记录数据的需求.而且相 ...