三十道JS常見程序題(二)

十一、請寫出下面輸出的值數組

Console.log(undefined || 1);//值     1 
Console.log(null || NaN);//值  NaN    
Console.log(0 && 1);//值  0   
Console.log(0 && 1 || 0);// 值 0

十二、如何垂直居中一個浮動元素?瀏覽器

// 方法一:已知元素的高寬
#div1{
background-color:#6699FF;
width:200px; height:200px;
position: absolute; //父元素須要相對定位top: 50%;
left: 50%;
margin-top:-100px ; //二分之一的height,width margin-left: -100px;
}
//方法二:未知元素的高寬
#div1{
width: 200px; height: 200px;
background-color: #6699FF;
margin:auto;
position: absolute; left: 0;
top: 0;
right: 0;
bottom: 0;
}

1三、如何垂直居中一個 img?ide

#container  //<img>的容器設置以下
{
display:table-cell; text-align:center; vertical-align:middle;
}

1四、如下 js 的運行結果是什麼,爲何?函數

var txt='hx';
function hello(){ 
var txt;
var fn=function(){alert('hello')} function fn(){alert('world');}
alert(txt);//undefined 局部變量,只是聲明,沒有賦值
fn();//hello 先進行聲明,後賦值,執行 fn=function(){alert('hello')}
}
hello();

1五、看下列代碼,將會輸出什麼?(變量聲明提高)this

var foo = 1; function(){
console.log(foo); var foo = 2; console.log(foo);
}
答案:輸出 undefined 和 2。上面代碼至關於: var foo = 1;
function(){ var foo;
console.log(foo); //undefined foo = 2;
console.log(foo); // 2;
}
函數聲明與變量聲明會被JavaScript 引擎隱式地提高到當前做用域的頂部 可是隻提高名稱不會提高賦值部分。

1六、把兩個數組合並,並刪除第二個元素。prototype

var array1 = ['a','b','c'];
var bArray = ['d','e','f'];
var cArray = array1.concat(bArray);
cArray.splice(1,1);

1七、寫一個 function,清除字符串先後的空格。(兼容全部瀏覽器)code

//使用自帶接口trim(),考慮兼容性:
if (!String.prototype.trim) {
String.prototype.trim = function() {
return this.replace(/^\s+/, "").replace(/\s+$/,"");
}
}
// test the function
var str = " \t\n test string ".trim(); alert(str == "test string"); // alerts "true"

1八、Javascript 中, 如下哪條語句必定會產生運行錯誤?答案( B )接口

A、 var _變量=NaN;B、var 0bj = [];C、var obj = //; D、var obj = {};
1九、如下兩個變量 a 和 b,a+b 的哪一個結果是 NaN? 答案( C )
A、var a=undefind; b=NaN
B、var a=‘123’; b=NaN
C、var a =undefined , b =NaN
D、var a=NaN , b='undefined'
20、var a=10; b=20; c=3; ++b+c+a++ 如下哪一個結果是正確的答案( A )
A、 34 B、35 C、36 D、37ip

相關文章
相關標籤/搜索