第一篇
- 写出下面代码输出的结果
console.log(a);
var a = 12;
a = 13;
console.log(a);
console.log(a);
let a = 12;
a = 13;
console.log(a);
console.log(a);
a = 13;
console.log(a);
- 写出下面代码输出的结果
var a = 12;
var a = 13;
console.log(a);
let a = 12;
let a = 13;
console.log(a);
- 写出下面代码输出的结果
console.log(a, b);
var a = 12,
b = 12;
function fn() {
console.log(a, b);
var a = b = 13;
console.log(a, b);
}
fn();
console.log(a, b);
- 写出下面代码输出的结果
console.log(a, b, c);
var a = 12,
b = 13,
c = 14;
function fn(a) {
console.log(a, b, c);
a = 100;
c = 200;
console.log(a, b, c);
}
b = fn(10);
console.log(a, b, c);
- 写出下面代码输出的结果
console.log(a);
if(!('a' in window)){
var a = 13;
}
console.log(a);
- 写出下面代码输出的结果
fn();
function fn(){ console.log(1); }
fn();
function fn(){ console.log(2); }
fn();
var fn = function(){ console.log(3); }
fn();
function fn(){ console.log(4); }
fn();
function fn(){ console.log(5); }
fn();
- 写出下面代码输出的结果
f = function () {return true;}
g = function () {return false;}
~function () {
if (g() && [] == ![]) {
f = function () {return false;}
function g() {return true;}
}
}();
console.log(f());
console.log(g());
- 写出下面代码输出的结果
console.log(typeof a);
console.log(typeof a);
let a;
- 写出下面代码输出的结果
var ary = [12, 23];
function fn(ary) {
console.log(ary);
ary[0] = 100;
ary = [100];
ary[0] = 0;
console.log(ary);
}
fn(ary);
console.log(ary);
- 写出下面代码输出的结果(如何查找上级作用域和堆栈内存释放问题)
var n = 1;
function fn() {
var n = 2;
function f() {
n--;
console.log(n);
}
f();
return f;
}
var x = fn();
x();
console.log(n);
var i = 5;
function fn(i) {
return function (n) {
console.log(n + (++i));
}
}
var f = fn(1);
f(2);
fn(3)(4);
fn(5)(6);
f(7);
console.log(i);
var i = 20;
function fn() {
i-=2;
return function (n) {
console.log((++i)-n);
}
}
var f=fn();
f(1);
f(2);
fn()(3);
fn()(4);
f(5);
console.log(i);
--分割-- 休息一下吧, 第二篇
一、选择题
1、
console.log(a);
var a=12;
function fn(){
console.log(a);
var a=13;
}
fn();
console.log(a);
/*
A、undefined 12 13
B、undefined undefined 12
C、undefined undefined 13
D、有程序报错
*/
2、
console.log(a);
var a=12;
function fn(){
console.log(a);
a=13;
}
fn();
console.log(a);
/*
A、undefined 12 13
B、undefined undefined 12
C、undefined undefined 13
D、有程序报错
*/
3、
console.log(a);
a=12;
function fn(){
console.log(a);
a=13;
}
fn();
console.log(a);
/*
A、undefined 12 13
B、undefined undefined 12
C、undefined undefined 13
D、有程序报错
*/
4、
var foo=1;
function bar(){
if(!foo){
var foo=10;
}
console.log(foo);
}
bar();
/*
A、1
B、10
C、undefined
D、报错
*/
5、无需画图
var n=0;
function a(){
var n=10;
function b(){
n++;
console.log(n);
}
b();
return b;
}
var c=a();
c();
console.log(n);
/*
A、1 1 1
B、11 11 0
C、11 12 0
D、11 12 12
*/
6、
var a=10,b=11,c=12;
function test(a){
a=1;
var b=2;
c=3;
}
test(10);
console.log(a);
console.log(b);
console.log(c);
/*
A、1 11 3
B、10 11 12
C、1 2 3
D、10 11 3
*/
7、
if(!("a" in window)){
var a=1;
}
console.log(a);
/*
A、1
B、undefined
C、报错
D、以上答案都不对
*/
8、
var a=4;
function b(x,y,a) {
console.log(a);
arguments[2]=10;
console.log(a);
}
a=b(1,2,3);
console.log(a);
/*
A、3 3 4
B、3 10 4
C、3 10 10
D、3 10 undefined
*/
9、
var foo='hello';
(function(foo){
console.log(foo);
var foo=foo||'world';
console.log(foo);
})(foo);
console.log(foo);
/*
A、hello hello hello
B、undefined world hello
C、hello world world
D、以上答案都不正确
*/
10、需画图
var a=9;
function fn(){
a=0;
return function(b){
return b+a++;
}
}
var f=fn();
console.log(f(5));
console.log(fn()(5));
console.log(f(5));
console.log(a);
/*
A、6 6 7 2
B、5 6 7 3
C、5 5 6 3
D、以上答案都不正确
*/
二、问答题
1、
var ary=[1,2,3,4];
function fn(ary){
ary[0]=0;
ary=[0];
ary[0]=100;
return ary;
}
var res=fn(ary);
console.log(ary);
console.log(res);
2、
function fn(i) {
return function (n) {
console.log(n + (i++));
}
}
var f = fn(10);
f(20);
fn(20)(40);
fn(30)(50);
f(30);
3、
var i = 10;
function fn() {
return function (n) {
console.log(n + (++i));
}
}
var f = fn();
f(20);
fn()(20);
fn()(30);
f(30);
4、无需画图
var test = (function(i){
return function(){
alert(i*=2);
}
})(2);
test(5);
5、
var a=1;
var obj ={
"name":"tom"
}
function fn(){
var a2 = a;
obj2 = obj;
a2 =a;
obj2.name =”jack”;
}
fn();
console.log(a);
console.log(obj);
6、
var a = 1;
function fn(a){
console.log(a)
var a = 2;
function a(){}
}
fn(a)
7、
var a=0,
b=0;
function A(a){
A=function(b){
alert(a+b++);
};
alert(a++);
}
A(1);
A(2);
第三篇 加油
-
写出下面代码输出结果
var num = 10; var obj = {num: 20}; obj.fn = (function (num) { this.num = num * 3; num++; return function (n) { this.num += n; num++; console.log(num); } })(obj.num); var fn = obj.fn; fn(5); obj.fn(10); console.log(num, obj.num); -
写出下面代码输出结果
var fullName='language'; var obj={ fullName:'javascript', prop:{ getFullName:function(){ return this.fullName; } } }; console.log(obj.prop.getFullName()); var test=obj.prop.getFullName; console.log(test());var name='window'; var Tom={ name:"Tom", show:function(){ console.log(this.name); }, wait:function(){ var fun=this.show; fun(); } }; Tom.wait(); -
腾讯面试题
function fun(){ this.a=0; this.b=function(){ alert(this.a); } } fun.prototype={ b:function(){ this.a=20; alert(this.a); }, c:function(){ this.a=30; alert(this.a) } } var my_fun=new fun(); my_fun.b(); my_fun.c(); -
怎么规避多人开发函数重名的问题?
-
360面试题
window.val=1; var json={ val:10, dbl:function(){ this.val*=2; } } json.dbl(); var dbl = json.dbl; dbl(); json.dbl.call(window); alert(window.val + json.val);(function(){ var val =1; var json ={ val:10, dbl:function(){ val*=2; } }; json.dbl(); alert(json.val+val); })();function C1(name){ if(name) { this.name = name; } } function C2(name){ this.name =name; } function C3(name){ this.name = name ||'join'; } C1.prototype.name='Tom'; C2.prototype.name='Tom'; C3.prototype.name='Tom'; alert((new C1().name)+(new C2().name)+(new C3().name)); -
滴滴面试题
var foo = { bar: function () { console.log(this); } }; foo.bar(); (foo.bar)();
第四篇
let n = {
name:'html'
};
let m = n;
n.teacher = n = {
name:'css'
};
m.teacher = {
name:'js'
};
console.log(m.name);
console.log(n.name);
console.log(m.teacher.name);
console.log(n.teacher.name);
7.写出下面代码输出的结果
let num = Number('12.5px');
let type = typeof num;
if (num == NaN) {
alert(NaN);
} else if (type === 'number') {
alert('number');
} else if (num == 12.5) {
alert(12.5);
} else {
alert('12.5px');
}
8.写出下面代码的输出结果
console.log(1 + false + undefined + [] + null + true + '珠峰培训' + [12] + 1);
let i=1;
console.log(2-(i++)+(--i)+2+(++i)-(i--)-2);
console.log(i);
9.写出下面代码的输出结果
for (var i = 10; i >= 2; i--) {
if (i === 6) {
i-=2;
break;
} else if(i<=5) {
i=2;
} else {
i-=2;
continue;
}
i--;
alert(i);
}
alert(i);
10.写出下面代码的输出结果
Number("");
parseFloat("")
!!"parseInt(NaN)";
!typeof typeof typeof [12,23];
parseFloat("1.6px") + parseInt("1.2px");
typeof "parseInt(undefined)" + 12 + !!Number('');
typeof !!parseInt(undefined) + !parseFloat(null);