1、請寫出console結(jié)果
setImmediate(function () {
? ? console.log(7)
});
setTimeout(function () {
? ? console.log(1)
}, 0);
process.nextTick(function () {
? ? console.log(6)
? ? process.nextTick(function () {
? ? ? ? console.log(8)
? ? })
});
new Promise(function executor(resolve) {
? ? console.log(2);
? ? for (var i = 0; i < 10000; i++) {
? ? ? ? i == 9999 && resolve();
? ? }
? ? console.log(3);
}).then(function () {
? ? console.log(4);
});
console.log(5);
//執(zhí)行隊(duì)列(同步) 2 3 5? 6 8
//任務(wù)隊(duì)列(異步) 4 (1,7)
2凝果、兩個(gè)有序數(shù)組合并成一個(gè)有序數(shù)組
function sortSTB(arr1,arr2){
? ? ?let index1 = 0,index2 = 0;
? ?let result = [];
? ?while(index1 !== arr1.length && index2 !== arr2.length){
? ? ? ?if(arr1[index1] <= arr2[index2]){
? ? ? ? ? ? result.push(arr1[index1]);
? ? ? ? ? ? index1++;
? ? ? ? }else{
? ? ? ? ? ? ?result.push(arr2[index2]);
? ? ? ? ? ? ?index2++;
? ? ? ? }
? ? ?}
? ? ?if(index1 === arr1.length){
? ? ? ? result = result.concat(arr2.slice(index2));
? ? }else{
? ? ? ? ?result = result.concat(arr1.slice(index1));
? ? }
? ? ?return result;
?}
3祝迂、12345678 ——> 12,345,678
var num=12345678;
var str=num+"";
function rever(str){
return str=str.split("").reserve().join("");
}
str=rever(str)
var result="";
for(var i=1;i<str.length;i++){
? result=result+str[i-1];
? if(i%3==0&&i!=str.length){
? ? ? result+=","
? }
}
result=rever(result)
? console.log(result)
4、盡可能多的方法寫一下數(shù)組去重
//雙層循環(huán)
var array = [1, 1, '1', '1'];
function unique(array) {
? ? var res = [];
? ? for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
? ? ? ? for (var j = 0, resLen = res.length; j < resLen; j++ ) {
? ? ? ? ? ? if (array[i] === res[j]) {
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? if (j === resLen) {
? ? ? ? ? ? res.push(array[i])
? ? ? ? }
? ? }
? ? return res;
}
console.log(unique(array)); // [1, "1"]
//利用indexOF
var array = [1, 1, '1'];
function unique(array) {
? ? var res = [];
? ? for (var i = 0, len = array.length; i < len; i++) {
? ? ? ? var current = array[i];
? ? ? ? if (res.indexOf(current) === -1) {
? ? ? ? ? ? res.push(current)
? ? ? ? }
? ? }
? ? return res;
}
console.log(unique(array));
//ES6 SET
var array = [1, 2, 1, 1, '1'];
function unique(array) {
? return Array.from(new Set(array));
}
console.log(unique(array)); // [1, 2, "1"]
5器净、實(shí)現(xiàn)繼承
//原型鏈繼承
function Cat(){
}
Cat.prototype = new Animal();
Cat.prototype.name = 'cat';
var cat = new Cat();
console.log(cat.name);
//構(gòu)造繼承
function Cat(name){
? Animal.call(this);
? this.name = name || 'Tom';
}
var cat = new Cat();
console.log(cat.name);
//拷貝繼承
function Cat(name){
? var animal = new Animal();
? for(var p in animal){
? ? Cat.prototype[p] = animal[p];
? }
? Cat.prototype.name = name || 'Tom';
}
var cat = new Cat();
console.log(cat.name);
<!DOCTYPE html>
<html lang="en">
<head>
? ? <meta charset="UTF-8">
? ? <title>冒泡排序</title>
</head>
<body>
<script>
? ? //思路:先比較一輪一次型雳,然后用for循環(huán)比較一輪多次,然后再加for循環(huán)比較多輪多次
? ? //從大到小排序
? ? var array=[10,20,9,8,79,65,100];
? ? //比較輪數(shù)
? ? for ( var i=0;i<array.length-1;i++){
? ? ? ? //每輪比較次數(shù)山害,次數(shù)=長度-1-此時(shí)的輪數(shù)
? ? ? ? for (var j=0;j<array.length-1-i;j++) {
? ? ? ? ? ? if (array[j] > array[j + 1]) {
? ? ? ? ? ? ? ? var temp = array[i];
? ? ? ? ? ? ? ? array[j] = array[j + 1];
? ? ? ? ? ? ? ? array[j + 1] = temp;
? ? ? ? ? ? } //end if
? ? ? ? }//end for 次數(shù)
? ? } //end for 輪數(shù)
? ? console