js的一些题(在公司的考核题目) [九待补充]

一、string的方法 注释略写,贴个链接

string.split() 分割成字符串数组

string.charAt 返回指定字符

string.indexOf 返回指定值索引 eg: “abc” str.indexOf(“b”)=>1

string.concat(str1,str2) 合并

string.slice() 提取部分并返回

string.toUppercase() 大写

string.toLowerCase() 小写

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/charAt 左侧

二、array的方法

Array,isArray() 检测数组

Array.push() 追加(最后)

Array.pop() 删除(最后)

Array.shift() 删除(开头)

Array.unshift() 追加(开头)

Array.reverse() 反转

Array.sort() 排序

Array.concat() 连接

Array.slice() 分割

Array.forEach() 遍历

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray 左侧

三、object的方法

Object.keys() 返回对象属性名

obj.seal() 禁止对象配置

obj.isSealed() 判断对象是否可配置

obj.freeze() 冻结对象

obj.isFrozen() 判断是否被冻结

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys 左侧

四、五个常用的引用类型

array,Function,object,date,RegExp

五、写出一个方法,将输入的参数是什么数据类型返回出来

eg:show(1)=>number ; show(null)=>null

Object.prototype.toString.call(参数)

六、写出控制台输出

① function show(){
function log(){return 1}
setTimeout(()=>{
return log()
});
}
console.log(show())=>undefined

② function show(){
function log(){return 1}
setTimeout(()=>{
return console.log(log())
});
}
show()=>1

七、随机生成字母+数字的验证码

Math.random().toString(36).slice(2)

八、实现obj.num===7 && obj.num===8 obj.num===9为true

var num=7;
Object.defineProperty(this,’a’,{
get(){
return num++;
}
})
console.log(a==7&&a==8&&a==9)

九、实现一个方法满足下列条件:

show(1,2,{add:true})===>3

show(1,2,4,5,7,8,9,{add:true})==>36

show({add:true},1,2)==>3

show(‘a’,1)==>’参数错误’

show({add:false},1,0,5)==>0

//????有错误,待补充

十、冒泡排序和二分法排序

冒泡排序:

function sort(arr){
    for(var i=0;i<arr.length-1;i++){
        for(var j=0;j<arr.length-i-1;j++){
            if(arr[j]>arr[j+1]){
                var temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
    console.log(arr)
}
var arr=[1,9,3,5,6]
sort(arr)

二分法排序:

function sort2(array) {
var len = array.length,
i, j, tmp, low, high, mid, result;
result = array.slice(0);
for(i = 1; i < len; i++){ tmp = result[i]; low = 0; high = i - 1; while(low <= high){ mid = parseInt((low + high)/2, 10); if(tmp < result[mid]) high = mid - 1; else low = mid + 1; } for(j = i - 1; j >= high+1; j–){
result[j+1] = result[j];
}
result[j+1] = tmp;
}
return result;
}
var arr=[1,9,3,5,6];
document.write(sort2(arr));