JavaScript 趣味题。
第一题:
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 趣味题。的更多相关文章
- 小试牛刀3之JavaScript基础题
JavaScript基础题 1.让用户输入两个数字,然后输出相加的结果. *prompt() 方法用于显示可提示用户进行输入的对话框. 语法: prompt(text,defaultText) 说明: ...
- 小试牛刀2:JavaScript基础题
JavaScript基础题 1.网页中有个字符串“我有一个梦想”,使用JavaScript获取该字符串的长度,同时输出字符串最后两个字. 答案: <!DOCTYPE html PUBLIC &q ...
- 算法训练 Hankson的趣味题
算法训练 Hankson的趣味题 时间限制:1.0s 内存限制:64.0MB 问题描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Han ...
- JavaScript算法题之–随机数的生成
JavaScript算法题之–随机数的生成 需求描述:从一组有序的数据中生成一组随机并且不重复的数,类似于简单的抽奖程序的实现. 先来生成一个有序的数组: 1 var arr = [], 2 ...
- 1172 Hankson 的趣味题[数论]
1172 Hankson 的趣味题 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Descrip ...
- 1172 Hankson 的趣味题
1172 Hankson 的趣味题 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Descrip ...
- Codevs 1172 Hankson 的趣味题 2009年NOIP全国联赛提高组
1172 Hankson 的趣味题 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description Hanks 博 ...
- 一本通1626【例 2】Hankson 的趣味题
1626:[例 2]Hankson 的趣味题 题目描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Hankson.现在,刚刚放学回家的Hankson 正在思考 ...
- 洛谷 P1072 Hankson 的趣味题 解题报告
P1072 \(Hankson\)的趣味题 题目大意:已知有\(n\)组\(a0,a1,b0,b1\),求满足\((x,a0)=a1\),\([x,b0]=b1\)的\(x\)的个数. 数据范围:\( ...
随机推荐
- 【阿里云IoT+YF3300】16.云端一体化,天猫精灵操控YF3300
“你好天猫精灵”,“主人有什么吩咐”,“打开灯”,“好的,灯已打开”.对于这样的对话应该大多数人都很熟悉,这就是智能家居的缩影.对于现在市面上层出不穷的智能家居系统,功能越来越繁杂,可是因为开发难度高 ...
- Mysql报错:Authentication .....Reading from the stream has failed
连接Mysql5.7版本的数据库出现报错:Authentication to host '171.13.164.***' for user 'root' using method 'mysql_nat ...
- springcloud eureka注册中心搭建
环境描述 ① jdk1.8 ② idea ③ springcloud版本 Finchley.SR2 ④ maven3.0+ 导入jar包 <properties> <project. ...
- 选择结构二switch选择结构
在上一章节我们讲解了if选择结构 本章我们学习 switch选择结构 还要知道if选择结构和switch结构的区别 为什么学习了if选择结构还要学习switch选择结构 以及 两种选择结构的运用 ...
- django使用户名和邮箱都能登录
为了能够让邮箱也能登录,需要重新定义认证功能,需要把email添加成username用于认证 定义的class继承ModelBackend,使用Q方法并集 然后在settings.py里面添加 这样既 ...
- 有关于python内置函数exec和eval一些见解笔记
eval是将函数内的字符串以计算式的方式进行计算并给与外部一个值. 例: a=eval('1+1') print(a) >>>>2 但是如果出现在函数内部字符串中进行赋值会抛出 ...
- ggplot2(8) 精雕细琢
8.1 主题 主题系统控制着图形中的非数据元素外观,它不会影响几何对象和标度等数据元素.这题不能改变图形的感官性质,但它可以使图形变得更具美感,满足整体一致性的要求.主题的控制包括标题.坐标轴标签.图 ...
- 031.核心组件-kubelet
一 kubelet概述 1.1 kubelet作用 在Kubernetes集群中,在每个Node(又称Minion)上都会启动一个kubelet服务进程.该进程用于处理Master下发到本节点的任务, ...
- 把 GitHub 放入口袋,“开箱”官方客户端
GitHub 2019 开发者大会说要出的客户端,今天(2020.3.18)终于放出了下载.之前如果登记过的小伙伴应该也和我一样收到了下面样子的邮件: 好了,那么接下来我们就来"开箱&quo ...
- js String方法总结
字符方法(3) charAt(pos: number): string; // 返回特定位置的字符. charCodeAt(index: number): number; // 返回表示给定索引的字符 ...