Javascript常识

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.yz的值是多少?
<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可以设置为readonlydisable,请问2者有什么区别?
readonly
不可编辑,但可以选择和复制;值可以传递到后台
disabled
不能编辑,不能复制,不能选择;值不可以传递到后台

5.js中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令式什么?
alert
confirm
prompt

6.form中的input有哪些类型?

text:文本框
password:
密码框
radio:
单选按钮
checkbox:
复选框
file:
文件选择域
hidden:
隐藏域
button:
按钮
reset:
重置按钮
submit:
表单提交按钮
image:
图片按钮,类似submit可以为按钮添加图片...

7.javaScript2种变量范围有什么不同?

全局变量:当前页面内有效

局部变量:方法内有效

8.列举javaScript3种主要数据类型,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对象是什么?
 XMLHttpRequestajax的核心机制,它是在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, DateArray对象

18.innerHTMLinnerTextouterHTMLinnerText的区别?

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()代替了BOMescape()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;


你可能感兴趣的:(Javascript常识)