第一题:

    const Greeters = []
for (var i = 0 ; i < 10 ; i++) {
Greeters.push(function () { return console.log(i) })
}
Greeters[0]()
Greeters[1]()
Greeters[2]()
  // 运行结果三个 10
  // 解决办法 1、把 var 换成 let, 2、把function(){return console.log(i)} 换成 console.log.bind(null,i)

  第二题:

var z =10;
function foo(){
  console.log(z)
}
(function(funArg){
  var z = 20;
  funArg();
})(foo);
//结果 10
//函数调用的位置并不会改变 函数体的位置 所有最后返回的 10

  第三题:

  function puzzle() {
  return ()=> {
    console.log(arguments)
  }
 }
puzzle('a', 'b', 'c')(1, 2, 3)
//结果 ["a","b","c"]
//在箭头函数中,this与封闭词法上下文的this保持一致。在全局代码中,它将被设置为全局对象:

  第三题

function fun(n,o){
  console.log(o)
  return{
    fun:function(m){
      return fun(m,n);
    }
  };
}
var a = fun(0); a.fun(1); a.fun(2); a.fun(3);
var b = fun(0).fun(1).fun(2).fun(3);
var c = fun(0).fun(1); c.fun(2); c.fun(3);

  //undefined 0 0 0
  //undefined 0 1 2
  //undefined 0 1 1

  第四题

var a = 100;
function testResult(){
  var b = 2 * a;
  var a = 200;
  var c = a / 2;
  alert(b);
  alert(c);
}
testResult();
// NaN,100
// 变量 a 在函数内变量提升 所以在一开始 a的值是 underfind 所以 b= 2*a=NaN

  第五题

var test = (function(a){
  this.a = a;
  return function(b){
    return this.a + b;
  }
}(function(a,b){
  return a;
}(1,2)));
console.log(test(1));
// 2

  第六题

(function(){
  var a = b = 3;
})();
console.log("a defined?" + (typeof a != 'undefined'));
console.log("a defined?" + (typeof b != 'undefined'));

//a defined?false
//a defined?true

// 主要是变量 b 没有使用var 关键字进行声明 所有导致变量 b 变成全局变量

  第七题

(function(){
console.log(1);
setTimeout(function(){console.log(2)},1000);
setTimeout(function(){console.log(3)},0);
console.log(4);
})();
// 1,4,3,2
// 单线程 异步执行

  第八题

if(!("a" in window)){
var a = 1;
}
alert(a);
// undefined
// = = ......

  第九题

var handle = function(a){
var b = 3;
var tmp = function(a){
b = a + b;
return tmp;
}
tmp.toString= function(){
return b;
}
return tmp;
}
alert(handle(4)(5)(6));
// 14

第十题

var arr = [,'abc',function(){alert();}];
alert(arr[]());
arr[]();
// 先弹出 3333 再弹出 underfind 最后弹出 3333

第十一题

var len = ;
while(len--){
setTimeout(function(){console.log(len)},);
console.log(len);
}
// 3 2 1 0 -1

第十二题

window.name = "Window";
var cat = {
name:'Cat'
};
var dog = {
name:'Dog',
sound:function(word){
alert(this.name + word);
}
};
dog.sound(" is pooping");
dog.sound.call(window," is banking");
dog.sound.call(dog," is banking");
dog.sound.apply(cat,[ 'hello']);
// Dog is pooping
// Window is banking
// Dog is banking
// Cat hello

第十三题

for(var i = 0,j = 0; i < 10, j < 6; i++, j++){
value = i + j;
}
alert(value);
//10

第十四题

alert(0/0);
alert(1/0);
alert(0/1);
// NaN Infinity 0

第十五题

var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};
console.log(foo.x);
//undefined

