当ES模块第一次在ECMAScript 2015中被引入,作为在JavaScript中标准化模块系统的一种方式时,它是通过在import语句中指定相对或绝对路径来实现的。 import dayjs from “https://cdn.skypack.dev/dayjs@1.10.7”; // ES modules console.log(dayjs(“2019-01-25”).format(“YYYY-MM-DDTHH:mm:ssZ[Z]”));这与模块在其他通用模块系统中的工作方式略有不同,例如CommonJS,以及在使用webpack这样的模块捆绑器时,使用的是更简单的语法。 const dayjs = require(‘dayjs’) // C ...
蓝狮官网6 个意想不到的 JavaScript 问题
作为前端开发工程师,JavaScript 是我们的主要开发语言,它本身语法比较简单,并且生态系统也非常完善,在社区的影响力越来越大。 在我们使用过程中,经常会遇到各种奇怪的问题,蓝狮注册登陆让我们经常摸不着头脑。 本文灵感来自wtfjs,整理了 6 个比较常见并且很有意思的问题。 奇怪的 try..catch:question:问题 下面代码执行后将返回什么? 2 还是 3 ? (() => {try {return 2;} finally {return 3;}})();:bulb:解答 答案是 3 ,这是为什么呢?这是因为在 try…catch…finally 语句中,无论是否抛出异常 final ...
蓝狮官网前端性能优化之控制请求并发数
在我们平时开发中,经常会遇到页面数据初始化时,频繁调同一个接口的情况。比如echarts项目中,一个页面可能会有几十张图表,如果一个接口返回所有图表数据的话,会造成用户过长的等待时间,再者过多图表同时渲染,也会给页面增加压力,造成卡顿的现象。 我们通常会让每个图表单独调一个接口,入参不同,这样更有利于页面快速渲染图表,单个图表请求到数据,立即渲染,不需要等待其他图表。可理想很丰满,现实很骨感,当服务器配置过低,或者后端代码性能较弱,会难以处理这些并发请求,接口调用越多,蓝狮注册登陆等待处理的 ...
蓝狮官网vue3解构赋值失去响应式引发的思考!
前言vue3发布以来经历两年风头正盛,现在大有和react 平分天下的势头,我们知道他是基于proxy 实现响应式的能力, 解决了vue2所遗留下来的一些问题,蓝狮注册登陆同时也正由于proxy的特性,也提高了运行时的性能 凡事有利有弊, proxy虽然无敌,但是他也有本身的局限,从而产生一些我认为的弊端(其实就是不符合js语言的自然书写方式,有的人觉得就是个特殊写法,他不属于弊端) 1、 原始值的响应式系统的实现 导致必须将他包装为一个对象, 通过 .value 的方式访问2、 ES6 解构,不能随意使用。会破坏他的响应式特性好奇 ...
蓝狮注册登陆8 个简单又好用的前端拖拽排序库
今天来推荐 8 个简单又好用的前端拖拽排序库! 1、react Beautiful Dndreact-beautiful-dnd 是一款美观且简单易用的 React 列表拖拽库。蓝狮注册开户其动画效果自然,性能优秀,简洁而强大的 api,易于上手,与标准浏览器的互动性非常好。 Github:https://github.com/atlassian/react-beautiful-dnd。 2、SortableSortable 是一个 JavaScript 拖拽库,用于在现代浏览器和触摸设备上对拖放列表进行重新排序。支持 Meteor、angularJS、React、Polymer、vue、Ember、Knockout 和任何 css 库。 Github:https://github. ...
蓝狮注册登陆前端面试题:Call的用法及实现
大家好,我是前端西瓜哥。 我之前写了一篇手写 bind 的文章,里面直接使用了原生 call 方法。 有读者说他面试的时候这个 call 也要求自己实现的。 那我们今天来手写 call。apply 的实现也是一样,蓝狮注册开户只是调用形式有点区别。 call 的用法我们先看看 Function.prototype.call() 的用法。 call() 可以修改函数调用时 this 的指向,其余参数则会作为原函数的参数。 call 接收的参数: 第一个参数 thisArg。代表 this 将会被指向的值。如果不是对象,也会通过 Object() 方法转换为对象。如果是 null 或 ...
蓝狮注册登陆Angular项目过大?合理拆分它!
前言本文描述如何合理拆分项目,关于性能优化等方面后续的文章再讨论。 angular 让人诟病的一点就是打包后体积很大,蓝狮注册开户一不小心 main.js就大的离谱,其实遇到类似的问题,不管是体积大、数据大、还是流量大,就一个思路:拆分。再配合浏览器的缓存机制,能很好的优化项目访问速度。 本文相关代码在:https://github.com/Vibing/angular-webpack 拆分思路整个项目包括:强依赖库(Angular框架本身)、UI组件库及第三方库、业务代码部分;用户行为维度:用户的所有访问基于路由,蓝狮注册登陆一个路由一个页面; ...
蓝狮注册登陆你能给前端工程化下个定义么?
作为前端工程师,前端工程化是经常听到的概念,但虽然经常听到,很多人对它的认识依然很模糊。 比如,提到前端工程化,他并不能说出什么是前端工程化。给出一门具体的技术,他也不能确定是不是属于工程化范畴的技术。 这是因为他没有对前端工程化有一个概念上的认识。 那么,这篇文章我们就来给前端工程化下个定义吧。 什么是前端工程化提到前端工程化,最容易想到的就是编译了。蓝狮注册开户很多代码需要经过编译才能运行在目标环境: 高版本的语法需要用 babel 编译成低版本的。less、sass 要经过各自的编译器 ...
蓝狮注册登陆如何让别人看不懂你的 JS 代码?
我们在上周的文章中一种奇特的 JavaScript 编码风格:Get 一种可以用来装逼的 JavaScript 编码风格,引起了广大网友的热议。 这是实际上属于一种代码混淆技术,可以让们的代码更难阅读和逆向,同时也能租网一些恶意爬虫和自动化分析。天我就带大家来看看还有哪些其他能让 JavaScript 代码变得难以分析的代码混淆技术。 我们以下面这段代码为例: console.log(“ConardLi”,666);通过一些转换,它可以变成下面这个样子: 怎么做到的呢?我们一起来看一下~ 十六进制字符串编码我们尝试去 Javascript Obf ...
蓝狮注册登陆如何将一个大的Promise.all拆分为几个较小的部分依次执行
前段时间在用Promise.all执行一个非常大批量的操作时遇到一个奇怪的问题。 这个Promise.all需要遍历一个指定目录中的所有文件,并以异步的方式读取文件内容并进行后续操作。由于目录中的文件数目比较多(大约8000+),Promise.all在执行的过程中有许多文件读取失败,但是如果指定一个文件数量比较少的目录则不存在这个问题。查看浏览器的Network会看到一开始的时候这些文件的访问都是pending状态,但是随着数量的增加,蓝狮注册开户一部分pending最后都变成failed了。然后在Console中也会看到有许多的Failed to load resource ...