测试题来源:
测试题来源:
https://www.nowcoder.com/practice/edbc7496a36e433c89d298b9256af856?tpId=6&tqId=10951&rp=1&ru=/ta/js-assessment&qru=/ta/js-assessment/question-ranking
题目11描述
输入
[1, 2, 4, 4, 3, 4, 3], 4
输出
3
function count(arr, item) {
var count = 0;
for(var i=0; i<arr.length; i++) {
if(arr[i] === item) {
count++;
}
}
return count;
}
foreach
function count(arr, item) {
var count = 0;
arr.forEach(function(a) {
a == item ? count=count+1 :count=count+0;
});
return count;
}
==与===区别摘抄自 http://blog.sina.com.cn/s/blog_4b32835b01014iv9.html
1、对于string,number等基础类型,==和===是有区别的
1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等
2)同类型比较,直接进行“值”比较,两者结果一样
2、对于Array,Object等高级类型,==和===是没有区别的
进行“指针地址”比较
3、基础类型与高级类型,==和===是有区别的
1)对于==,将高级转化为基础类型,进行“值”比较
2)因为类型不同,===结果为false
题目12描述
输入
[1, 2, 4, 4, 3, 3, 1, 5, 3]
输出
[1, 3, 4]
var a=arr.sort(),b=[];
for(var i in a){
if(a[i]==a[i-1] && b.indexOf(a[i])==-1) b.push(a[i]);
}
return b;
}
题目13描述
输入
[1, 2, 3, 4]
输出
[1, 4, 9, 16]
function square(arr) {
for(var i=0;i<arr.length;i++){
arr[i]=arr[i]*arr[i];
}
return arr;
}
题目14描述
输入
'abcdefabc'
输出
[0, 6]
function findAllOccurrences(arr, target) {
var result=[];
for(var i=0;i<arr.length;i++){
if(arr[i]===target){
result.push(i);
}
}
return result;
}
function findAllOccurrences(arr, target) {
var result=[],index=arr.indexOf(target);
while(index>-1){
result.push(index);
index=arr.indexOf(target,index+1);
}
return result;
}
题目15描述
myObject = {
name : 'Jory'
};
return myObject;
}
改后
function globals() {
var myObject = {
name : 'Jory'
};
return myObject;
}
题目16描述
输入
true
输出
a
function functions(flag) {
if (flag) {
function getValue() { return 'a'; }
} else {
function getValue() { return 'b'; }
}
return getValue();
}
改后
function functions(flag) {
if (flag) {
var getValue= function () { return 'a'; }
} else {
var getValue=function () { return 'b'; }
}
return getValue();
}
题目17描述
输入
'12'
输出
12
输入
'12px'
输出
12
输入
'0x12'
输出
0
原题
function parse2Int(num) {
return parseInt(num);
}
function parse2Int(num) {
return parseInt(num,10);
}
详情请见w3
题目18描述
return val1===val2;
}
题目描19述
1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1
2、返回的对象中需要包含一个 cancel 方法,用于停止定时操作
3、第一个数需要立即输出
function count(start, end) {
//立即输出第一个值
console.log(start++);
var timer = setInterval(function(){
if
(start <= end){
console.log(start++);
}
else
{
clearInterval(timer);
}
},
100
);
//返回一个对象
return
{
cancel : function(){
clearInterval(timer);
}
};
}
题目20描述
1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz
2、如果 num 能被 3 整除,返回字符串 fizz
3、如果 num 能被 5 整除,返回字符串 buzz
4、如果参数为空或者不是 Number 类型,返回 false
5、其余情况,返回参数 num
输入
15
输出
fizzbuzz
if(num%3 == 0 && num%5 == 0)
return "fizzbuzz";
else if(num%3 == 0)
return "fizz";
else if(num%5 == 0)
return "buzz";
else if(num == null || typeof num != "number")
return false;
else return num;
}
每一篇,10题,还在继续编辑中,需要的朋友关注下