[转] 考验你的JavaScript底细
http://sentsin.com/
尽管今日的JavaScript已经突飞猛进,但JS的许多特性仍然保留,以下题目并不是有意设坑,许多地方将验证你的JS底细,如果错了一半,请别告诉我你从事前端。
- 1.
(function(){
return typeof arguments;
})();- "object"
- "array"
- "arguments"
- "undefined"
- 2.
var f = function g(){
return 23;
};
typeof g();- "number"
- "undefined"
- "function"
- Error
- 3.
(function(x){
delete x;
return x;
})(1);- 1
- null
- undefined
- Error
- 4.
var y = 1, x = y = typeof x;
x;- 1
- "number"
- undefined
- "undefined"
- 5.
(function f(f){
return typeof f();
})(function(){ return 1; });- "number"
- "undefined"
- "function"
- Error
- 6.
var foo = {
bar: function() {
return this.baz;
},
baz: 1
};
(function(){
return typeof arguments[0]();
})(foo.bar);- "undefined"
- "object"
- "number"
- "function"
- 7.
var foo = {
bar: function(){
return this.baz;
},
baz: 1
}
typeof (f = foo.bar)();- "undefined"
- "object"
- "number"
- "function"
- 8.
var f = (
function f(){
return "1";
},
function g(){
return 2;
}
)();
typeof f;- "string"
- "number"
- "function"
- "undefined"
- 9.
var x = 1;
if (function f(){}) {
x += typeof f;
}
x;- 1
- "1function"
- "1undefined"
- NaN
- 10.
var x = [typeof x, typeof y][1];
typeof typeof x;- "number"
- "string"
- "undefined"
- "object"
- 11.
(function(foo){
return typeof foo.bar;
})({ foo: { bar: 1 } });- "undefined"
- "object"
- "number"
- Error
- 12.
(function f(){
function f(){ return 1; }
return f();
function f(){ return 2; }
})();- 1
- 2
- Error (e.g. "Too much recursion")
- undefined
- 13.
function f(){ return f; }
new f() instanceof f;- true
- false
- 14.
with (function(x, undefined){}) length;
- 1
- 2
- undefined
- Error
思考题:
如何改变 undefined的typeof类型 ? (即 typeof undefined 或者 typeof(undefined) 都不为"undefined" )
[转] 考验你的JavaScript底细的更多相关文章
- JavaScript插件——按钮
Bootstrap3.0学习第二十四轮(JavaScript插件——按钮) 前言 阅读之前您也可以到Bootstrap3.0入门学习系列导航中进行查看http://www.cnblogs.com/ ...
- javascript学习教程
我来班门弄斧一下吧,把我JavaScript学习过程中常去的一些网站分享给大家: =========================增加================================ ...
- 关于 JavaScript 学习 —— 好的博客或者网站推荐
作者:Tw93链接:https://www.zhihu.com/question/19651401/answer/46211739来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈
Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...
- Javascript 的执行环境(execution context)和作用域(scope)及垃圾回收
执行环境有全局执行环境和函数执行环境之分,每次进入一个新执行环境,都会创建一个搜索变量和函数的作用域链.函数的局部环境不仅有权访问函数作用于中的变量,而且可以访问其外部环境,直到全局环境.全局执行环境 ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- 《Web 前端面试指南》1、JavaScript 闭包深入浅出
闭包是什么? 闭包是内部函数可以访问外部函数的变量.它可以访问三个作用域:首先可以访问自己的作用域(也就是定义在大括号内的变量),它也能访问外部函数的变量,和它能访问全局变量. 内部函数不仅可以访问外 ...
随机推荐
- Children's Day
hdu4706:http://acm.hdu.edu.cn/showproblem.php?pid=4706 题意:让你打出3--10的N,这个N是由连续的小写字母组成的. 题解:直接模拟啊,水题啊. ...
- Qt 中update()和repaint()的区别
void QWidget::repaint ( int x, int y, int w, int h, bool erase = TRUE ) [槽]通过立即调用paintEvent()来直接重新绘制 ...
- MyEclipse6.5安装SVN插件的三种方法z
一.安装方法: 方法一.如果可以上网可在线安装 . 打开Myeclipse,在菜单栏中选择Help→Software Updates→Find and Install; . 选择Search ...
- 【HDOJ】2589 正方形划分
暴力DFS /* 2589 */ #include <cstdio> #include <cstring> #include <cstdlib> #define M ...
- Hadoop 新 MapReduce 框架 Yarn 详解
Hadoop 新 MapReduce 框架 Yarn 详解: http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ Ap ...
- OA系统配置文件
第一章 web.xml配置文件解读 1. web.xml文件解读 lemon OA系统的核心配置文件都放在spring目录下的具有applicationContext的前缀文件.Classpath后有 ...
- oracle查询语句2【转载】
本文使用的实例表结构与表的数据如下: scott.emp员工表结构如下: SQL> DESC SCOTT.EMP; Name Type Nullable Defaul ...
- 新型Web劫持技术
该类新型Web劫持是利用script脚本实现的.在已知的案例中,黑客入侵了某地方门户网站,篡改了该网站的新闻页面,并向这些页面植入自己的广告.新闻及恶意代码.一旦用户从搜索结果页面点击进入被篡改过的新 ...
- Am命令
Am.java中: Override public void onRun() throws Exception { mAm = ActivityManagerNative.getDefault(); ...
- Linux学习笔记9——make和Makefile
一,Makefile的文件名 默认的情况下,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”.“makefile”.“Makefile”的文件,大部分情况下,make命令都支持m ...