参考:
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面向对象进阶知识点详解 #### 8.1 面向对象编程的基本特性 在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承...
《JavaScript进阶问题列表》是一份全面覆盖JavaScript高级知识点的问题集合,旨在帮助开发者深入理解JavaScript语言的各个方面,并掌握进阶技巧。每个问题都提供了详细的答案和解析,涵盖了JavaScript的高级特性、...
JavaScript是一种广泛用于网页和...总之,JavaScript进阶学习涵盖了对象的概念、DOM操作和事件处理等方面,这些都是构建交互式Web应用的基础。通过熟练掌握这些知识,开发者可以创建出更加动态和用户体验丰富的网页。
《编程实践:JavaScript进阶100例》是一份专为初级JavaScript学习者设计的资源,旨在通过丰富的实例帮助初学者深入理解这门语言。这份PDF文档包含了一系列精心挑选的编程练习,覆盖了JavaScript的核心概念和实用技巧...
然后,深入理解原型和原型链是JavaScript进阶的关键。这涉及到对象的创建、继承机制,以及如何利用原型来实现面向对象编程。掌握`__proto__`、`prototype`以及`Object.create()`等概念,能帮助我们更好地设计和复用...
手册-JavaScript进阶学习 手册-JavaScript进阶学习 手册-JavaScript进阶学习
JavaScript进阶面试题_30题.pdf_前端面试题 从这份文件中,我们可以总结出以下的知识点: 1. ECMAScript6 中的类语法糖:ECMAScript6 中引入了类语法糖,这使得有 OOP 基础的人更容易上手 JavaScript。虽然对熟悉 ...
JavaScript进阶版.xmind
### JavaScript进阶知识点详解 #### 1. 函数防抖与节流 在JavaScript中,函数防抖(debounce)和节流(throttle)是两种常见的性能优化手段,主要应用于处理高频触发的事件。 **防抖**技术是通过设置一个延时器,...
JavaScript进阶第一天.md
7-4 JavaScript进阶.md
在“JavaScript进阶第一天”的学习资源中,我们可以深入探讨以下几个关键知识点: 1. **变量与数据类型**:JavaScript支持七种数据类型,包括基本数据类型(Number、String、Boolean、Null、Undefined、Symbol、...
【JavaScript进阶基础-3】 在JavaScript中,进阶基础涉及到很多重要的概念,尤其是面向对象、前后端交互、Cookie以及JSONP。以下是对这些概念的详细解析: **面向对象基础** 面向对象是一种编程范式,它关注的是...
这个JavaScript进阶教程涵盖了以下主题: 1. **基础知识**:介绍JavaScript的基本语法,如何在HTML中引入脚本,以及简单的示例。 2. **JavaScript对象**:讲解JavaScript的面向对象特性,如何定义和使用对象。 3. *...
《JavaScript进阶》是Nicholas C. Zakas所著的JavaScript领域的专业书籍,是《Professional JavaScript for Web Developers》第三版的中文翻译版。这本书旨在帮助读者深入理解JavaScript编程语言,从基础到高级特性...
本章主要关注JavaScript进阶,特别是如何使用内部对象、创建自定义对象以及操作数组。 在JavaScript中,对象由属性和方法组成。属性存储对象的状态,相当于与变量关联的信息,而方法是执行特定操作的函数,与对象的...
JavaScript高级笔记,深入讲解了函数、面向对象、继承、promise、原型、原型链
《JavaScript进阶》课程则深入探讨了JavaScript这门脚本语言的核心概念和高级特性。JavaScript是Web开发中不可或缺的一部分,尤其在移动互联网领域,它是实现页面动态效果、用户交互和数据处理的主要工具。课程可能...
Ajax技术,全称为“Asynchronous JavaScript and XML”,是一种在无需重新加载整个页面的情况下,能够更新部分网页的技术。Ajax的核心是XMLHttpRequest对象,它允许浏览器向服务器发送异步请求,并处理响应,从而...
JavaScript进阶篇通常会包括更高级的JavaScript知识和技巧,而CSS的学习则侧重于如何设计和实现网页的视觉和布局效果。XML(Extensible Markup Language,可扩展标记语言)则是一种用于存储和传输数据的标记语言,它...