三十道JS常见程序题(二)

11、请写出下面输出的值

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

12、如何垂直居中一个浮动元素?

// 方法一:已知元素的高宽
#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;
}

13、如何垂直居中一个 img?

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

14、以下 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();

15、看下列代码,将会输出什么?(变量声明提升)

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 引擎隐式地提升到当前作用域的顶部 但是只提升名称不会提升赋值部分。

16、把两个数组合并,并删除第二个元素。

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

17、写一个 function,清除字符串前后的空格。(兼容所有浏览器)

//使用自带接口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"

18、Javascript 中, 以下哪条语句一定会产生运行错误?答案( B )

A、 var _变量=NaN;B、var 0bj = [];C、var obj = //; D、var obj = {};
19、以下两个变量 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、37

猜你喜欢

转载自blog.51cto.com/14648170/2505961