SOURCE

//冒泡
// var arr = [2, 3, 1, 4, 5, 3, 5, 7]

// for (var i = 0; i < arr.length; i++) {
//     for (var j = 0; j < arr.length - 1 - i; j++) {
//         if (arr[j] > arr[j + 1]) {
//             var value = arr[j + 1]
//             arr[j + 1] = arr[j]
//             arr[j] = value
//         }
//     }
// }
// console.log(arr)

//数组去重
// var sameArr = [2, 3, 4, 5, 5, 4, 3, 2]
// var obj = {}
// var sameData = []
// sameArr.forEach((value, index) => {
//     if (obj[value] == undefined) {
//         obj[value] = true
//         sameData.push(sameArr[index])
//     }
// })
// console.log(sameData)

//找出一个字符串中出现次数最多的字母
// var str = 'abcdefghdijklmnopqrdstucdvwdxyz'
// var arrStr = str.split('')
// var showNum = 0
// let tempNum = 0
// var index = null
// for (var a = 0; a < arrStr.length; a++) {
//     tempNum = 0
//     for (var b = 0; b < arrStr.length - 1; b++) {


//         if (arrStr[b] === arrStr[b + 1]) {
//             tempNum = tempNum + 1


//         }
//         // console.log(tempNum,'tempNum')
//         let temc = null
//         temc = arrStr[b]
//         arrStr[b] = arrStr[b + 1]
//         arrStr[b + 1] = temc
//     }
//     if (tempNum > showNum) {
//         index = a
//         showNum = tempNum
//     }
//     console.log(tempNum, showNum, a, b)
// }

// console.log(showNum, tempNum, index, arrStr[index], arrStr,
//     `${arrStr[index]}出现次数最多,为${showNum + 1}`)

// var obj = {}
// str.split('').forEach((value,index)=>{
//     if(obj[value]==undefined){
//         obj[value] = 1
//     }else{
//         obj[value] = obj[value] + 1
//     }
// })
// var max = 0
// var objKey = ''
// for(key in obj){
//     if(obj[key] > max){
//         max = obj[key]
//         objKey = key
//     }

//     // console.log(obj[key],key,'key')
// }
// console.log(obj,max,objKey,'obj')

// let p0 = new Promise(function (resolve, reject) {
//     resolve()
//     console.log(`6`)
// }).then((res) => {
//     console.log(`0`);
// }).then((res) => {
//     console.log(`1`);
// })

// let p1 = new Promise(function (resolve, reject) {
//     resolve()
// }).then(() => {
//     console.log(`2`);
// })

// p0.then((res) => {
//     console.log(`3`);
// }).then(() => {
//     console.log(`4`)
// })
// console.log(`5`)


/*
首先执行同步代码(promise回调中的也属于同步代码,所以先执行po中的resolve,将
console.log(0)加入到了微任务队列,打印6,接着执行p1中的resolve,将
 console.log(`2`)加入到了微任务队列,然后打印5,然后根据从上往下的执行
 顺序先后将console.log(1)、console.log(3)和
 console.log(4)依次加入到微任务队列,然后根据微任务队列的排序,先后打印0、2、
 1、3、4)
 */


//   import React, { FC, useState } from 'react';
// let index = 0
// const App: FC = function(): JSX.Element {
//   const [number, setNumber] = useState(0)

//   if (!index) const [name] = useState('Tom')

//   const [age] = useState(18)

//   if (index) const [action] = useState('say')

//   index++
//   console.log(age)
//   return (
//     <div onClick={() => setNumber(number + 1)}>
//       Add
//     </div>
//   )
// }
// export default App

//   setTimeout(function() {
//     console.log('a')
//   }, 0)
//   new Promise(function(resolve) {
//     console.log('b')
//     for (let i = 0; i < 10000; i++) {
//       if (i === 10) {
//         console.log('c')
//       }
//       i == 9999 && resolve('d')
//     }
//   }).then(function(val) {
//     console.log(val)
//   })
//   console.log('e');
console 命令行工具 X clear

                    
>
console