JavaScript 趣味题。的更多相关文章

  1. 小试牛刀3之JavaScript基础题

    JavaScript基础题 1.让用户输入两个数字,然后输出相加的结果. *prompt() 方法用于显示可提示用户进行输入的对话框. 语法: prompt(text,defaultText) 说明: ...

  2. 小试牛刀2:JavaScript基础题

    JavaScript基础题 1.网页中有个字符串“我有一个梦想”,使用JavaScript获取该字符串的长度,同时输出字符串最后两个字. 答案: <!DOCTYPE html PUBLIC &q ...

  3. 算法训练 Hankson的趣味题

    算法训练 Hankson的趣味题   时间限制:1.0s   内存限制:64.0MB        问题描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Han ...

  4. JavaScript算法题之–随机数的生成

    JavaScript算法题之–随机数的生成 需求描述:从一组有序的数据中生成一组随机并且不重复的数,类似于简单的抽奖程序的实现. 先来生成一个有序的数组: 1 var arr = [], 2      ...

  5. 1172 Hankson 的趣味题[数论]

    1172 Hankson 的趣味题 2009年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Descrip ...

  6. 1172 Hankson 的趣味题

    1172 Hankson 的趣味题 2009年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Descrip ...

  7. Codevs 1172 Hankson 的趣味题 2009年NOIP全国联赛提高组

    1172 Hankson 的趣味题 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description Hanks 博 ...

  8. 一本通1626【例 2】Hankson 的趣味题

    1626:[例 2]Hankson 的趣味题 题目描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Hankson.现在,刚刚放学回家的Hankson 正在思考 ...

  9. 洛谷 P1072 Hankson 的趣味题 解题报告

    P1072 \(Hankson\)的趣味题 题目大意:已知有\(n\)组\(a0,a1,b0,b1\),求满足\((x,a0)=a1\),\([x,b0]=b1\)的\(x\)的个数. 数据范围:\( ...

随机推荐

  1. Java工厂模式解耦 —— 理解Spring IOC

    Java工厂模式解耦 -- 理解Spring IOC 最近看到一个很好的思想来理解Spring IOC,故记录下来. 资源获取方式 主动式:(要什么资源都自己创建) 被动式:(资源的获取不是我们创建, ...

  2. Android系统研究资料收集---站在前人的肩膀上

    Android系统研究资料收集---站在前人的肩膀上 针对Android系统研究任务,收集高价值资料在本页更新 AuthBlog:秋城https://www.cnblogs.com/houser032 ...

  3. Javascript学习笔记-基本概念-语句

    1.if语句 if (condition) statement1 else statement2 也可以像下面这样把整个if 语句写在一行代码中: if (condition1) statement1 ...

  4. 从0开发3D引擎(十一):使用领域驱动设计,从最小3D程序中提炼引擎(第二部分)

    目录 上一篇博文 本文流程 回顾上文 解释基本的操作 开始实现 准备 建立代码的文件夹结构,约定模块文件的命名规则 模块文件的命名原则 一级和二级文件夹 api_layer的文件夹 applicati ...

  5. js实现文字头像的生成

    原文地址:https://www.phyer.cn/article/9277.欢迎大家访问我的博客(●ˇ∀ˇ●) 使用canvas画出文字就好啦 function gen_text_img(size, ...

  6. webstorm 提示 "scanning files to index..." 一直不能编译的问题

    先说一下我的操作过程吧: 下载公司的vue项目后,要用到webpack打包工具,需要按照package.json安装一些依赖,我使用了镜像后,npm install模块时候生成了一个 node_mod ...

  7. CSS3:TEXT-SHADOW|BOX-SHADOW(炫彩字体)

    2016年2月26日个人博客文章--迁移到segmentfault (1)text-shadow(文本阴影) 在介绍css3:text-shadow文本阴影之前,我们先来看看用它都能实现什么效果: 没 ...

  8. springboot连接redis错误 io.lettuce.core.RedisCommandTimeoutException:

    springboot连接redis报错 超时连接不上  可以从以下方面排查 1查看自己的配置文件信息,把超时时间不要设置0毫秒 设置5000毫秒 2redis服务长时间不连接就会休眠,也会连接不上 重 ...

  9. Java原来还可以这么学:如何搞定面试中必考的集合类

    原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...

  10. CyclicBarrier源码探究 (JDK 1.8)

    CyclicBarrier也叫回环栅栏,能够实现让一组线程运行到栅栏处并阻塞,等到所有线程都到达栅栏时再一起执行的功能."回环"意味着CyclicBarrier可以多次重复使用,相 ...