1.请说明下面各种情况的执行结果,并注明产生对应结果的理由。
① element.onclick = doSomething,点击element元素后。
function doSomething() {
alert(
this
);
}
② element.onclick = function() {doSomething()}, 点击element元素后。
③ 直接执行doSomething()。
解析:
①弹出element object,通过函数赋值方式,this直接指向element对象
②弹出window object,this是写在doSomething这个函数里面的,而这种方式的事件绑定写法并没有将element对象传递给this,而在默认情况下this指向window
③弹出window object,没有绑定对象的情况下this默认指向window
2.请用JavaScript语言实现 sort 排序函数,要求:sort([5, 100, 6, 3, -12]) // 返回 [-12, 3, 5, 6, 100]。
function sort(arr){
for
(var i=
0
;i<arr.length-
1
;i++){
for
(var j=
0
;j<arr.length-i-
1
;j++){
if
(arr[j]>arr[j+
1
]){
var hand=arr[j];
arr[j]=arr[j+
1
];
arr[j+
1
]=hand;
}
}
}
return
arr;
}
或者:
var
arr = [-12,3,5,6,100];
arr.sort(
function
(a,b){
return
a-b;
});
3.编写一个JavaScript 函数toRGB,它的作用是转换CSS中常用的颜色编码。
alert(toRGB(
"#0000FF"
));
// 输出 rgb(0, 0, 255)
alert(toRGB(
"invalid"
));
// 输出 invalid
alert(toRGB(
"#G00"
));
// 输出 #G00
function toRGB(color) {
var regex = /^#([
0
-9a-fA-F]{
2
})([
0
-9a-fA-F]{
2
})([
0
-9a-fA-F]{
2
})$/
match = color.match(regex)
return
match ?
'rgb('
+parseInt(match[
1
],
16
)+
','
+parseInt(match[
2
],
16
)+
','
+parseInt(match[
3
],
16
)+
')'
: color
}
4.请编写一个JavaScript函数,它的作用是校验输入的字符串是否是一个有效的电子邮件地址。要求: a) 使用正则表达式。 b) 如果有效返回true ,反之为false。
var
checkEmail =
function
(email){
var
preg =
"(^[a-zA-Z]|^[\w-_\.]*[a-zA-Z0-9])@(\w+\.)+\w+$"
,,
pregObj =
new
RegExp(preg);
return
pregObj.test(email);
}
5.编写一段JavaScript脚本生成下面这段DOM结构。要求:使用标准的DOM方法或属性。
<div id=”example”>
<p
class
=”slogan”>淘!你喜欢</p>
</div>
window.onload = function() {
var div = document.createElement('div');
div.id = "example";
var p = document.createElement('p');
p.className = "slogan";
p.innerHTML = '淘!你喜欢';
div.appendChild(p);
document.body.appendChild(div);
}
var div = document.createElement('div');
div.id = "example";
var p = document.createElement('p');
p.className = "slogan";
p.innerHTML = '淘!你喜欢';
div.appendChild(p);
document.body.appendChild(div);
}
6.编写一个通用的事件注册函数
function addEvent(element, type, handler)
{
// 在此输入你的代码,实现预定功能
}
function addEvent(element, type, handler)
{
// 在此输入你的代码,实现预定功能
if
(element.addEventListener)
{
element.addEventListener(type, handler,
false
);
}
else
if
(element.attachEvent)
//for IE
{
element.attachEvnet(“on” + type, handler);
}
else
{
element[“on” + type] = handler;
}
}
7.编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象,如:
var
url = “http:
//www.taobao.com/index.php?key0=0&key1=1&key2=2.....”
var
obj = parseQueryString(url);
alert(obj.key0)
// 输出0
function
parseQueryString ( name ){
name = name.replace(/[[]/,
"\["
).replace(/[]]/,
"\]"
);
var
regexS =
"[\?&]"
+name+
"=([^&#]*)"
;
var
regex =
new
RegExp( regexS );
var
results = regex.exec( window.location.href );
if
( results ==
null
)
return
""
;
else
return
results[1];
}
8.用JSON语法编写一个对象: “小明今年22岁,来自杭州。兴趣是看电影和旅游。他有两个姐姐,一个叫小芬,今年25岁,职业是护士。还有一个叫小芳,今年23岁,是一名小学老师。”
var person = ?
var person = ?
var person = {
"name"
:
"小明"
,
"age"
:
"22"
,
"form"
:
"杭州"
,
"interest"
:[
"电影"
,
"旅游"
],
"sister"
:
[{
"name"
:
"小芬"
,
"age"
:
"25"
,
"job"
:
"护士"
},{
"name"
:
"小芳"
,
"age"
:
"23"
,
"job"
:"小学老
师"}]};