Kaifei's Blog

blog.xiekaifei.com


  • 首页

  • 分类

  • 标签

  • 归档

  • 搜索

JavaScript验证文件格式

发表于 2023-06-30 | 分类于 技术 , JavaScript

一、利用唯一文件类型说明符限制上传文件类型

唯一文件类型说明符,表示在 file 类型的 input 元素中用户可以选择的文件类型。每个唯一文件类型说明符可以采用下列形式之一:

  • 一个以英文句号(“.”)开头的合法的不区分大小写的文件名扩展名。例如:.jpg、.pdf 或 .doc 。
  • 一个不带扩展名的 MIME 类型字符串。
  • 字符串 audio/*,表示“任何音频文件”。
  • 字符串 video/*,表示“任何视频文件”。
  • 字符串 image/*,表示“任何图片文件”。

accept 属性的值是包含一个或多个(用逗号分隔)唯一文件类型说明符的字符串。例如,一个文件选择器需要能被表示成一张图片的内容,包括标准的图片格式和 PDF 文件,大概是这样的:

阅读全文 »

JavaScript设计模式

发表于 2023-06-04 | 分类于 技术 , JavaScript

JavaScript的23种设计模式

范围/目的 创建型模式 结构型模式 行为型模式
类模式 工厂方法 (类)适配器 模板方法 解释器
对象模式 单例 原型 抽象工厂 建造者 代理 (对象)适配器 桥接 装饰 外观 享元 组合 策略 命令 职责链 状态 观察者 中介者 迭代器 访问者 备忘录
阅读全文 »

前端包管理工具

发表于 2022-08-02 | 分类于 技术 , JavaScript

包的英语单词:Package,针对编程来说,更具象的名字叫「软件包」。代表了一组特定功能的源码集合。软件包可以是一个单独的源码文件,也可以是一个包含很多文件和目录的文件夹。具体如何呈现,就要看这个软件包提供了什么样的功能。

软件包就是有人对一些具有重复性的功能问题做出了针对性的解决方案。我们在软件开发的过程中有了相应的功能需求时,除了自己写,也可以选择直接使用这些有功能针对性的软件包。这除了可以节省自己大量的精力和时间,也能让自己少踩一些坑。

在软件开发过程中使用包不是必须的,但却是一项最佳的工程化实践。

阅读全文 »

箭头函数里的this到底指向谁?

发表于 2020-02-24 | 分类于 技术 , JavaScript

  关于箭头函数里的this这个问题一直很模糊,之前看了很多教程虽然知道了其行为,但是具体实现规则一直不太清晰。今天为了彻底搞懂这个问题,查了很多资料,感觉查到的很多例子不是很能清晰的描述这种行为。所以今天特地自己写一遍文章来说明一下。

阅读全文 »

如何将一个JavaScript数组打乱

发表于 2020-02-20 | 分类于 技术 , JavaScript

  如何将一个js数组的顺序打乱并且又能做到完全随机打乱呢?今天在网上看到了这样一个算法,觉得思路很不错,写上来记录一下。

  比如我们有这样一个数组:

1
let arr = [1, 2, 3, 4, 5, 6]
阅读全文 »

Node.js中的events模块

发表于 2020-02-02 | 分类于 技术 , Node.js

  在Node.js(以下简称node)中,有一个events模块,中文名称是“事件触发器”。node的一大特点就是事件驱动。在node里,很多行为都会触发相应的事件,而所有能触发事件的对象都是events模块类的实例,它们都有添加事件的能力。

阅读全文 »

Electron介绍(理论篇)

发表于 2019-12-26 | 分类于 技术 , 工具

  Electron是一个能让你使用前端技术(JavaScript, HTML, CSS和Node.js)构建跨平台的桌面应用的框架。最初被GitHub开发,2013年4月11日以Atom Shell为名起步,2014年5月16日开源,2015年4月17日改名为Electron。

阅读全文 »

Parallels配置虚拟机网络(宿主机ip不固定,虚拟机ip固定)

发表于 2019-12-24 | 分类于 技术 , 虚拟机

  最近我在Parallels里安装了一台ubuntu的虚拟机,因为平常都是用宿主机ssh远程到虚拟机上使用的,所以在配置虚拟机网络这一块就首先选择了桥接模式。Parallels里的桥接模式下,虚拟机可以和宿主机通信,可以和与宿主机同一局域网内且同一网段的其它设备通信,多个虚拟机之间也可以相互通信,也可以连接互联网,等于为虚拟机新分配了一个局域网地址,一般正常使用的话,我都是采用这种模式。但是这种模式下有一个问题,因为我用的是笔记本电脑,经常是在家和公司之间或者其它地方使用。这样当我的笔记本(宿主机)网络环境变了以后,我的虚拟机ip地址也会改变。虽然可以在虚拟机内设置固定ip,但宿主机的网段一旦改变,之前虚拟机设置的固定ip如果和宿主机不处于同一网段下的话,还是无法实现通信。举个栗子:

阅读全文 »

JavaScript里的Promise

发表于 2019-12-09 | 分类于 技术 , JavaScript

  JavaScript在ES6版本中新增了Promise对象。

概述

Promise 对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你为异步操作的成功和失败分别绑定相应的处理方法(handlers)。

阅读全文 »

重新封装JavaScript里的String.indexOf()方法

发表于 2019-10-30 | 分类于 技术 , JavaScript

indexOF()方法

  JavaScript的String对象中有一个indexOf()方法,这个方法接收一个指定字符串参数(必须)和查找位置参数(可选)。该方法返回指定字符串在字符串中第一次出现的位置,如果没有出现,则返回”-1”。如果有传查找位置参数,则从传入的位置查起,如果没有传位置参数默认为0,即从字符串的开头查起。

  说完了这个函数的功能,那么我们如何自己封装一个一样功能的方法呢?

阅读全文 »
123
Kaifei Xie

Kaifei Xie

Kaifei's Blog

23 日志
9 分类
20 标签
E-mail
© 2018 — 2025 Kaifei Xie
0%