智能社 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( Windows.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
来源: http://www.bubuko.com/infodetail-2933803.html