概述:## 一、请说出下列最终执行结果,并解释为什么。 ``` var a = [] for(var i = 0; i 10; i ++){ a[i] = function(){ console.log(i) } } a[6]() ``` 答案:最终输出结果:10。原因:var声明的变量i是全局变量,循环结束的时候i的值是10,方法调用时循环已经结束,打印i是10。 ## 二、请说出下列最终执行结果,并解释为什么 ``` var tmp = 123 if(true) { console.log(tmp) let tmp } ``` 答案:最终执行结果会报错,报错信息
概述:简答题 一、谈谈你是如何理解JS异步编程的,EventLoop、消息队列都是做什么的,什么是宏任务,什么是微任务? JS异步编程 Javascript语言的执行环境是单线程(single thread),所谓单线程,就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个
概述:简答题 1、谈谈你对工程化的初步认识,结合你之前遇到过的问题说出三个以上工程化能够解决问题或者带来的价值。 解答:工程化是指遵循一定的标准和规范通过工具去提高效率,降低成本的一种手段,一切以提高效率、降低成本、质量保证为目的的手段都属于工程化。 工程化主要解决的问题: (1)重复的机械工作,比如部署上线前需要手动压缩代码及资源文件,部署过程需
概述:一、模块化开发 common.js规范 一个文件就是一个模块 每个模块都有单独的作用域 通过module.exports导出成员 通过require函数载入模块 commonJS是以同步模式加载模块 AMD(异步的模块定义规范) Require.js ES Modules 基本特性 自动采用严格模式 每个ESM模块都是单独的私有作用域 ESM是通过CORS去请求外部JS模块的 ESM的script标签会延迟执行脚本 导入和导出 !--加载模块不需要提取成员-- import {} fro
概述:1、Webpack 的构建流程主要有哪些环节?如果可以请尽可能详尽的描述 Webpack 打包的整个过程。 初始化package.json npm init 安装webpack webpack-cli npm install webpack webpack-cli --save 在项目根目录添加webpack.config.js 配置打包入口entry、指定输入文件名称、指定输出目录、设置工作模式等 module . exports = { mode: development , // 开发模式 entry: ./src/main.js , // 入口文件 output: { filename: bundles.js , // 输出文件
概述:1、描述引用计数的工作原理和优缺点 答案: 工作原理: 核心思想:设置引用数,判断当前引用数是否为0 引用计数器 引用关系发生改变时修改引用数字 引用数字为0时立即回收 优点: 发现垃圾时立即回收 最大限度减少程序暂停 缺点: 无法回收循环引用的对象 时间开销大 2、标记整理算法的工作流程 答案:标记整理的标记过程与标记-清除算法一样,先遍历所有对象找标记活
概述:1、简述 TypeScript 与 JavaScript 之间的关系 答案: TypeScript是由Microsoft开发的面向对象语言,TypeScript是 JavaScript 的超集,包含了 JavaScript 的所有元素,在TypeScript中可以运行JavaScript代码。 TypeScript可以运行JavaScript所有代码和编码方式 使用TypeScript中一些新的概念,可使JavaScript开发变得容易和快捷 TypeScript 加入一些新的概念(类) 使javascript实现一些复杂功能变得容易 javascript 可以直接同
概述:const PENDING = pending ; // 等待 const FULFILLED = fulfilled ; // 等待 const REJECT = reject ; // 等待 class MyPromise { constructor ( executor ) { try { executor( this .resolve, this .reject) } catch (e) { console .log(e, e) this .reject(e); } } status = PENDING; // promise 状态 value = undefined ; // 成功之后的值 reason = undefined ; // 失败后的原因 successCallback = []; // 成功回调 failCallback = []; // 失败回调 resolve = ( value ) = { // 如果状态不是等待 阻
概述:3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ``` setTimeout(function() { var a = hello; setTimeout(function() { var b = lagou; setTimeout(function() { var c = I ❤ U; console.log(a + b + c); }, 10); }, 10); }, 10); ``` 答 案 : ``` const promise = new Promise((resolve, reject) = { resolve(hello) }).then(res = { return res + + lagou + }).then(res = { return res + I ❤ U }).then(res = { console.log(res, res) throw res }).c
概述:ECMAScript与JavaScript区别与联系 ECMAScript是JavaScript语言本身,通常看作JavaScript得标准化规范 JavaScript是ECMAScript的扩展语言 ECMAScript只提供了最基本得语法,停留在语言层面,不能用于实际开发 2015年开始ES保持每年一个大版本更新 ECMAScript2015新特性 1、let声明变量,新增了块级作用域。外层代码块不受内层代码块的影响 块级作用域以{}区分 2、ES6允许块级作用域的任意嵌套。内层作用
概述:TypeScript是一个编译到纯JS的有类型定义的JS超集。 TS遵循当前以及未来出现的ECMAScript规范。TS不仅能兼容现有的JavaScript 代码,它也拥有兼容未来版本的JavaScript的能力。大多数TS的新增特性 都是基于未来的JavaScript提案,这意味着许多TS代码在将来很有可能会变成ECMA的标准
概述:函数式编程中的函数指的不是程序中的函数方法,而是数学中的函数即映射关系,是对运算过程的抽象,是用来描述数据之间的映射 // 非函数式 let a = 1 , b = 2 , c = a + b ; console . log ( c ) // 函数式 const aa = ( a , b ) = { return a + b } let c = aa ( 1 , 2 ) console . log ( c ) 函数式编程语言的特性 函数是一等公民 函数可以存储在变量中 函数可以作为参数 函数可以作为返回值 高阶函数 什么是高阶
概述:Javascript是一门非常灵活的语言,我们可以随心所欲的书写各种风格的代码,不同风格的代码也必然也会导致执行效率的差异,作用域链、闭包、原型继承、eval等特性,在提供各种神奇功能的同时也带来了各种效率问题,用之不慎就会导致执行效率低下,开发过程中零零散散地接触到许多提高代码性能的方法,整理一下平时比较常见并且容易规避的问题。
概述:Javascript语言的执行环境是单线程(single thread),所谓单线程,就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段
概述:最近因为工作需要,正在学习extjs,刚开始接触感觉很懵,也是看了不少教程,开启了一个项目实例后,开始有了更加深入的了解,这里总结一下使用Extjs开发项目所需要的环境配置,以及如何开启一个本地的Extjs项目。
概述:使用vue,不熟练的话会出现很多问题无法解决,最近一段时间在用vue开发一个app,本地调试好之后使用Cordova打包成前端app项目,装在手机上打开页面一直是空白状态,哎,也是路径问题...
概述:前端在项目开发中经常会在前后端交互的环节出现跨域问题,最近看到一篇对前端跨域解释比较全面的文章,这里分享给大家。
概述:相信很多刚开始学习vue.js的同学都会遇到初始化项目后,修改页面就报错的问题,想当初我刚开始学vue也是遇到过同样的问题,页面一上来动一下立马报错,根本没有信心继续学习下啊,其实这个问题很好解决,有两种解决办法分享给大家...
概述:使用vue.js开发的项目本地调试好了上传服务器,页面空白,还有好多错误报出,如下图所示: 相信使用vue的朋友们都遇到过吧,记得第一次使用vue的时候也遇到过同样的问题,所有的js,css,图片打包完成之后路径都找不到了,当时也是找了很久的原因才解决,这里就和大家分享一下...
橙子,热爱前端,关注前端,4年的前端工作经验,熟练掌握前端各项技能,熟练多种前端框架,希望遇到志同道合的前端朋友们,一起学习交流,共同进步!