20240819~20240823

93 阅读2分钟

企业微信解析网址

  • 在企业微信发送一个链接时,会自动解析网址,带上标题和图片。标题一般取页面中的title标签,图片取遇到的第一个图片。
  • 我以为通过document.title修改了标题,那么就会被解析到,实际上只解析到了默认的title标签中的内容。也就是说等到了页面再去修改标题是来不及的,企业微信等不到这个时候就已经去拿title标签的内容了。所以说客户端渲染的项目要想在每个页面设置的单独title能够被企业微信解析到,这个是无法实现的。
  • 但是服务端渲染的项目就可以,因为服务端已经把页面的标题修改逻辑在服务端执行完毕了,返回给浏览器的就是修改好title的页面。但是直接通过document.title也是不行的,必须通过angular提供的plateform/browser模块中的tilte服务去修改标题。

励志不写重复代码,决定明天把今天写的代码再封装一下。

数组中存储的是对象时,存储的到底是什么?

  • 数组中如果存储的是对象,那么存储的实际上是这个对象的地址。
 // 思考这段代码,原数组中的值会不会变。
  const a = [{t:1},{t:2},{t:3}];
  a.every(e=>{
     e.t=4;
      return true;
  })
  console.log(a)

答案是原数组变了

 // 再思考这段代码,原数组中的值会不会变。
  const a = [{t:1},{t:2},{t:3}];
  a.every(e=>{
     e = {a:1};
      return true;
  })
  console.log(a)

答案是没变,因为遍历数组时,e拿到的其实对象的地址,所以它能够访问数组中的元素,但是e={a:1}这种操作实际上是让e指向了一个新的地址。但是数组中的每项元素对应的对象地址并没有改变。

image.png