來源:lgl_ 發(fā)布時間:2018-11-22 14:33:14 閱讀量:1081
請給JavaScript的String 原生對象添加一個名為trim 的原型方法,用于截取空白字符。要求
alert(" taobao".trim()); // 輸出 "taobao"
alert(" taobao ".trim()); // 輸出 "taobao"
String.prototype.trim = function() {
return this.replace(/^\s+$/g, "");
};
console.log(" taobao".trim()); // 輸出 "taobao"
console.log(" taobao ".trim()); // 輸出 "taobao"
var foo = {n:1};
(function(foo){ //形參foo同實參foo一樣指向同一片內(nèi)存空間,這個空間里的n的值為1
var foo; //優(yōu)先級低于形參,無效。
console.log(foo.n); //輸出1
foo.n = 3; //形參與實參foo指向的內(nèi)存空間里的n的值被改為3
foo = {n:2}; //形參foo指向了新的內(nèi)存空間,里面n的值為2.
console.log(foo.n); //輸出新的內(nèi)存空間的n的值
})(foo);
console.log(foo.n); //實參foo的指向還是原來的內(nèi)存空間,里面的n的值為3.
同時定義兩個相同的方法:
var m= 1, j = k = 0;
function add(n) {
return n = n+1;
}
y = add(m);
function add(n) {
return n = n + 3;
}
z = add(m);
js里面沒有函數(shù)重載的概念,在其他語言中(如java)java中,可以存在同名函數(shù),
只要傳入的參數(shù)數(shù)量或者類型不同即可。在js中,定義了兩個同名函數(shù)后,
后面的函數(shù)會覆蓋前面定義的函數(shù)。結(jié)合這道題來說,由于函數(shù)聲明提升,
所以函數(shù)聲明會提前,由于存在同名函數(shù),后面的add函數(shù)將覆蓋第一個add函數(shù),
所以兩次調(diào)用add()返回的值是相同的。也就是y,z都為4.
setTimeout相關(guān)實例:
console.log('one');
setTimeout(function(){
console.log('two');
},0);
console.log('three');
one第一個執(zhí)行就不用說了,而后面的函數(shù)用了settimeout,這個函數(shù)是指定毫秒數(shù)后調(diào)用函數(shù)或者是計算表達式的,而settimeout設(shè)置為0s,你以為他會馬上執(zhí)行?其實他被js放在隊列中了,要等別人執(zhí)行完了,他才會執(zhí)行。所以如果你想讓后面的語句先執(zhí)行在執(zhí)行本身的話就用settimeout(0)吧。 ps:中間的函數(shù)沒注意大小寫
請編寫一個通用的事件注冊函數(shù)(請看下面的代碼)。
function addEvent(element, type, handler)
{
// 在此輸入你的代碼,實現(xiàn)預(yù)定功能
}
function addEvent(element,type,handler) {
// 在此輸入你的代碼,實現(xiàn)預(yù)定功能
if(element.addEventListener) {//存在的是DOM2級方法
element.addEventListener(type,handler,false);
}else if(element.attachEvent) {//存在的是IE的方法
element.attachEvent("on"+type,handler);
}else {//存在的是DOM0級方法
element["on"+type]=handler;
}
}
12、請用CSS定義p標(biāo)簽,要求實現(xiàn)以下效果: 字體顏色在IE6下為黑色(#000000);IE7下為紅色(#ff0000);而其他瀏覽器下為綠色(#00ff00)。
p{color:#0f0;*color:#f00;_color:#000;}
ie6 *html p{color:#000;}
ie7 *+html p{color:#f00;}
請編寫一個JavaScript 函數(shù)toRGB,它的作用是轉(zhuǎn)換CSS中常用的顏色編碼。 要求:
alert(toRGB("#0000FF")); // 輸出 rgb(0, 0, 255)
alert(toRGB("invalid")); // 輸出 invalid
alert(toRGB("#G00")); // 輸出 #G00
function toRGB(color) {
var str="";
var result=[];
var reg=/^#[0-9a-zA-Z]{3}$/;
if(color=="invalid") {return "invalid";}
if(reg.test(color)) {return color;}
else {
for(vari=1;i<=6;i=i+2){
str=color.sub(i,2);
var ss=str.parseInt(str,16);
result.push(ss);
}
}
return result;
}
console.log(toRGB("#0000ff")); // 輸出 rgb(0, 0, 255)
console.log(toRGB("invalid"));// 輸出 invalid
console.log(toRGB("#G00")); // 輸出 #G00
如:請編寫一個JavaScript函數(shù) parseQueryString,它的用途是把URL參數(shù)解析為一個對象
var url = “http://www.taobao.com/index.php?key0=0&key1=1&key2=2.....”
var obj = parseQueryString(url);
alert(obj.key0) // 輸出0
function parseQueryString(url) {
var result=[];
var arr=url.split("?")[1].split("&");
var len=arr.length;
for(var i=0;i<len;i++) {
var arr1=arr[i].split("=");
result[arr1[0]]=arr1[1];
}
return result;
}
var url = "http://www.taobao.com/index.php?key0=0&key1=1&key2=2&key3=3&key4=5";
var obj = parseQueryString(url);
console.log(obj.key0);//輸出0
---------------------