dejavu00 / fed-e-task-01-01

拉勾教育大前端高薪训练营作业要求

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

邓力 | Part 1 | 模块一

简答题

此处回答简答题的内容。每一题为一个三级标题,可以后面跟上题目,也可以不跟,下面为格式示例:

第一题

最终执行结果为:打印出 10。

原因是因为 当调用此函数时,for循环已经执行完毕,var 定义的i是全局变量,此时已经变为10,所以打印为 10

第二题

抛出错误 Uncaught ReferenceError: Cannot access 'tmp' before initialization ES6规定,如果在块级区域存在const 或 let命令,在变量声明前就形成一个封闭的区域,如声明之前使用这些变量,就会抛错。

第三题

const sortArr = arr.sort((a,b) => { return a-b }); const min = sortArr[0];

第四题

let、const声明的变量仅在块级作用域内有效,var 声明变量是全局的,没有块级作用域功能 let 、const 不存在变量声明提升, var 存在变量声明提升 let 、const不能在同一块级作用域内重复申请, var可以 let声明的是变量,const声明的是常量,只读,修改值会报错,const保存的是内存地址,可以给对象或数组添加属性或元素,但是不能重新复写

第五题

打印 20 obj.fn(); 函数调用,this指向obj,setTimeout中使用箭头函数,可以捕获当前函数作用域下的this,也就是obj,this.a即是obj.a 的值20

第六题

Symbol是一种原始数据类型,表示一个独一无二的值。用途为对象添加独一无二的属性名以及对象私有成员实现。

第七题

深浅拷贝针对数组或对象等复杂类型,简单来说,浅拷贝只是复制第一层对象属性,而深拷贝递归复制对象所有属性 深浅拷贝主要区别在于:复制的是引用地址还是实例 如果仅仅复制引用地址,复制后的对象和原对象指向同一地址,彼此操作仍会影响为浅拷贝 在如果在堆中重新分配内存,引用不同的地址,但是值是一样的,复制后的对象和原来对象完全隔离,互不影响为深拷贝

第八题

Javscript是单线程的,如遇到耗时长的代码,会阻塞后面代码执行,下面是异步编程方案

ES 6以前:

  • 回调函数
  • 事件监听(事件发布/订阅)

ES 6:

  • Promise对象
  • Generator函数(协程coroutine)

ES 7:

  • async和await Event loop 监听调用栈和消息队列,宏任务和微任务是异步任务的两种分类,通过事件循环来进行对应任务顺序执行。

第九题

/code/app.js

第十题

Javascript的超集或者扩展集,Javascript基础上多了一些扩展特性,如类型系统和对ES6+的支持

第十一题

优点: TypeScript 增加了代码的可读性和可维护性 TypeScript 提高代码效率,避免报错,兼容性较好 TypeScript 功能更为强大,生态也更健全,更完善

缺点: 有一定的学习成本,需要理解接口(Interfaces)、泛型(Generics)、类(Classes)、枚举类型(Enums)等前端工程师可能不是很熟悉的概念 项目初期会增加一些开发成本,毕竟要多写一些类型的定义,不过对于一个需要长期维护的项目,TypeScript 能够减少其维护成本 可能和一些库结合的不是很完美

项目文件说明

如果是有编程题或者项目演示,需要额外提交文件,可以直接放在当前仓库中。 这里简单描述当前仓库中的文件结构,下面为格式示例:

  • notes : 笔记
  • code : 代码
  • explain.mp4 : 作业演示视频

About

拉勾教育大前端高薪训练营作业要求


Languages

Language:JavaScript 100.0%