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. 新人成长之入门Vue.js弹窗Dialog介绍(二)

    前言 在上一篇博文中介绍了Vue.js的常用指令,今天总结归纳一下弹窗Dialog的使用,弹窗经常被使用在一些表单的增删改查啊,或者弹出一些提示信息等等,在保留当前页面状态的情况下,告知用户并承载相关 ...

  2. Android中的AutoCompleteTextView(随笔提示文本)组件的简单使用

    Android中的随笔提示文本组件AutoCompleteTextView的使用,此组件用于输入文本,然后就会在所配置的适配器中的数据进行查找显示在组件下面. 这里值得注意的是AutoComplete ...

  3. PHP二维码生成

    原文链接:http://www.qqdeveloper.com/detail/14/1.html 代码下载地址:链接:http://pan.baidu.com/s/1dFgqiaP 密码:lex5 材 ...

  4. hadoop生态搭建(3节点)-14.redis配置

    # ==================================================================规划node1 redis:7000 7001 192.168. ...

  5. STM32F407+STemwin学习笔记之STemwin移植

    原文链接:http://www.cnblogs.com/NickQ/p/8748011.html 环境:keil5.20  STM32F407ZGT6  LCD(320*240)  STemwin:S ...

  6. VMware中Linux的NAT相关配置

    我这边使用的是CentOS7,因为搭建环境主要是为了后期做集群,所以会搭建三台机器master,slave1,slave2. 一.设置固定IP 1. 进入到/etc/sysconfig/network ...

  7. 回顾爬虫的时候的一些小TIPS

    1 json.dumps的时候默认会用ascii 所以在写入文件的时候会需要用到的指令变为json.dumps(a,ensuer_ascii=False),这样将禁止转换为ascii 然后再写入的时候 ...

  8. 成都Uber优步司机奖励政策(8月31日~9月6日)

    本周(8月31日-9月6日),优步成都继续推出丰厚保底奖励,日保底总金额最高575元,每周保底最高可获得3595元.优步还加大了乘客端折扣力度,最低五折坐车!单子超多,上线就有单,接单接不停!欢迎各位 ...

  9. 1070: [SCOI2007]修车

    1070: [SCOI2007]修车 https://www.lydsy.com/JudgeOnline/problem.php?id=1070 分析: 每个第几次修车等的时间都不一样,当前第i个人修 ...

  10. STM32的GUI库使用

    1. 实验平台使用百为的STM32F103开发板 2. 例程目录\百为stm32开发板光盘\stm32_gui_lib\Project\Embedded_GUI_Example\EWARM 3. 直接 ...