Javascript中的面试题

1、form中的input有哪些类型?各是做什么处理使用的?
text 文本
password 密码
file 上传文件
hidden 隐藏
checkbox 复选矿
radio 单选矿
button 普通按钮
submit 提交按钮
reset 重置表单按钮



input 一共十个。。
button checkbox file hidden image password radio reset submit text
哈。。

2、table标签中border,cellpadding , td标签中colspan,rowspan分别起什么作用?
border边界
cellpadding边距
colspan跨列数
rowspan跨行数


3、form中的input可以设置readonly和disable,请问这两项属性有什么区别?
readonly不可编辑,但可以选择和复制
disable不能编辑选择 复制


4、JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?
alert
confirm
prompt



-------------------------------------------------------------------------------------------------------------------



1.如何获取表单<select>域的选择部分的文本?



<form name="a">
<select name="a" size="1" οnchange="_sel(this)">
<option value="a">1</option>
<option value="b">2</option>
<option value="c">3</option>
</select>
</form>

<script>
function _sel(obj){
alert("显示文本:" + obj.options[obj.selectedIndex].text);
alert("值:" + obj.options[obj.selectedIndex].value);

}
</script>


2.在JavaScript中定时调用函数 foo() 如何写?



function foo(){
alert("aaaa");
a = setTimeout(foo(),100);
}
foo();


3.var a = 10; var b = 20; var c = 10; alert(a = b); alert(a == b); alert(a == c);结果是?



a = b 是赋值,a == b是判断值是否相同



------------------------------------------------------------------------------------------------------------------



参加JavaScript面试,必须搞懂的问题(推荐)



一. JavaScript中的对象.



JavaScript中的Object是一组数据的key-value的集合, 有点类似于Java中的HashMap, 所有这些数据都是Object里的property.

通常情况下, JavaScript中建立一个对象用"new"加上constructor function来实现.

如new Date(), new Object()等.



var book = new Object();
book.name = "JavaScript is Cool";
book.author = "tom";
book.pages = 514;



上面例子中的name和page就是名为book的对象中的property.

我们可以用delete来删除Object中的property: "delete book.name;".

除了Object, Date等buildin的对象外, 我们可以写自己的constructor function, 然后使用new就可以建立自己的对象. 如上面的book可以写成:

function Book (name, author, page) {
this.name = name;
this.author = author;
this.page = page;
}
var abook = new Book("JavaScript is Cool", "tom", 514);



二. function的用法



在JavaScript中, function是一种数据类型, 所有的function都是从buildin的Function object 衍生的对象.

所以在JavaScript 中function可以作为参数传递, 可以作为Object的property, 也可以当作函数返回值.



function在JavaScript中有两种用法,

一种是当作constructor, 前面加上new keyword用来建立对象. 一种是当作method, 为其他对象调用.



注意function和method在中文里的意思相当, 在有些语言里也可以通用.

但是在JavaScript中, 它们还是有所区别的.

function本身是一个对象, 而当作为一个方法他属于一个对象时, 就成为了一个这个对象的method, 相当于一个对象种的属性.

也就是说method是相对于一个对象而言的, function在某些情况下成为了一个对象的method.



function Book(name, author, page) {
this.name = name;
this.author = author;
this.page = page;
this.getReader = Book_getReader;
}

function Book_getReader() {
//....
}



上面的例子中, function Book_getReader()就成为了Book的一个名为getReader的method.

call()和apply()是Function object 的两个方法,

它们也可以使一个function作为另一个对象的method来调用用.

call()和apply()都需要参数, 而第一个参数就是调用对象, 也就是当function内部出现this时, this所指的对象. call()和apply()的区别在于call()可以传递任意长度参数, 只要第一个参数时调用对象. 而apply只接受两个参数, 需要将除调用对象外的所有参数放入一个数组中. 即:



function getBooksWithSameAuthor(form, to) {
var name = this.author;
var books = ...
//get books written by name and from year "from" to year "to"
return books;
}

var abook = new Book("JavaScript is Cool", "tom", 514);
var books = getBooksWithSameAuthor.call(abook, 1990, 2005);

var books = getBooksWithSameAuthor.apply(abook, [1990, 2005]);



当一个function不作为一个对象的method时, JavaScript会认为它是属于一个Globle Object对象的method, 这个Globle Object在Browser中就是window类. 所以从这个角度来说, function和method又可以统一起来了.

Function object 还有一个非常重要的property: prototype. 它是一个predefined的prototype object. 当一个Function用作对象的constructor时, protptype property将发挥作用,中文翻译叫原型. JavaScript的新对象就是通过function的原型来建立的. 同时我们还可以利用prototype来动态的向对象中添加属性, 如:

function Book (name, author, page) {
this.name = name;
this.author = author;
this.page = page;
}
var abook = new Book("JavaScript is Cool", "tom", 514);

Book.prototype.getInfo = getInfo;
function getInfo() {
return this.name + " written by " + this.author + " with " + this.page + " pages";
}

alert(abook.getInfo());

这里有一个例子, 用prototype方法来实现callback:



Function.prototype.andThen=function(g) {
var f=this;
return function() {
f();g();
}
};



function Manager() {
this.callback=function () {}; // do nothing
this.registerCallback=function(callbackFunction) {
this.callback=(this.callback).andThen(callbackFunction);
}
}



var manager=new Manager();
manager.registerCallback(sayHi);
manager.registerCallback(sayBye);
manager.callback();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值