JavaScript上传文件
效果
实现
无论是上传文件还是上传图片,用的都是input标签的type="file";
input标签触发onChange事件时,会接受input元素本身作为参数,元素对象的files属性,值是fileList(即文件列表,列表中是一个个文件对象,文件对象包括文件的名称,大小等);
有了文件列表之后,需要创建一个FileReader对象,对象的readerAsDataUR ...
javascript中的错误类型
javascript 中的错误类型:
SyntaxError
TypeError
ReferenceError
RangeError
URLError
Error
SyntaxError
语法错误
// 当您在编写一个函数时忘记了括号 ,)来括起您的代码,您将收到一个SyntaxError错误
function say(text) {
return text;
}
say('shark';
// output
Uncaught SyntaxError: missing ) after argum ...
Java 17 版本运行 javascript
使用 Java 运行 JavaScript 脚本
当前版本:
JDK:17
测试程序:
public class EngineTest {
public static void main(String[] args) throws ScriptException, NoSuchMethodException {
var manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript ...
JavaScript中的四种枚举方式
字符串和数字具有无数个值,而其他类型如布尔值则是有限的集合。
一周的日子(星期一,星期二,...,星期日),一年的季节(冬季,春季,夏季,秋季)和基本方向(北,东,南,西)都是具有有限值集合的例子。
当一个变量有一个来自有限的预定义常量的值时,使用枚举是很方便的。枚举使你不必使用魔法数字和字符串(这被认 ...
一文搞懂JavaScript数组的特性
前言
数组是几乎所有编程语言的基础语法,JavaScript因为语法特性,之前缺少一些集合类对象,对数组的使用就会更多一些,因此我们更需要理解数组知识。
然而大部分人对数组都已经非常熟悉了,所以本文将不会介绍数组的基础语法和用法,而是从JavaScript中数组的一些特殊之处入手,通过这些少有特性的详细介绍,加深我们对数 ...
Javascript 加密解密方法
Javascript 和 我之前发的 python加密
以及 go加密
解密不一样 不需要导那么多的库
只需要安装几个库 其中需要了解最多的 crypto-js
具体就不多介绍了直接上官网
https://www.npmjs.com/package/crypto-js
安装
npm install crypto-js --save-dev
npm install md5 --save-dev
一些常见的built-in 函数加密
unescape
unesca ...
javascript操作sqlite数据库
js读写sqlite
JavaScript 是一种在浏览器中运行的脚本语言,无法直接读写 SQLite 数据库。不过,你可以使用一些 JavaScript 库或框架来操作 SQLite 数据库,例如 SQLite.js 和 sql.js。
SQLite.js 是一个使用 JavaScript 实现的 SQLite 数据库,可以在浏览器环境中使用。它可以让你在浏览器中创建、打开、查询和修改 SQLit ...
如何在 JavaScript 中使用媒体查询
前言
说起媒体查询想必大家最先想到的都是CSS中@media,没错,这是我们最常用的媒体查询方法,主要用来为我们的网站做适配处理。
比如:
h1 {
font-size: 2rem;
color: green;
}
@media (min-width: 600px) {
h1 {
font-size: 4rem;
}
}
我们使用 CSS 告诉浏览器标题需要为绿色,字体大小为 2rem。但是当屏幕 ...
JavaScript 如何验证 URL
前言
当开发者需要为不同目的以不同形式处理URL时,比如说浏览器历史导航,锚点目标,查询参数等等,我们经常会借助于JavaScript。然而,它的频繁使用促使攻击者利用其漏洞。这种被利用的风险是我们必须在我们的JavaScript应用程序中实现URL验证的原因。
URL验证检查URL是否遵循正确的URL语法,也就是每个URL必须具备的结构 ...
JavaScript 日期和时间的格式化
JavaScript 日期和时间的格式化
一、日期和时间的格式化
1、原生方法
1.1、使用 toLocaleString 方法
Date 对象有一个 toLocaleString 方法,该方法可以根据本地时间和地区设置格式化日期时间。例如:
const date = new Date();
console.log(date.toLocaleString("en-US", { timeZone: "America/New_York" })); // 2/16/202 ...
JavaScript 中更安全的 URL 读写
前言
URL对于我们开发人员来讲,应该是非常熟悉了。在对URL进行参数拼接时,我们一般都会直接进行字符串拼接或使用模版字符串,因为这样非常方便,但是我们这样其实会在不知不觉中以不安全的方式编写 URL。
比如,我们通常会这样写:
const url = `https://www.baidu.com
?model=${model}&locale=${locale}?query.text=${ ...
JavaScript 文件上传与下载
一、文件上传
1、普通文件上传
JavaScript 可以使用表单提交来实现文件上传。首先,在 HTML 中创建一个文件输入框:
<input type="file" id="fileInput">
然后,在 JavaScript 中获取文件输入框的引用,并在其上设置事件监听器,如下所示:
var fileInput = document.getElementById('fileInput');
fileInput.addEventListe ...
JavaScript 循环引用
JavaScript 中的循环引用是指两个或多个对象之间相互引用的情况。这种情况下,这些对象就不能被垃圾回收机制正常回收,会导致内存泄漏。
循环引用通常发生在对象之间相互包含或相互依赖的情况。比如,A 对象中有一个指向 B 对象的引用,而 B 对象中又有一个指向 A 对象的引用,这样就形成了一个循环引用。
在 JavaScript 中 ...
JavaScript 获取对象的长度
JavaScript 获取对象的长度
在 JavaScript 中,要获取对象的长度(即对象中属性的数量),可以使用以下几种方法:
使用 Object.keys():该方法返回一个对象自身(即不包括继承属性)可枚举属性的数组。
使用 Object.getOwnPropertyNames():该方法返回一个对象自身(即不包括继承属性)所有属性的数组(包括不可枚举属性, ...
JavaScript 图像压缩
JavaScript 图像压缩
JavaScript 可以使用类似于 canvas 和 web workers 来实现图像压缩。
使用 canvas,可以将图像绘制到 canvas 上,然后使用 canvas 提供的 toBlob() 或 toDataURL() 方法将其转换为不同格式的图像。在这些方法中指定图像质量参数即可实现压缩。
使用 web workers,可以在后台执行图像压缩,以避免阻塞 U ...
JavaScript 中如何拦截全局 Fetch API 的请求和响应?
本文翻译自 Intercepting JavaScript Fetch API requests and responses
拦截器是可用于预处理或后处理 HTTP 请求的代码块,有助于全局错误处理、身份验证、日志记录等。在本文中,你将学习如何拦截 JavaScript Fetch API 请求。
拦截 HTTP 请求一般有两种事件:请求和响应事件。请求拦截器应该在发送实际 HTTP 请求之前执 ...
彻底弄懂Javascript模块导入导出
笔者开始学习Javascript的时候,对模块不太懂,不知道怎么导入模块,导出模块,就胡乱一通试
比如 import xx from 'test.js' 不起作用,就加个括号 import {xx} from 'test.js'
反正总是靠蒙,总有一种写法是对的,其实还是没有理解,还是不懂
尤其是在当初写 www.helloworld.net 网站的时候,一遇到这种问题,就懵逼了, ...
JavaScript:类(class)
在JS中,类是后来才出的概念,早期创造对象的方式是new Function()调用构造函数创建函数对象;
而现在,可以使用new className()构造方法来创建类对象了;
所以在很多方面,类的使用方式,很像函数的使用方式:
但是类跟函数,还是有本质区别的,这在原型那里已经说过,不再赘述;
如何定义一个类
如下所示去定义一个类:
c ...
JavaScript:原型(prototype)
面向对象有一个特征是继承,即重用某个已有类的代码,在其基础上建立新的类,而无需重新编写对应的属性和方法,继承之后拿来即用;
在其他的面向对象编程语言比如Java中,通常是指,子类继承父类的属性和方法;
我们现在来看看,JS是如何实现继承这一个特征的;
要说明这个,我们首先要看看,每个对象都有的一个隐藏属性[[P ...
JavaScript冒泡排序+Vue可视化冒泡动画
冒泡排序(Bubble Sort)算是前端最简单的算法,也是最经典的排序算法了。网上JavaScript版本的冒泡排序很多,今天用Vue实现一个动态的可视化冒泡排序。
01、JavaScript冒泡排序
冒泡排序原理也比较简单,就是相邻元素两两比较排序,把大的元素冒泡排序到后面,递归所有相邻元素组合完成排序。
1.1、原理
有一个无序数组: ...