细说Javascript中的ESM及其与CommonJS区别
esm是什么 esm 是将 javascript 程序拆分成多个单独模块,并能按需导入的标准。和webpack,babel不同的是,esm 是 javascript 的标准功能,在浏览器端和 nodejs 中都已得到实现。使用 esm 的好处是浏览器可以最优化加载模块,比使用库更有效率 esm 标准通过import, export语法实现模块变量的导入和导出 esm 模块的特点 ...
esm是什么 esm 是将 javascript 程序拆分成多个单独模块,并能按需导入的标准。和webpack,babel不同的是,esm 是 javascript 的标准功能,在浏览器端和 nodejs 中都已得到实现。使用 esm 的好处是浏览器可以最优化加载模块,比使用库更有效率 esm 标准通过import, export语法实现模块变量的导入和导出 esm 模块的特点 ...
大多数设备的刷新频率是60Hz,也就说是浏览器对每一帧画面的渲染工作要在16ms内完成,超出这个时间,页面的渲染就会出现卡顿现象,影响用户体验。前端的用户体验给了前端直观的印象,因此对B/S架构的开发人员来说,熟悉浏览器的内部执行原理显得尤为重要…
1.vue-router导航守卫(生命周期钩子) 导航守卫主要⽤来对路由的跳转进⾏监控,控制它的跳转或取消,路由守卫有全局的, 单个路由独享的, 或者组件级的。 导航钩⼦有3个参数 to:即将要进⼊的⽬标路由对象; from:当前导航即将要离开的路由对象; next:调⽤该⽅法后,才能进⼊下⼀个钩⼦函数(afterEach)。 具体有...
js是一门单线程语言,但却能优雅地处理异步程序,在于js的事件循环机制。 浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程,其中浏览器渲染进程(浏览器内核)属于浏览器多进程中的一种,主要负责页面渲染,脚本执行,事件处理等 其包含的线程有:GUI 渲染线程(负责渲染页面,解析 HTML,CSS 、构造 DOM ...
如何异步加载js脚本 1.动态插入标签的方式 通过操作dom,可以在任意位置创建js脚本,这种方式优点是无论在何时启动下载,文件的下载和执行过程不会阻塞页面其他进程(包括脚本加载)。 var script=document.createElement('script'); script.type='text/javaScript'; script.src='file1.js'; document.getElements...
1.eval(jsstr)和new Function(jsstr) eval和new Function都可以动态解析和执行字符串。会将字符串转义为js代码。区别如下: 1.对解析内容的运行环境判定不同:eval中的代码执行时的作用域为当前作用域,它可以访问到函数中的局部变量,也可以访问全局变量。new Function中的代码执行时的作用域为全局作用域,不论它的在...
1.js判断变量类型 typeof可以判断一般类型。但无法准确识别对象。所有对象或类对象类型(null)都为"object",比如数组typeof [] == "object"。JS数据类型在底层都是以二进制的形式表示的,二进制的前三位为 0 会被 typeof 判断为对象类型,而 null 的二进制位恰好都是 0 ,因此,null 被误判断为 Object 类型。 typeof...
作为前端开发中现行最火的框架之一,基于此,总结了一些 Vue 方面经常出现的问题,留给自己查看消化,也分享给有需要的小伙伴。 由于篇幅较长,不能将所有知识点放到一篇文章内。这是Vue重点知识梳理理论篇的第二篇。前端茫茫,学无止境。 1.模板引擎原理(指令和插槽表达式如何生效) 使用with改变作用域,渲染数据。并...
1.Fetch替代Ajax Fetch并不是ES6的语法(应该是ES7),而是未来用于替代XMLHttpRequest的API, 它是W3C的正式标准。 Fetch API提供了一个fetch()方法,它被定义在BOM的window对象(全局方法)中。 该方法返回的是一个Promise对象。 fetch 规范与 jQuery.ajax() 不同: 当接收到一个代表错误的 HTTP 状态码时,从 fetch(...
1.列举ES6的一些新特性 默认参数 模板字符串 解构赋值 增强的对象字面量 箭头函数 Promises 异步 generator和async/await 块作用域 和let和const Class 类 Modules 模块 2.let ,const,var及其区别 JS代码在执行前会进行预解析。预解析会进行变量提升。 var 声明的变量会发生提升(提升到当前作用域顶部)。虽然变量还...