this真题编译
1 x y z分别输出的是什么?
var x=1,
y=z=0;
function add(n){
return n= n+1;
};
y=add(x);
function add(n){
return n=n+3
};
z=add(x);
x=?y=?z=?
考察点:预编译,有两个函数声明,函数的声明会被提升,所以第二个会把第一个覆盖,故x=1 y=4 z=4
2 下列函数分别输出的是什么?
function foo(x){
console.log(arguments); // 打印实参
return x;
}
foo(1,2,3,4,5);
(function foo(x){
console.log(arguments);
return x;
})(1,2,3,4,5);
function foo(){
bar.apply(null,arguments);//bar(arguments)
};
function bar(){
console.log(arguments);
};
foo(1,2,3,4,5);
3 下面函数会弹出什么?
function b(x,y,a){
arguments[2] = 10;
alert(a)
};
b(1,2,3);
function b(x,y,a){
a = 10;
alert(arguments[2])
};
b(1,2,3);
两个打印的都是10,因为只要存在,形参和实参列表是相互映射一一对应的,形参改变,实参也会随之改变
4 判断下面的类型
var f=(
function f(){
return "1";
},
function g(){
return 2;
}
)();
typeof f ?
首先我们要了解这个括号的意思 例如 var num=(1,2);这时候num就是2,如果var num = 1,2这样则会因为语法错误报错,所以这一题其实就是
function g(){
return 2;
}();
立即执行函数,返回值是2,判断之后则是typeof 2 number
5 判断下面的输出值
var x=1;
if( function f(){} ){ //当判断玩之后能函数消失
x+ = typeof f;这时候函数是undefined
}
console.log(x);
6.判断下面弹出的值
var name="222";
var a={
name:"111",
say:function(){
console.log(this.name);
}
}
var fun = a.say;
fun();
a.say();
var b={
name:"333",
say:function(fun){
fun();
}
};
b.say(a.say); //没人调用,里面指向的还是window
b.say = a.say;
b.say();
7 实现阶乘
方法1 : 函数调用
function Fn(n){
if(n <= 1){
return 1;
}
return n * Fn(n-1);
}
Fn(5);
方法2 : arguments.callee //严格模式下会报错
var num=(function(n){
if(n<=1){
return 1;
}
return n*arguments.callee(n-1);//指向函数本身
}(5))
方法3:for循环
function fn (num) {
if (num < 0) {
return -1;
} else if (num === 0 || num === 1) {
return 1;
} else {
for (var i = num - 1; i >= 1; i--) {
num *= i;
}
}
return num;
};
fn(6); 方法4:while循环
function fn (num) {
var result = num;
if (num < 0) {
return -1;
} else if (num === 0 || num === 1) {
return 1;
} else {
while (num > 1) {
num--;
result *= num;
}
}
return result;
};
fn(6);
8.
var foo="123";
function print(){
var foo="456";
this.foo = "789";
console.log(foo)
}
print();
var foo="123";
function print(){
this.foo = "789";
console.log(foo)
}
print();//789
var foo="123";
function print(){
this.foo = "789";
console.log(foo)
}
new print();
9.下面运行test()和new test()分别弹出什么?
var a=5;
function test(){
a=0;
alert(a);
alert(this.a)
var a;
alert(a)
}
test();
new test();
new一个对象的意思是啥?
function test(){
var this = {
__proto__:test.prototype;
}//this上没有a 所以是undefined
或者是
var this = Object.creat(test.prototype)
}
10.
var bar={ a : 001};
function print(){
bar.a = 'a';
Object.prototype.b = 'b''
return function inner(){
console.log(bar.a);
console.log(bar.b);
}
}
print()();//第一个括号执行return 第二个括号执行return里面的函数
this真题编译的更多相关文章
- 第四届蓝桥杯 c/c++真题
第四届蓝桥杯 c/c++真题 <1>高斯日记 问题 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们 ...
- 第三届蓝桥杯 c/c++真题
第三届蓝桥杯真题 c/c++ 以下题目我自己也并不是所有的题目都是一次性就能做对或是有结题思路的.有些题目也是经过查证网上相关的资料或是参考了别人的代码和解题思路才做出来的.总的来看,这份题目考了很多 ...
- 分享13道上海尚学堂拿回来的Java面试真题,这些都是Java核心常见问题,想拿OFFER必看!
上海尚学堂Java培训学员参加面试带回来的真题,分享出来与大家,希望大家能认真地看看做一遍.后面有详细题解答案,对照下,看看自己做得怎么样,把这些面试遇到的真题全部掌握,做好面试笔试前的准备. 一.1 ...
- 2018最新大厂Android面试真题
前言 又到了金三银四的面试季,自己也不得不参与到这场战役中来,其实是从去年底就开始看,android的好机会确实不太多,但也还好,3年+的android开发经历还是有一些面试机会的,不过确实不像几年前 ...
- 二级C语言真题笔记
二级C语言真题笔记 1. 知识重点:数据类型.循环.数组.函数.指针.结构体与共同体 2. 求程序的运行结果 #include <stdio.h> main() { short i ...
- 历年NOIP真题总结
前言:最近把历年的NOIP真题肝了一遍(还有3个紫题先咕掉了),主要是到1998年的提高组的题.把题目的做题简要思路搁在这儿,一个是为了考前翻一翻,想想自己的哪些思路要梳理的什么什么的,反正怎么说呢, ...
- 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告
2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...
- 面试系列二:精选大数据面试真题JVM专项-附答案详细解析
公众号(五分钟学大数据)已推出大数据面试系列文章-五分钟小面试,此系列文章将会深入研究各大厂笔面试真题,并根据笔面试题扩展相关的知识点,助力大家都能够成功入职大厂! 大数据笔面试系列文章分为两种类型: ...
- 2020年!最全Android大厂面试真题合集(附答案)
这份Android面试真题涵盖了图片,网络和安全机制,网络,数据库,插件化.模块化.组件化.热修复.增量更新.Gradle,架构设计和设计模式,Android Framework .Android优秀 ...
随机推荐
- 51Nod 1158 全是1的最大子矩阵 —— 预处理 + 暴力枚举 or 单调栈
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1158 1158 全是1的最大子矩阵 基准时间限制:1 秒 空 ...
- 51Nod 1294 修改数组 —— LIS
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1294 1294 修改数组 题目来源: HackerRank ...
- Hadoop- Hadoop详解
首先所有知识以官网为准,所有的内容在官网上都有展示,所有的变动与改进,新增内容都以官网为准.hadoop.apache.org Hadoop是一个开源的可拓展的分布式并行处理计算平台,利用服务器集群根 ...
- 日期时间选择器bootstrap-datetimepicker表单组件
Bootstrap受到很多人的喜欢,它不仅拥有一套完整漂亮的UI,而且爱好者们为其开发扩展了很多有用的插件和主题!让其拥有无限可能! 今天为开发者推荐一款强大,易用的时间日历插件——bootstrap ...
- java异常的原理以及应用
父类Throwable 两个分支: error:合理的应用程序不应该出现的严重问题,可以无需声明便抛出,比如内存溢出. Exception:程序还能够克服和恢复的问题. 其中又分为系统异常和普通异常. ...
- zjoi2015d1题解
闲来无事做了丽洁姐姐的题 t1给一棵树 每个点有点权 每次修改点权 修改后询问每个点到树的带权重心的带权距离是多少 每个点度数不超过20 很显然的一个点分树... 我们记一下 每个点的子树中的所有点到 ...
- AtCoder Beginner Contest 104
A - Rated for Me Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100 points Problem Statement A ...
- ACM学习历程——HDU5017 Ellipsoid(模拟退火)(2014西安网赛K题)
---恢复内容开始--- Description Given a 3-dimension ellipsoid(椭球面) your task is to find the minimal distanc ...
- OpenCode:template
ylbtech-OpenCode: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbtec ...
- 基于Qt Gui的Led控制显示程序
基于arm + linux的嵌入式软件开发,基本上的内容主要是:u-boot的移植,kernel的裁剪和相关驱动程序的设计,root-fs的制作,应用程序的设计,其中,应用程序主要包含两方面的内容:G ...