js 基础测试题

智能社javascript基础题测试
姓名:________
目前学过的获取元素的方式有哪些?并说出是通过什么获取的?获取出来几个?
Answer:
Document.getElementById();获取一个;
Document.getELementsByTagName()//获取多个;
Document.getELementsByClassName();//获取多个;
简单写出一个div层垂直水平居中的代码?
Answer:
<div id=”box”></div>
<style>
#box{ width: 100px;height: 100px; background: red; position: absolute; left: 50%; top: 50%; margin: -50px 0 0 -50px; }
</style>
Js里面操作属性的方式有哪些?分别有什么特点?
Answer:
.不可以操作变量;
[]可以操作变量;
Js里面如何定义一个变量?并说出变量与字符串的区别?
Answer:
定义变量使用 var,
变量后面如果加引号的话就是字符串;
Js中常见的变量的类型有哪些?
Answer:
Boolean/function/number/undefined/string/object/
写出以下代码的运行结果?
alert(typeof null) -> object
alert(typeof undefined) -> undefined
alert(typeof NaN) -> number
alert(null==undefined) -> true
alert(NaN==NaN) -> false
var str=’123abc’;
alert(typeof str++); ->number 直接alert( str++ )的话是NaN,NaN的数据类型就是number
alert(str) ->NaN
字符串如何转化成数字?并写出几种转化的区别
Answer:
parseInt,parseFloat,number
写一个获取非行间样式的函数?
Answer:
Function getStyle( obj,name ){
If( obj.currentStyle ){
Return obj.currentStyle[name];
}else{
Return getComputedStyle( obj,false )[ name ];
}
}
封装一个n,m的一个随机数函数?
Answer:
Function rnd( n,m ){
Return parseInt( Math.random( )*( m-n )+n );
}
什么是真?什么是假?
Answer:
True: 非0的数字,非空对象,非空字符串,true
False: 空字符串,空对象,false,undefined,NaN,0
封装一个函数,要求函数返回的结果是:今天的日期?
eg: 10/30/2013
Answer:
Fucntion getToday(){
Var oDate = new Date();
Var y = oDate.getFullYear();
Var m = oDate.getMonth();
Var d = oDate.getDate();
Return m + ‘/’ + d + ‘/’ + y;
}
以下代码的结果是多少?
function show(){
alert(‘showing’);
return function(){
alert(‘test’);
}
}
alert(show()());
Answer:
Showing/test/undefined;
以下代码的运行结果是多少?
function show(a){
alert(a);
var s=a();
return function(){
alert(s);
}
}
function a(){
alert(‘a’)
}
alert(show(a)());
Answer:
Function a(){ alert(‘a’); }/a/undefined/undefined/
把时间调到今年的元旦,写出实现代码?
Var oDate = new Date();
oDate.setFullYear( 2016,11,1 );
封装一个求和的函数?用法如下:
Answer:
Function sum(){
Var res = 0;
For(var i = 0;i < arguments.length; i++){
Res+=arguments[i];
}
Return res;
}
eg: sum(1,2,3,4,5)
截取扩展名的代码实现?
var str= ‘ abcde.html ’;
Var n = str.lastIndexOf( ‘.’ );
Alert( str.substring(n+1) );
字符串转数组,以及数组转字符串如何实现?
Answer:
字符串转数组用str.split();
数组转字符串用: arr.join();
如何实现一个字符串翻转?
eg:‘Welcome to ZhiNengshe!’->‘ZhinengShe to Welcome’
Answer:
Var newStr = str.substring(0,arr.length-1);
Alert(newStr.split(‘ ’).reverse().join(‘ ’));
如何判断一个浏览器是不是IE6?
Answer:
If( window.navigator.userAgent.indexOf(‘MSIE 6.0’) != -1 ){
Alert(‘ ie6 ’);
}
假设页面上有3个按钮,然后看以下代码点击按钮结果是多少?为了弹出正常结果,如何解决?(至少两种办法)
for(var i=0; i<aBtn.length; i++){
aBtn[i].onclick=function(){
alert(i);
}
}
Answer:3;
For( var i = 0; i < aBtn.length; i++ ){
aBtn[i].index = i;
aBtn[i].onclick = function(){
Alert( this.index );
}
}
For(var i = 0 ;i < aBtn.length; i++){
( function(index){
aBtn[i].onclick = function(){
Alert( index );
}
} )(i);
}
如何清空一个数组?(至少两种办法)
Answer:
While( ar.length ){
Arr.pop();
}
Arr.length = 0;

获取本月的第一天是周几?本月有多少天?请写出代码实现?
Answer:
本月第一天是周几:
Var oDate = new Date();
oDate.setDate(1);
Alert( oDate.getDay() );

