XMLHTTPRequest对象什么是?
最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。
sort()参数的使用及其内部机制。
sort() 方法用于对数组的元素进行排序。
语法: arrayObject.sort(sortby)
参数:sortby 可选。规定排序顺序。必须是函数。
说明:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
* 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
* 若 a 等于 b,则返回 0。
* 若 a 大于 b,则返回一个大于 0 的值。
1.求y和z的值是多少?
<script type="text/javascript">
var x = 1;
var y = 0;
var z = 0;
function add(n){n=n+1;}
y = add(x);
function add(n){n=n+3;}
z = add(x);
</script>
都为undefined,因为没有返回值。
2.javascript是面向对象的,怎么体现javascript的继承关系?
使用prototype来实现。
3.javascript怎样选中一个checkbox,怎样设置它无效?
document.all.cb1[0].disabled = true;
4.form中的input可以设置为readonly和disable,请问2者有什么区别?
readonly不可编辑,但可以选择和复制;值可以传递到后台
disabled不能编辑,不能复制,不能选择;值不可以传递到后台
5.js中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令式什么?
alert
confirm
prompt
6.form中的input有哪些类型?
text:文本框
password:密码框
radio:单选按钮
checkbox:复选框
file:文件选择域
hidden:隐藏域
button:按钮
reset:重置按钮
submit:表单提交按钮
image:图片按钮,类似submit可以为按钮添加图片...
7.javaScript的2种变量范围有什么不同?
全局变量:当前页面内有效
局部变量:方法内有效
8.列举javaScript的3种主要数据类型,2种复合数据类型和2种特殊数据类型。
主要数据类型:string, boolean, number
复合数据类型:function, object
特殊:null,undefined
9.程序中捕获异常的方法?
代码如下:
<script type="text/javascript">
try{
...some code...
}catch(e){
...some code... //处理错误
throw(e.name); //抛出异常
}finally{<BR> // 完成后执行的语句块,非必须<BR>}
</script>
javascript Error 对象:
name: 错误名称
number: 错误号
description: 描述信息
message: 错误信息
fileName: 错误发生的文件
stack: 错误发生时的调用堆栈
window.error
try{}catch(){}finally{}
10.写出函数DateDemo的返回结果,系统时间假定为今天
function DateDemo(){
var d, s="今天日期是:";
d = new Date();
s += d.getMonth() + "/";
s += d.getDate() + "/";
s += d.getYear();
return s;
}
结果:今天日期是:7/17/2010
11.写出程序运行的结果?
for(i=0, j=0; i<10, j<6; i++, j++){
k = i + j;
}
结果:10(小心陷阱)
12.运行的结果?
function hi(){
var a;
alert(a);
}
结果:undefined
13.运行的结果?
function hi(){
var a = null;
alert(a);
}
结果:null
14.浏览器的对象模型?
window
顶级对象
window.alert(msg)
window.prompt()
window.confirm()
if(window.confirm()){
...
}
window.open()
window.close()
document
document.write()
history
当用户浏览网页时,浏览器保存了一个最近所访问网页的url列表。这个列表就是用history对象表示。
history.back():后退
history.forward():前进
history.go(n):正数表示向前,负数表示向后
location
表示当前打开的窗口或框架的URL信息。
location.href:重定向
等价于location.assign(url)
location.host:类似www.163.com:80
navigator
表示浏览器的信息及js运行的环境
navigator.cookieEnabled:该属性表示是否启用cookie
screen
用于显示网页的显示器的大小和颜色
screen.width/screen.height:表示显示器的分辨率(总的宽度,高度)
15.XMLHTTPRequest对象是什么?
XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单的说,也就是javascript可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。
它的属性有:
onreadystatechange 每次状态改变所触发事件的事件处理程序。
responseText 从服务器进程返回数据的字符串形式。
responseXML 从服务器进程返回的DOM兼容的文档数据对象。
status 从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)
status Text 伴随状态码的字符串信息
readyState 对象状态值
0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
1 (初始化) 对象已建立,尚未调用send方法
2 (发送数据) send方法已调用,但是当前的状态及http头未知
3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
4 (完成) 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据
但是,由于各浏览器之间存在差异,所以创建一个XMLHttpRequest对象可能需要不同的方法。这个差异主要体现在IE和其它浏览器之间。
16.超链接的属性target的可选值:_blank, _parent, _self, _top和框架名称有什么区别?
_blank 是指超链接连接的网页 是通过一个新的网页窗口打开
_self的话 是指在本身这个网页窗口来打开新的网页链接
_top与_self差不很大 但是如果你用了<!--#include file="..."-->时 就会知道两者的差别了
因为如果你的超链接是做在 <!--#include file="..."-->上时
如果用_self 点击后的超链接就会在<!--#include file="..."--> 这个页面上打开
而页面其它部分不会改变 如果用_top 则会整个窗口一起跳转到新的链接网页
_parent主要是针对于框架网页中的跳转 如果你一个页面由两三个框架组成
你要想整个页面跳转到其它网页链接 目标就需要用_parent了 如果不用这个 就只会使得那一小块框架区域里的网页跳转 而其它的地方则不变
17.javascript的常用对象有哪些?
String, Math, Date和Array对象
18.innerHTML,innerText,outerHTML,innerText的区别?
innerHTML 设置或获取位于对象起始和结束标签内的 HTML
outerHTML 设置或获取对象及其内容的 HTML 形式
innerText 设置或获取位于对象起始和结束标签内的文本
outerText 设置(包括标签)或获取(不包括标签)对象的文本
Javascript 的全局函数
全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。全局对象不是任何对象的属性,所以它没有名称。
全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象。
FF: Firefox, N: Netscape, IE: Internet Explorer
函数 |
描述 |
FF |
N |
IE |
decodeURI() |
解码某个编码的 URI。 |
1 |
4 |
5.5 |
decodeURIComponent() |
解码一个编码的 URI 组件。 |
1 |
4 |
5.5 |
encodeURI() |
把字符串编码为 URI。 |
1 |
4 |
5.5 |
encodeURIComponent() |
把字符串编码为 URI 组件。 |
1 |
4 |
5.5 |
escape() |
对字符串进行编码。 |
1 |
- |
3 |
eval() |
计算 JavaScript 字符串,并把它作为脚本代码来执行。 |
1 |
2 |
3 |
getClass() |
返回一个 JavaObject 的 JavaClass。 |
|||
isFinite() |
检查某个值是否为有穷大的数。 |
1 |
4 |
4 |
isNaN() |
检查某个值是否是数字。 |
1 |
2 |
3 |
parseFloat() |
解析一个字符串并返回一个浮点数。 |
1 |
2 |
3 |
parseInt() |
解析一个字符串并返回一个整数。 |
1 |
2 |
3 |
unescape() |
对由 escape() 编码的字符串进行解码。 |
1 |
- |
3 |
FF: Firefox, N: Netscape, IE: Internet Explorer
属性 |
描述 |
FF |
N |
IE |
Infinity |
代表正的无穷大的数值。 |
1 |
4 |
4 |
java |
代表 java.* 包层级的一个 JavaPackage。 |
|||
NaN |
指示某个值是不是数字值。 |
1 |
4 |
4 |
Packages |
根 JavaPackage 对象。 |
|||
undefined |
指示未定义的值。 |
1 |
4 |
5.5 |
Note:
encodeURI()和encodeURIComponent()方法用于编码传递给浏览器的URI(统一资源标识符)。有效的URI不能包含某些字符,如空格。这两个方法用于编码URI,这样用专门的UTF-8编码替换所有的非有效字符,就可以使浏览器仍能够接受并理解它们。
encodeURI()方法用于处理完整的URI(例如,http://www.wrox.com/illegal value.htm),而encodeURIComponent()用于处理URI的一个片断(如前面的URI中的illegal value.htm)。这两个方法的主要区别是encodeURI()方法不对URI中的特殊字符进行编码,如冒号、前斜杠、问号和英镑符号,而encodeURIComponent()则对它发现的所有非标准字符进行编码。例如:
var sUri = "www.sohu.com/abc def 我.aspx";
alert(encodeURI(sUri));
alert(encodeURIComponet(sUri));
这段代码输出两个值:
www.sohu.com/abc%20def%20%E6%88%91.aspx
www.sohu.com%2Fabc%20def%20%E6%88%91.aspx
可以看到,除空格外,第一个URI无任何改变,空格被替换为%20。第二个URI中的所有非字母数字字符都被替换成它们对应的编码,基本上使这个URI变得无用。这就是encodeURI()可以处理完整URI,而encodeURIComponent()只能处理附加在已有URI末尾的字符串的原因。
自然,还有两个方法用于解码编码过的URI,即decodeURI()和decodeURIComponent()。如你所料,这两个方法所做的恰与其对应的方法相反。decodeURI()方法只对用encodeURI()方法替换的字符解码。例如,%20将被替换为空格,而%23不会被替换,因为它表示的是英镑符号(#),encodeURI()并不替换这个符号。同样的,decodeURIComponent()会解码所有encodeURIComponent()编码过的字符,意味着它将对所有的特殊值解码。例如:
在这个例子中,变量uri存放的是用encodeURIComponent()编码的字符串。生成的值说明了应用两个解码方法时会发生的事情。第一个值由decodeURI()输出,把%20替换成空格。第二个值由decodeURIComponent()输出,替换所有的特殊。
这些URI方法encodeURI()、encodeURIComponent()、decodeURI()和decodeURICom- ponent()代替了BOM的escape()和unescape()方法。URI方法更可取,因为它们会对所有Unicode符号编码,而BOM方法只能对ASCII符号正确编码。尽量避免使用escape()和unescape()方法。
sample:
var s="WebForm1.aspx?a=" + encodeURIComponent('abc &=*def 我') + "&b="+ encodeURIComponent('abc def & = *大集合');
alert(s);
window.location.href=s;