一些积累(做阿里笔试题)……

本文提供了一系列JavaScript实战技巧,包括函数执行上下文、自定义排序、颜色编码转换、电子邮件验证、DOM操作、事件绑定、URL参数解析及JSON数据结构创建等。
1.请说明下面各种情况的执行结果,并注明产生对应结果的理由。
function doSomething() {
  alert(this);
}
① element.onclick = doSomething,点击element元素后。
② 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);
        }
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 = {"name":"小明","age":"22","form":"杭州","interest":["电影","旅游"],"sister":
[{"name":"小芬","age":"25","job":"护士"},{"name":"小芳","age":"23","job":"小学老
师"}]};
 
 

转载于:https://www.cnblogs.com/liushuang001/p/5113982.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值