Skip to content
On this page
  • ^d+[^d]+能匹配哪个字符串?
    • 123dd123d123d123
    • 答案:
  • SVG和Canvas的特点、区别
    • SVG支持事件处理器、不依赖分辨率、强文本渲染能力
  • 哪些请求头,跨域不会触发OPTIONS请求(即简单请求)
  • 输出结果:v a b v
js
window.value = 'v';
function fn() {
  console.log(this.value);
}
function callArrowFn() {
  const arrowFn = () => {
    console.log(this.value);
  }
  arrowFn();
}

function getArrowFn() {
  const arrowFn = () => {
    console.log(this.value);
  }
  return arrowFn;
}

const objA = {
  value: 'a',
  fn: fn
}
const objB = {
  value: 'b',
  fn: callArrowFn
}
const objC = {
  value: 'c',
  fn: getArrowFn()
}

fn();
objA.fn();
objB.fn();
objC.fn();
  • 怎么得到0.1 + 0.2的准确值
    • 将数字都乘以100后相加,再除以100
    • 使用Math.js
    • (0.1 + 0.2).toFixed(1)
    • 不能实现:通过go实现的服务端执行0.1 + 0.2后返回给前端
      • 几乎所有现代的编程语言都会遇到上述问题,包括 Java、Ruby、Python、Swift 和 Go 等等
  • 输出结果:无
js
Promise.resolve(0).catch(e=>e).catch(e=>console.log(e));
  • 输出结果:
js
const Err = async () => {
  throw new Error(0);
}
const obj = {
  async A(){
    try{
      await Err();
    }catch{
      console.log('A');
    }
  },
  async B(){
    try{
      Err();
    }catch{
      console.log('B');
    }
  },
  async C(){
    try{
      return Err();
    }catch{
      console.log('C');
    }
  }
}
const fn = async () => {
  for(const key in obj){
    try {
      await obj[key]();
    }catch{
      console.log('D');
    }
  }
}
fn();

MIT Licensed | Copyright © 2021 - 2022