LadderLay/JavaScript365

快手

Opened this issue · 2 comments

  1. 自我介绍
  2. 项目 做了哪些优化
  3. 写9道题
1. `console.log(typeof typeof typeof null);` 打印出什么结果

    

2. `'abcdcba'.replace(/c/, "h");` 返回什么结果

    

3. 元素 p 内的文字最终什么颜色

   ```html
   <style>
    .classA { color:blue; }
    .classB { color:red;}
   </style>
   <p class="classB classA">hello</p>
   ```

   

4. a 输出的内容是什么

   ```js
   var a = 1;
   function fn() { 
     console.log(a);
     var a = 2;
   }
   fn();
   ```

      

5. data 会输出么,如果会输出内容是什么,不会输出请说明原因

   ```js
   Promise.resolve('123')
       .then(() => throw new Error('456'))
       .catch((e) => console.log(e)))
       .then((data) => console.log(data));
   ```

   

6. 如下代码输出什么

   ```js
   var name = '123';
   var obj = {
      name: '456',
      getName: function () {
          function printName () {
              console.log(this.name);
          }
          printName();
      }
   }
   
   obj.getName();
   ```



7. 如下代码输出什么;

   ```js
   var a = { x: 1 };
   var b = a;
   a.x = 2;
   a = { n: 1 };
   console.log(a);
   console.log(b);
   ```

   

8. 如下代码输出什么;

   ```js
   var count = 10;
   function a() {
       return count + 10;
   }
   
   function b() {
       var count = 20;
       return a();
   }
   
   console.log(b());
   ```

   

9. 写出 1 2 的打印顺序,并说明代码的执行过程

   ```js
   setTimeout(() => {  A
       setTimeout(() => { B
           console.log(1);
       }, 0);
   }, 0);
   
   setTimeout(() => { C
       console.log(2);
   }, 100);
   ```

   function formatColor(color) {

}

输入:'RGB(0, 10, 255)'
输出:'#000AFF'
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

输入:s = "()[]{}"
输出:true

输入:s = "([)]"
输出:false

输入:s = "([])"
输出:true
给定一个加减运算字符串,计算其运算结果,注意运算符左右可能包含空格

输入:1 +2 +3
输出:6

输入:1-34 +20 -6
输出:-19

T3:

  1. typeof 的返回值为字符串
  2. 知识盲区:正则
  3. css样式覆盖优先级:不同类型, 标签选择器 = 伪类 < 类选择器 < ID选择器 < !important;同一类型,css文件中越靠后优先级越高;
  4. 声明提升
  5. Promise promise返回值
// return 值
返回状态为 fulfilled 的 Promise
如无return 则返回 undefined
// return Promise
// throw Error
返回状态为 rejected 的 Promise
  1. this 指向 输出123
  2. 亲戚题目:js 连等赋值
  3. JS词法作用域
  4. 输出 1 2

T4. 比较简洁的实现

// RGB转16进制
function formatColorTo16(color) {  
    // 数字转换成字符串时,Number.prototype.toString(radix) 可以指定转换的基数 radix 取值范围为2~32
    let res = '#'
    let tmp = color.slice(color.indexOf('(')+1,color.length-1).split(',')

    tmp.forEach(ele => {
        ele = Number(ele).toString(16).toUpperCase()
        ele = ele.length === 1 ? '0'+ele : ele
        res += ele
    })
    console.log(res)
    return res
}
formatColorTo16('RGB(0, 10, 255)')

// 16进制转RGB
function formatColorToRGB(color) {  
    // 字符串转换成数字时, parseInt(str,radix) 可指定转换的基数 转换成对应的十进制数
    let res = []
    for(let i=1; i<color.length-1; i+=2) {
        let tmp = color.slice(i,i+2)
        res.push(parseInt(tmp,16))  //res.push(Number('0x'+tmp)) 

    }
    res = 'RGB('+res.join(',')+')'
    console.log(res)
    return res
}
formatColorToRGB('#000AFF')

T5
高频题 括号匹配 用栈解决

T6
处理运算式字符串 进阶 -> Leetcode 227 还有一个224