用 JavaScript 实现数字增加滚动动画方案一: h1 id="numBox" /h1 script function numRunFun(num, maxNum){ var numBox = document.getElementById("numBox"); var num = num; var maxNum = maxNum; var timer = setInterval(function(){ num++; if(num = maxNum){ numBox.innerHTML = ma
像素鱼丸 2023-01-03 JavaScript 1033
使用 new Date(string) 构造 Date 对象,如果传入非日期格式的字符串,仍然能构造出 Date 对象,输出date,结果为Invalid Date使用typeof判断date的类型,得到结果为“object”使用instanceof检测date是否为Date类型,结果为true。使用Date的getTime()方法,Invalid Date对象返回的是一个NaN,可以利用这点来检查Date对象是否为Invalid Date。 new Date(dateString)参数dateString一个符合 RFC2822 或 ISO 8601 日期格式的字符串(其他格式也许也支持,但
像素鱼丸 2022-11-07 JavaScript 编程开发 2595
使用 url.parse() 函数转换 'https://www.yuque.com!.evil.com' 'https://www.yuque.com%0a.evil.com' 会变成: 'https://www.yuque.com/!.evil.com' 'https://www.yuque.com/%0a.evil.com' 可以看到 legacy API 并不认为 ! 字符属于域名的一部分,所以原始的 www.yuque.com!.evil.com 域名其实是非法的,而为了不抛异常,legacy API 尝试对它进行了一次转换,把它当成 www.yuque.com/!.ev
代码: p 啦啦啦啦 啦啦 啦啦啦 div 呱呱呱 /div /p 在浏览器中渲染成了: p 啦啦啦啦 啦啦 啦啦啦 /p div 呱呱呱 /div p /p 原因是 p 标签里面不能嵌套 ul、div 等块级元素,只能嵌套行内元素。h1~h6之间也不能相互嵌套。
像素鱼丸 2022-11-05 JavaScript 1910
例子:select SUBSTRING_INDEX(thumbnail,'/',-1) as file_name, thumbnail, SUBSTRING_INDEX(thumbnail,'.',-1) as suffix, from tb_article where thumbnail != ''; 介绍:这里用到 MySQL 的 SUBSTRING_INDEX(str,delim,count) 函数,LENGTH(str) 函数,REPLACE(str,from_str,to_str) 函数,和数据库的一张辅助表help_topic(这张表在默认的mysql库里)。SUBST
像素鱼丸 2022-11-05 MySQL 1702
JavaScript中的数据类型自动转换时,空数组[]或空对象{}都的布尔类型不是false,而是 true当JavaScript遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参数自动转换为布尔值。系统内部会自动调用Boolean函数。因此除了以下六个值,其他都是自动转为true:undefinednull-00或+0NaN''(空字符串)
像素鱼丸 2022-11-04 JavaScript 1166
&::-webkit-scrollbar { width: 5px; height: 8px; background-color: #aaa; /* or add it to the track */ } &::-webkit-scrollbar-thumb { background: #000; } 主要文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/::-webkit-scrollbar
像素鱼丸 2022-11-04 CSS 1223
因为各种现代话框架的流行,SQL 注入的威胁相对已经减少很多。但是在看不见的角落,还是存在SQL注入的威胁。SQL 预处理可以解决绝大部分 SQL 注入问题,但是有些地方不能预处理,或者需要变通的方式处理这些问题。比如表名/列名/排序动态传入的场景,这些地方不能预编译,因此很多人还是直接拼接的,而没有有效过滤。 还有 LIKE语句/IN语句中,因为这两个地方的预编译写法都有些特殊,比如 IN 常常使用 FIND_IN_SET 函数代替。
像素鱼丸 2022-11-03 MySQL 1538
Node.js 18.x 开始支持内置单元测试 单元测试很重要,很多新兴的编程语言都是会内置对应的能力,但 Node.js 这块一直都是由社区来实现,前端同学耳熟能详的 Test Runner 有 Mocha、Jest。 2022年04月19日正式发布的 Node.js 18.x ,终于,官方支持了 Test 能力。Fetch API 也被集成到这个版本中了。测试 API 接口在一定程度上代替 SuperTest 了。 代码: import test from 'node:test'; import assert from 'assert/strict'; // 等价于 describe()
MySQL 中,不可直接修改数据库名称。有一种变通的方式如下:如果有一个数据库名称是 “old_database”,想把这个数据库的名字改成 “new_database”;首先创建一个新的数据库 “new_database”create database new_database; 获取所有源库的表名use information_schema; select table_name from TABLES where TABLE_SCHEMA=’old_database’; 然后按照以下命令一个个修改rename table old_database.[tablename] to new_da
像素鱼丸 2022-03-27 MySQL 1612
网上看过很多 Switch 的例子,很多还需要额外的 label 或者 i 标签配合来实现,看到有个完全使用 CSS3 来实现的例子。只使用 CSS3 的伪类就可以实现。HTML: input type="checkbox" class="switch" input type="checkbox" class="switch" checked input type="checkbox" class="switch" disabled input type="checkbox" class="switch" checked disabled CSS.switch { box-s
像素鱼丸 2022-03-08 CSS 编程开发 1222
简介Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序。Rollup 对代码模块使用ESM。ES6 模块最终还是要由浏览器原生实现,但当前 Rollup 可以使你提前体验。Webpack 的理念是“万物皆是模块”,rollup.js 从一开始,就没有那样宏大的愿景,它描述自己是:“一个 JavaScript 模块打包器”。致力于“将小块的代码编译成大的复杂的代码”。快速使用Rollup 可以通过命令行接口(command line interface)配合可选配置文件(optional configuration fil
像素鱼丸 2022-03-03 JavaScript 1098
一,放大图标方法一:直接修改图标的 font-size。方法二:使用 transform:scale(1.5) 放大图标,需要注意有时在 iconfont 上是无效的,因为 transform 只能使用在块状元素上。比如:display:block 或者 display:inline-block。二,图标位置图标和文字往往不在一条基线上,常常需要调整 iconfont 图标的位置,最简单的方法是:.some-div .iconfont{ position: relative; top:0.1rem; } 另一种方法是使用 vertical-align 属性设置元素的垂直对齐方式。该属性
像素鱼丸 2022-03-01 CSS 2042
简介做爬虫解析 HTML,之前一直是用 cheerio,随着 jQuery 的渐行渐远,使用 cheerio 的类 jQuery API 已经成为一种负担, 我使用这个支持 Selectors API 的解析器 node-html-parser 来代替 cheerio。前后端的 HTML Selectors API 终于统一了。官方地址:https://www.npmjs.com/package/node-html-parser在 npmjs.com 的周下载量是:1,777,505。 cheerio 的周下载量是 6,696,323。执行速度上:cheerio :12.072
像素鱼丸 2022-02-28 JavaScript Node.js 2045
媒体查询(Media queries)非常实用,尤其是当你想要根据设备的大致类型(如打印设备与带屏幕的设备)或者特定的特征和设备参数(例如屏幕分辨率和浏览器视窗宽度)来修改网站或应用程序时。使用Window.matchMedia() 和MediaQueryList.addListener() 方法来测试和监控媒体状态。媒体特性(Media features)描述了 user agent、输出设备,或是浏览环境的具体特征。媒体特性表达式是完全可选的,它负责测试这些特性或特征是否存在、值为多少。每条媒体特性表达式都必须用括号括起来。最常用的媒体特性肯定就是“width"了。今天介绍的这个 CSS
像素鱼丸 2022-02-22 CSS 1310
var assert = require("assert"); var request = require('supertest'); // describe('接口测试', async function () { const http = require('http'); const app = require('../../app'); const PORT = process.env.PORT || 3003; const SERVER = http.createServer(app.callback()); it('获取 API 版本信息', (done) = { let
像素鱼丸 2022-02-22 JavaScript Node.js 1373
Jest 简介Jest 是一个越来越流行的测试框架,使用率渐渐超过了Mocha, 这些项目都在使用 Jest:Babel、 TypeScript、 Node、 React、 Angular、 Vue 等等!Jest 的目标是在大部分 JavaScript 项目上实现开箱即用, 无需配置。从 it 到 expect - Jest 将整个工具包放在同一个 地方。好书写、好维护、非常方便。快速上手npm install --save-dev jest 下面我们开始给一个假定的函数写测试,这个函数的功能是两数相加。首先创建 sum.js 文件:function sum(a, b) { return
像素鱼丸 2022-02-22 JavaScript Node.js 1223
1,数据库中间表一般,使用下划线连接两个表作为中间表表名(table1_table2)。比如,表前缀是tb,表 tb_article 和 tb_tag 的中间表的表名就应该是 tb_article_tag。有时候可以把表命名为 "tb_article_tag_relation" 来突出一个表是中间表。2,在项目简单的时候,这种命名方式是没有问题的。如果复杂一点, 一个文章表 tb_post,和一个文章的类型表 tb_post_type,按照上面方式命名方式,就会出现 tb_post_post_type 这样的奇葩表名。看到有人使用双下划线“__”或者“_to_“连接两个表,比如“tb_post
像素鱼丸 2022-02-16 MySQL 4248
一,TypeScript 基本操作安装 TypeScript:npm install -g typescript 编写 test.ts 文件function greeter(person: string) { return "Hello, " + person; } let user = [0, 1, 2]; document.body.innerHTML = greeter(user); 编译 ts 文件生成 js 文件:tsc test.ts 提示:greeter.ts(7,26): error TS2345: Argument of type 'number[]' is no
像素鱼丸 2022-01-19 Node.js 1314
一、N-API 开发方式介绍在 NAN 的开发方式下,一次编写好的代码在不同版本的 Node.js 下也需要重新编译,否则版本不符的话 Node.js 无法正常载入一个 C++ 扩展。即一次编写,到处编译。而 N-API 相较于 NAN 来说,它把 Node.js 的所有底层数据结构全部黑盒化,抽象成 N-API 当中的接口。不同版本的 Node.js 使用同样的接口,这些接口是稳定地 ABI 化的,即应用二进制接口(Application Binary Interface)。这使得在不同 Node.js 下,只要 ABI 的版本号一致,编译好的 C++ 扩展就可以直接使用,而不需要重新编译。
像素鱼丸 2021-12-30 Node.js 1032
随机推荐
Page Visibility API
JavaScript navigator对象
WordPress 一键从HTTP转换到HTTPS
JavaScript 事件处理程序
Git push 错误:Updates were rejected because the remote contains work that you do not have locally
WordPress 添加自定义接口
如何使主题支持 Woocommerce
WordPress 插件路径相关