参考:
http://ejohn.org/apps/learn
答案在后面。
1、看下面的例子,能看得出输出什么?
var a = 5;
function runMe(a){
console.log("a = " + a);//a=?
function innerRun(){
console.log("b = " + b);//b=?
console.log("c = " + c);//c=?
}
var b = 7;
innerRun();
var c = 8;
}
runMe(6);
for ( var d = 0; d < 3; d++ ) {
setTimeout(function(){
console.log("d = " + d);//d=?
}, 100);
}
2、下面代码输出是什么?
var count = 0;
for ( var i = 0; i < 4; i++ ) (function(i){
setTimeout(function(){
console.log(“i = ” + i);
}, i * 200);
})(i);
3、看下面的代码,最后输出是什么?
function Ninja(){
this.swingSword = function(){
return true;
};
}
Ninja.prototype.swingSword = function(){
return false;
};
var ninja = new Ninja();
console.log(ninja.swingSword());//false or true?
4、类的定义
先看下面的例子,能看得出有几个地方错误吗?
var a = {
a :0,
'b' :1,
'a' : 2,
class : 2,
first-name :2
};
5、看代码
var obj = {name : 'iteye'};
console.log(obj.age);//输出什么
console.log(obj.age.val);//这里又输出什么
6、第三行的写法正确吗?
function Ninja(){}
var ninja = new Ninja();
var ninjaB = new ninja.constructor();//可以这样写吗
7、方法的length表示什么意思?
function makeNinja(name){}
function makeSamurai(name, rank){}
makeNinja.length//?
makeSamurai.length//?
8、
function ff(){
return 1;
}
function ff(x){
return 2;
}
function ff(x,y,z){
return 3;
}
console.log(ff(1));//输出?
9、基础的东西
var foo = 0;
var bar = 0
function ff(){
this.foo = 1
bar = 1;
car = 1;
var dar = 1;
}
ff();
console.log("foo = " + foo);
console.log("bar = " + bar);
console.log("car = " + car);
console.log("dar = " + dar);
10、最后压轴的:
function addMethod(object, name, fn){
var old = object[ name ];
object[ name ] = function(){
console.log("fn.length = " + fn.length);//输出?
if ( fn.length == arguments.length )
return fn.apply( this, arguments );
else if ( typeof old === "function" )
return old.apply( this, arguments );
};
}
var a = {};
addMethod(a, "find", function(){
console.log("in find()");
});
addMethod(a, "find", function(x){
console.log("in find(x)");
});
addMethod(a, "find", function(x, y){
console.log("in find(x, y)");
});
a.find();
答案:
1、运行结果
运行结果:
引用
a = 6
b = 7
c = undefined
d = 3
d = 3
d = 3
后面三个d=3结果比较意外吧。
2、
引用
//i = 0
//i = 1
//i = 2
//i = 3
3、
引用
true
类内定义的方法会覆盖prototype定义的方法。
4、有一个地方错误,第6行first-name因为有保留字减号所以需要用引号引起来。
引用
var a = {
a :0,
'b' :1,
'a' : 2,
class : 2,
'first-name' :2
};
5、第一次输出
引用
undefined
第二次就没有输出了,而是抛出错误
引用
TypeError: obj.age is undefined
6、这样写是正确的,等价于:
引用
var ninjB = new Ninja();
7、表示方法参数的个数。
8、输出为
引用
3
后面函数的定义会覆盖前面同名函数的定义,没有方法重载。
9、输出下面
引用
foo = 1
bar = 1
car = 1
ReferenceError: dar is not defined
10、这个是实现重载的一种方式。
引用
fn.length = 2
fn.length = 1
fn.length = 0
in find()
分享到:
相关推荐
Javascript 面向对象的JavaScript进阶 Javascript技术
1.简介什么是对象万物皆对象,如手机、电脑、汽车、桌子、学生、狗、游戏等现实世界中充满着对象,符合人们的思维习惯对象具有特征和行为特征:对象具有的属性,如学生的
JavaScript进阶面试题_30题.pdf_前端面试题
手册-JavaScript进阶学习 手册-JavaScript进阶学习 手册-JavaScript进阶学习
《零基础学javascript》光盘里面的资料,JavaScript编程100例 ,pdf文档,适合初级学者,适合刚开始学javascript的人士
[JavaScript进阶]Professional JavaScript for Web Developers(3rd)第二本系统JavaScript进阶原版书
javascript进阶教程
javascript进阶.md
见过最牛 最强大的javascript 教程!!
JavaScript进阶版.xmind
JavaScript进阶第一天.zip
JavaScript进阶第一天.md
7-4 JavaScript进阶.md
JavaScript进阶基础-3 6.面向对象基础 7.前后端交互 8.cookie解决http的无状态请求 9.jsonp解决跨域问题
JavaScript进阶:JS的全局变量和全局函数.docx
java教材27-JavaScript进阶(IT job就业培训)
JavaScript高级笔记,深入讲解了函数、面向对象、继承、promise、原型、原型链
该课件内部的内容适合于对js有了基础的了解和认知,但又想往更深的地方去探索,里面有包括节流,防抖,数据解构,原型对象,还有js比较核心的函数和方法等,都有使用和介绍。让自己可以有一个质的提升,这篇文章也是...
HTML5与移动互联网开发方向,《HTML5与移动互联网应用开发基础》、《JavaScript进阶》课程仓库.zip
JAVASCRIPT高级进阶1[借鉴].pdf