js
文章平均质量分 59
何以为皇
这个作者很懒,什么都没留下…
展开
-
JS模板字符串的简单实现
由于前不久遇到一个前端笔试题,实现一个建议的模板渲染函数,但是没能做出来,于是在此进行总结记录。题目大致内容如下:// 实现一个简易模板渲染// 例 renderTpl('我已经有${year}年${pos}开发经验了', {year: '2', pos: '前端'}) 输出 '我已经有2年前端开发经验了'使用过ES6的模板字符串语法的人都知道,可以使用${}将变量包起来,替代原来ES5的+拼接字符串。这个函数要实现的功能正是如此。因为是使用${}这种特定的语法,我们很容易想到,使用正则将.原创 2021-11-18 18:35:22 · 686 阅读 · 0 评论 -
eventEmitter简单实现
由于前不久做某厂的前端笔试题,遇到这道题没能实现出来,于是在此进行总结记录。EventEmitter是Node.js中提供的一个监听器类,类似于前端vue中的eventBus事件总线。其原理主要是发布订阅者模式。用订阅杂志进行类比,所有的杂志就是一个大对象: events: {}意林是其中一款杂志,那么意林就是events对象中的一个属性,值为数组(因为订阅意林杂志的人可以不止一个): events: {'意林': []}当我订阅意林,那么我就应该收入倒意林数组中,让意林知道我订阅了.原创 2021-11-13 23:08:21 · 5743 阅读 · 0 评论 -
详细的跨域问题解决方案
同源策略:协议相同(protocol)主机相同(host)端口相同(port)如果不满足同源策略的网络请求就形成了跨域。一.解决方案之 jsonp:前端代码showJsonp = function (obj) { console.log(obj)}// 回调函数拼在请求参数中const url = 'http://localhost:3030/getTodoJsonp?callback=showJsonp'// 利用script标签的src属性发起请求,解决跨域的问题,但仅限原创 2021-10-28 15:06:44 · 170 阅读 · 0 评论 -
前端下载二进制流文件
前后端对接时,后端常有返回二进制流文件的情况,前端需要下载或预览(pdf、html、图片文件等)。下面介绍几种实现前端获取二进制流并下载或预览的方式1.直接预览二进制流文件如果返回的二进制流是一个pdf文件或图片文件。那么可以通过打开新标签页的方式进行文件预览。例如请求如下接口https://via.placeholder.com/150/24f355,返回一个图片文件,前端可以使用window.open("https://via.placeholder.com/150/24f355")来打开新标签.原创 2021-10-09 15:54:21 · 1349 阅读 · 0 评论 -
node连接mysql实现简单服务
在学习前端技术的过程中,总是会需要调用接口获取数据,没有后端朋友的时候就可以自己动手这里使用express框架和mysql数据库实现简单的接口服务,代码如下。包含 查询所有、根据id查询、分页查询、删除、新增相关接口// 引入expressconst express = require('express')// 引入mysqlvar mysql = require('mysql')const app = express()let port = 3030 // 设置服务端允许的端口号/.原创 2021-07-11 22:10:43 · 140 阅读 · 0 评论 -
学习正则表达式
首先要明白正则表达式可以干什么?正则表达式是用于匹配字符串中字符组合的模式。简单的说就是比如你想知道一串数字是否是正确的手机号。就需要用到正则表达式。由于之前一直对正则表达式的知识比较薄弱,所以在此进行查缺补漏一、创建一个正则表达式创建一个正则表达式的方法有两种:字面量创建;const regTest = /[a-z]/使用构造函数创建const regTest = new RegExp('[a-z]');这里就使用第一种简单字面量的方式来熟悉正则表达式相关知识。正则表达式的.原创 2021-06-05 21:28:44 · 257 阅读 · 0 评论 -
JS读取用户命令行输入的信息
这阵子在看牛客网上看一些编程题,发现有一部分的编程题是需要读取用户输入,并输出结果的。在我开发前端以来,使用JS读取用户输入的内容好像从没用过。所以一开始的我一头雾水。网上有介绍说Node的方法readline可以逐行读取用户输入信息。于是便在此对readline方法进行总结readline使用// 1.引入readline模块const readline = require('readline');// 2.创建 Interface 类的实例const rl = readline.creat.原创 2021-06-04 21:41:26 · 4301 阅读 · 2 评论 -
JS中scrollHeight,clientHeight、scrollTop、offsetTop等相关属性介绍
获取页面可视高度document.getElementById("#id").clientHeight获取当前dom元素的可滚动高度document.getElementById("#id").scrollHeight获取当前dom元素的滚动距离document.getElementById("#id").scrollTopscrollHeight = scrollTop + clientHeight...原创 2020-10-25 20:05:13 · 3446 阅读 · 1 评论 -
前端利用Blob对象创建指定文件并下载
一、Blob对象Blob对象表示一个不可变、原始数据的类文件对象。Blob 表示的不一定是JavaScript原生格式的数据。File接口基于Blob,继承了blob的功能并将其扩展使其支持用户系统上的文件。构造函数var aBlob = new Blob( array, options );array是一个由ArrayBuffer(二进制数据缓冲区)、ArrayBufferView(二进制数据缓冲区的array-like视图)、Blob、DOMString等对象构成的Array,或者其他类似转载 2020-09-10 16:55:11 · 1699 阅读 · 3 评论 -
用js获取当前路由信息的方法
1,设置或获取对象指定的文件名或路径。alert(window.location.pathname)2,设置或获取整个 URL 为字符串。alert(window.location.href);3,设置或获取与 URL 关联的端口号码。alert(window.location.port)4,设置或获取 URL 的协议部分。alert(window.location.protocol)5,设置或获取 href 属性中在井号“#”后面的分段。alert(window.location转载 2020-08-11 22:21:45 · 4186 阅读 · 0 评论