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")); // 输出 invalidalert(toRGB("#G00")); // 输出 #G00function 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) // 输出0function 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":"小学老师"}]};