三十道JS常见程序题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三十道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 = "
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
以上是关于三十道JS常见程序题的主要内容,如果未能解决你的问题,请参考以下文章