本月共有多少天:
Var oDate = new Date();
oDate.setMonth( oDate.getMonth()+1 );
oDate.setDate( 0 );
Alert( oDate.getDate() );
写出字符串常用的方法?以及数组的常用方法?(每个至少5个)
Answer:
字符串常用的方法:
Str.split()//切割
Str.substring()//截取
Str.charAt()//字符串下标
Str.indexOf(‘’);//小字符串在大字符串中的位置;
Str.lastIndexOf()//从右往左查找小字符串在大字符串中的位置;
数组方法:
Arr.join(‘’)//数组转字符串
Arr.splice()//数组万能操作
Arr.reverse()//数组翻转
Arr.concat();//数组连接
Arr.push()//网数组后面添加
Arr.unshift();//往数组前面添加
Arr.pop()//数组后面删除
Arr.shift()//数组前面删除
自己写一个排序算法?要求从大到小排列?
Answer:
Function findMinIndex( arr,start ){
Var iMin = arr[ start ];
Var iMinIndex = start;
For( var i = start; i < arr.length; i++ ){
If( iMin<arr[i] ){
iMin = arr[i];
iMinIndex = i;
}
}
Return iMinIndex;
}

For( var i = 0;i < arr.length; i++ ){
Var n = findInMin(arr,start);
Var tmp;
Tmp = arr[n];
Arr[n] = arr[i];
Arr[i] = tmp;
}

定时器有几种?有什么区别?并列出常见例子!
Answer:
setInterval()//一直执行,关闭用clearInterval()
setTimeout()//仅执行一次;关闭定时器用clearTimeout();
以下break和continue运行的结果分别是多少?
var num=0;
For(var i=0; i<10; i++){
if(i%4==0){
break;/continue
}
Num++;
}
alert(num);、
Answer:
Break: 0;
Continue: 7
以下代码运行的结果是多少?
var count=12;
function toDo(a,b){
function toDo2(){
alert(count+a+b);
return count+a;
}
return toDo2();
}
alert(toDo(5,8));
Answer:25,17;
Var a=5;
setTimeout(function(){
alert(a);
a=666;
},1000);
a=66;
Answer: 66;
截取字符串zhinengshe的she?
Answer: Alert( substring( 7 ) );
实现 welcome to zhinengshe 字符串首字母大写?
Answer: var str = ‘welcome to china‘;
var arr = str.split(‘ ‘);
var arr1 = [];
for(var i = 0; i < arr.length; i++){
var littleStr = arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
arr1.push(littleStr);
}
alert( arr1.join(‘ ‘) );
页面输出一个九九乘法表?
Answer:
<style>
th{border: #ccc 1px solid;font-weight: normal;}
</style>

document.write(‘<table>‘);
for(var i = 0; i <= 9; i++){
document.write(‘<tr>‘);
for(var j = 1; j <= i; j++){
document.write(‘<th>‘ + j + ‘*‘ + i + ‘=‘ + ( j * i )+ ‘</th>‘);
}
document.write(‘</tr>‘);
}
document.write(‘</table>‘);
在’abcdaaaaaaaa’ 字符串中,找出出现次数最多的字符,统计下出现的次数
编写一个方法,实现数组去重?
Answer:
Var arr = [,1,2,2,34,4,5,5,6,2,4,5,6];
Arr.sort();
For( var i = 0 ; i < arr.length; i++ ){
If( arr[i] == arr[i+1] ){
Ar.splice(i,1);
I--;
}
}
Alert( arr );
要求实现 ‘a=1&b=2&c=3’ -> {a:1, b:2, c:3} 代码实现?
判断函数的参数是否都是数字,如果都是数字返回true,如果有一个不是数字就返回false
eg: testNumber(1,2,3,4); ->true testNumber(1,’a’,2,3,4); -> false
说出以下程序的结果,并给出正确的写法?
for(var i=0; i<2; i++){
setTimeout(function(){
alert(i);
},300);
}
Answer:2,正确写法为:
for(var i=0; i<2; i++){
setTimeout((function(index){
alert(index);
})(i),300);
}
写出常用的Math方法,至少7个?少于7个不得分
Answer:
Math.abs()
Math.random();
Math.sqrt();
Math.pow();
Math.min();
Math.max();
Math.round();
封装一个函数,删除数组中的奇数?
Answer:
function removeOdd(arr){
for(var i = 0; i < arr.length; i++){
if( arr[i]%2 == 1 ){
arr.splice(i,1);
i--;
}
}
return arr;
}

alert(removeOdd([1,2,3,4,5,6,7,8,9]));eg: removeOdd(arr);
简述一下eval的作用,别写出如何eval一个json形式的字符串?
Answer:
var str = ‘{a:1,b:2,c:3}‘;
eval(‘(‘ + str + ‘)‘);

在select里面,如何获取当前选中那项的文本值?如何把第2个option给删了?如何很好的添加一个?
Answer:
Var aO = oS.options;
Alert( aO.selectedIndex );//获取当前选中的那项的索引;
oS.options.remove(1);//删除
Var option = new Option( ‘河北’,’hb’ );//创建一个新的option
oS.options.add( option );//把新的option添加到select里面;

视线如下语法的功能:var a = add(2)(3)(4)//9;
视线如下语法的功能:var a = fn(5).plus(3).minus(6)//2

相关文章