IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 腾讯 二面 记录 -> 正文阅读

[JavaScript知识库]腾讯 二面 记录

项目相关

1. 垃圾回收机制

当一个对象可被程序引用时,他就是活跃的

function f() {
  var obj = {x: 12};
  return obj.x;
}
// obj.x,obj都是活跃的

如果一个对象可经由某个被定义为活跃对象的对象,通过某个指针链所访问,则它就是活跃的。其他的都被视为垃圾。

标记清除
引用计数

2. vue react 数据流的流向 引出的 -> vue双向绑定(react源码不是很熟)

响应式原理 大概说一下吧(可以看一下之前发的文章)

vue响应式原理 对象篇

3. https

  1. 客户端发送报文给服务器端开始ssl通信,报文中包含客户端支持的ssl版本,加密组件列表,算法和密钥长度

  2. 如果服务器确定了可以使用SSL通信,就会发送响应报文给客户端,报文中包含SSL版本和加密组件

  3. 服务器把公开密钥正式发送给客户端

  4. 服务器端发送报文通知客户端,最初的SSL握手协商接受

  5. 客户端生成随机密码串,并用之前客户端发过来的公钥证书加密,再通过报文发送给服务器端

  6. 客户端继续发送报文,告诉服务器端,之后客户端发送的报文,都会使用刚才发送过去的随机密码串进行加密

  7. 客户端发送结束报文,包含连接至今的全部报文,如果服务器端可以正确解密该报文,则本次握手成功

  8. 服务器端也会发送报文,告诉客户端,之后服务端响应的数据都会使用随机密码串进行加密

  9. 服务器端发送结束报文,包含连接至今的全部报文的整体校验值。如果客户端可以正确解密该报文,则本次握手协商成功

之前写的有关http的知识文章

4. 浏览器缓存

强缓存
协商缓存
一些具体的说一下

5. 数据类型 -> 引出的 浮点数

有关0.1 + 0.2 不等于0.3的问题

console.log(0.1+0.2===0.3)// false

JavaScript Number 采用的是 IEEE 754 定义的 64 位双精度浮点型来表示

  • toFixed()方法
function formatNum(num, fixed = 17) {
    console.log(num.toFixed(fixed))
    // fixed = 16  0.3000000000000000
    // fixed = 17  0.30000000000000004
    return parseFloat(num.toFixed(fixed))
  }
  var a = 0.1 + 0.2;
console.log(formatNum(a)); //0.3
  
// fixed的值有限制
  • 直接取小数点后几位
function add(num1, num2) {
    var Len1 = (num1.toString().split('.')[1] || '').length;
    //第一个参数的小数个数  
    var Len2 = (num2.toString().split('.')[1] || '').length;
    //第二个参数的小数个数  
    var baseNum = Math.pow(10, Math.max(Len1, Len2));
    return (num1 * baseNum + num2 * baseNum) / baseNum;
}

console.log(add(0.1, 0.2)); //0.3

6. 树对象转数组/对象转树

树组件通用知识点:树结构打平为一维数组
给定如下数据结构:
const tree = [
  {
    id: "1",
    label: "1",
    children: [
      { id: "1-1", label: "1-1" },
      { id: "1-2", label: "1-2" },
      { id: "1-3", label: "1-3" }
    ]
  },
  {
    id: "2",
    label: "2",
    children: [
      { id: "2-1", label: "2-1" },
      { id: "2-2", label: "2-2" },
      { id: "2-3", label: "2-3" }
    ]
  }
];
实现一个函数:flatTree(tree)

[{id: "1",label: "1"},{id: "1-1", label: "1-1",parentID: "1"}..]


输出:一维数组


[{id:"1",label:"1"},{id:"1-1", label:"1-1", parentId:"1"},{.....}]

答案:

let resArr = [];
function flatTree(tree,parentId = '') {
	tree.forEach((item) => {
        const obj = {};
		obj.id = item.id;
        obj.label = item.label;
        if (parentId) obj.parentId = parentId
        if (item.children) {
            resArr.push(obj);
            flatTree(item.children,item.id);
            
		} else {
			resArr.push(obj);
		}
    });
}
flatTree(tree)
console.log(resArr);
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:00:21  更:2021-08-20 15:03:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:13:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码