
Javascript
亮子AI
全干程序员
展开
-
【JavaScript】Failed to execute ‘querySelector‘, is not valid selector
JS中使用 getElementById 时,标识符以数字开头没有问题。但是,querySelector 是 CSS3 选择器,以数字开头的标识符就会报错。当使用 querySelector 时,出现这个错误,很可能的一个原因是:选择标识符以数字开头。原创 2024-01-01 13:14:40 · 1773 阅读 · 0 评论 -
【JavaScript】用字符串生成 DOM 元素
【代码】【JavaScript】用字符串生成 DOM 元素。原创 2023-10-24 23:22:58 · 643 阅读 · 0 评论 -
【JavaScript】判断变量类型是否是字符串
【代码】【JavaScript】判断变量类型是否是字符串。原创 2023-10-11 20:55:54 · 353 阅读 · 0 评论 -
【JavaScript】判断对象是否具有某个属性
【代码】【JavaScript】判断对象是否具有某个属性。原创 2023-09-22 15:04:02 · 358 阅读 · 0 评论 -
在前端开发中使用接口模拟器 json-server 进行测试
前端开发中需要对接口调用进行调试与验证,如果等后端把接口做好再调试就太不方便了。有了 json-server,只需指定一个 json 文件作为 api 的数据源,前端就可以独立进行接口调试,极其方便。下面介绍这个开源项目的使用方法。原创 2023-05-31 08:58:30 · 349 阅读 · 0 评论 -
【Docusaurus】自定义js
首先在 static 目录下创建文件夹 js,自定义的js文件都放在这里(这里假设创建一个文件 custom.js)。在小恐龙框架中如何增加自定义js?原创 2023-05-29 14:18:06 · 315 阅读 · 0 评论 -
【JavaScript】滑动屏幕的手势事件
来源:https://stackoverflow.com/a/23230280/3054511。在手机端滑动屏幕,左滑、右滑、上滑、下滑的事件怎么捕捉?原创 2023-05-29 14:13:05 · 1140 阅读 · 0 评论 -
【JavaScript】如何获取客户端IP地址?
如果最后都找不到,则返回null。原创 2023-05-18 06:19:59 · 1375 阅读 · 0 评论 -
【JavaScript】onchange 与 oninput 事件的区别
代码】【JavaScript】onchange与oninput事件的区别。原创 2022-07-22 23:54:55 · 1073 阅读 · 0 评论 -
【JavaScript】代码构造方法论
作为动态语言,JavaScript代码写起来可以很自由。但是为了避免代码演化中的劣化倾向,我们还是最好在一开始的时候就注重代码结构。可以把代码组织成三部分:变量、方法、初始化。例如:原创 2022-06-16 01:48:56 · 97 阅读 · 0 评论 -
JWT 的退出登录方法
JWT 登录之后,服务器发放 token。在到期时间之前,token 一直有效,那么如何才能实现用户登出(让 token 失效)?黑名单校验凡是退出登录的token都放入黑名单中,定期清理。每次用户请求服务器都校验token是否在黑名单版本号校验访问时从token中取出版本号和用户id 和 redis中存储 用户id和版本号 做对比,不一致则不给访问。用户登出的时候在redis中把用户版本号加一。过期时间校验登录时token附带创建时间。访问时校验redis存储的过期时间,如果创建时间大于过原创 2020-10-29 00:14:29 · 11026 阅读 · 6 评论 -
【TypeScript】怎样在Node.js中使用全局变量global?
如果直接使用 global.MYVAR,TS会报错,因此你需要增加类型定义,让TS能够识别。你可以创建一个文件 src/types/global.d.ts,内容如下:declare global { var MYVAR: string}export {}然后在 tsconfig.json 文件中确认有下面的命令:"include" : [ "src/**/*"]这样就可以愉快地使用 global.MYVAR 了。...原创 2022-04-22 13:30:37 · 4440 阅读 · 0 评论 -
【JavaScript】迅速确定url是网址
如果只是需要判断url开头是不是http或https,则不要用正则表达式,直接字符串匹配是最迅速的:if (urlString.indexOf('http://') === 0 || urlString.indexOf('https://') === 0)原创 2022-03-05 16:44:16 · 846 阅读 · 0 评论 -
【JavaScript】forEach中无法使用await/async
forEach循环会产生多个同步调用,就算你在forEach中使用了await,forEach也不会等待调用结束,forEach之后的语句会立即执行。因此,如果你要在循环中使用 await,还是得使用for … of 结构,例如:async function printFiles () { const files = await getFilePaths(); for (const file of files) { const contents = await fs.readFile(原创 2022-02-25 01:01:00 · 1897 阅读 · 0 评论 -
【Javascript】无用的技巧:使用变量调用与变量值同名的函数
花了一个小时,查找、测试将变量值转换成函数来使用的方法。Javascriptwindow["functionName"](arguments);Node.jsvar x = {};x.f1 = function(){ console.log('Call me as a string!');}然后调用:var funcstr = "f1";x[funcstr]();结论上述方法并没有减少代码量,也并不清晰,所以清晰且直观的方法还是使用 if:if (funcName =原创 2021-09-26 16:36:59 · 274 阅读 · 0 评论 -
【 Javascript 】为了提升查找对象的速度,把对象的数组转换成 Hash
代码:var arr = [ { key: 'foo', val: 'bar' }, { key: 'hello', val: 'world' }];var result = arr.reduce(function(map, obj) { map[obj.key] = obj.val; return map;}, {});console.log(result);// { foo:'bar', hello:'world' }https://stackover原创 2021-07-31 10:38:58 · 508 阅读 · 0 评论 -
【JavaScript】将文本内容下载为文件
如何将一段文本下载为文件?用下面的代码可以实现:function download(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); element.setAttribute('download', filename); element.原创 2021-07-05 05:07:26 · 873 阅读 · 0 评论 -
【node.js】你再也不需要 body-parser 了
当我们用 Express 做一个可以接收 POST 请求的应用时,肯定会用到 body-parser,使用过程通常是这样的:第一步,安装模块:npm install body-parser第二步:使用const express = require('express');const bodyParser = require('body-parser');const app = express();app.use(bodyParser.json());Express 4.16.0 已经内置原创 2021-06-06 09:51:31 · 1668 阅读 · 0 评论 -
npm 安装 bcrypt 出现 gyp 错误的解决办法
bcrypt 需要系统有 gyp 插件支持,简单的解决办法是使用 bcryptjs,它的接口与 bcrypt 是完全一样的,只是它的实现是纯 JS,不依赖其他插件:npm i bcryptjs原创 2021-05-15 15:26:30 · 454 阅读 · 0 评论 -
Javascript - 三个点(...)是什么操作运算?
对象/数组扩展运算符它可以把对象或数组进行扩展。举例一:展开对象const adrian = { fullName: 'Adrian Oprea', occupation: 'Software developer', age: 31, website: 'https://oprea.rocks'};const bill = { ...adrian, fullName: 'Bill Gates', website: 'https://micr原创 2021-05-02 15:51:00 · 1139 阅读 · 0 评论 -
js css 下拉动画
初始css:.wrapper { transition:height 1s ease-out; height:0; overflow:hidden;}用js设置类:.show { height: 30px;}如果不知道元素的高度,可以用下面的方式,计算出元素高度,再设置:const slideDown = elem => elem.style.height = `${elem.scrollHeight}px`;slideDown(document.ge原创 2020-10-30 00:33:09 · 208 阅读 · 0 评论 -
用户点击了“返回”按钮,Javascript 如何强制刷新页面?
用户在点击“返回”按钮后,返回页面的内容已经发生了变化,由于浏览器缓存的作用,用户往往看到的是旧有的内容。如果内容已经发生了变化,怎么强制刷新页面内容?答案是使用 pageshow 事件:window.addEventListener( "pageshow", function ( event ) { var historyTraversal = event.persisted || ...原创 2020-03-11 10:13:39 · 1483 阅读 · 0 评论 -
纯 Javascript 插入节点:在末尾插入、在开始插入
在末尾插入节点:// Grab an elementvar el = document.getElementById('thingy'), // Make a new div elChild = document.createElement('div');// Give the new div some contentelChild.innerHTML = 'Conten...原创 2020-03-08 13:00:42 · 2276 阅读 · 0 评论 -
Javascript 粘贴到剪切板
例子:<p> <button class="js-textareacopybtn" style="vertical-align:top;">Copy Textarea</button> <textarea class="js-copytextarea">Hello I'm some text</textarea></p&...原创 2020-02-29 13:49:05 · 420 阅读 · 0 评论 -
Javascript 获取元素索引值
ES6 可以这样写:const index = [...el.parentElement.children].indexOf(el)https://stackoverflow.com/a/46328506/3054511原创 2020-02-29 11:14:21 · 1279 阅读 · 0 评论 -
JavaScript 闭包的例子
例子一:var element = document.getElementById('button');element.addEventListener("click", (function() { // init the count to 0 var count = 0; return function(e) { // <- This function becomes ...原创 2020-01-18 10:09:22 · 130 阅读 · 0 评论 -
Javascript 跨页面存储变量的四种方法
一、Query string二、Web storagelocalStoragesessionStorage三、cookie四、window.namehttps://stackoverflow.com/a/30070207/3054511原创 2020-01-17 01:38:39 · 1369 阅读 · 0 评论 -
纯javascript检查类是否存在、增加一个类、删除一个类
代码function hasClass(ele,cls) { return !!ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));}function addClass(ele,cls) { if (!hasClass(ele,cls)) ele.className += " "+cls;}function rem...原创 2019-12-31 18:13:09 · 207 阅读 · 0 评论 -
JS中有效判断一个值是否是 null 或 undefined
上代码: if ( some_variable == null ){ // some_variable is either null or undefined }更多代码:if ( !some_variable ) { // some_variable is either null, undefined, 0, NaN, false, or an empty string}...原创 2019-12-29 09:30:12 · 2229 阅读 · 0 评论 -
Javascript,参数的参数:以函数名作为参数,怎么穿参数给这个函数?
第一个方法:匿名函数function foo(x) { alert(x);}function bar(func) { func();}//alerts "Hello World!" (from within bar AFTER being passed)bar(function(){ foo("Hello World!") });第二个方式:使用 applyfunc...原创 2019-11-25 14:40:14 · 633 阅读 · 0 评论 -
微信小程序中,如何构造一个全局消息/刷新机制?
设想一个场景:开启小程序时,要拉取某些全局数据,其他页面显示依赖这些数据。考虑到网络延迟和失败,如果请求失败需要重复三次,如果终不成功,要给用户提示。如何才能给正在访问某个页面的用户以通知?把信息存在全局变量中,让页面逻辑代码去查看全局变量是否改变,这种方法不可靠而且耗费资源,因为全局变量改变的时间不定。因此,最好的解决办法是全局逻辑代码去通知页面,即 app.js 发消息给具体页面。app....原创 2018-10-16 04:39:34 · 4856 阅读 · 1 评论 -
怎样在 nodejs 下发送 POST 请求?
直接上代码:var request = require('request');request.post( 'http://www.yoursite.com/formpage', { json: { key: 'value' } }, function (error, response, body) { if (!error &amp;amp;&amp;amp; res...原创 2018-10-19 00:23:14 · 5862 阅读 · 0 评论 -
小程序中 radio 的一个坑,到底 checked 该赋什么值?
首先看官方给出的代码,wxml:&lt;radio-group class="radio-group" bindchange="radioChange"&gt; &lt;label class="radio" wx:for="{{items}}"&gt; &lt;radio原创 2018-10-15 15:19:11 · 9592 阅读 · 15 评论 -
Javascript 中哪些变量逻辑运算结果为 false,以及空数组、空对象、以及属性是否存在的判断
在逻辑判断中,下列值将判断为 false:false0 (零值)“” (空字符串)nullundefinedNaN (一个特殊数值,意思是 Not-a-Number)除了上述六种值,所有其他的值都会决议为 true,包括:“0”“false”[] (空数组){} (空对象)function () {} (空函数)那么问题来了,如何判断空数组、空对象呢?用...原创 2018-09-16 17:54:11 · 1230 阅读 · 0 评论 -
Javascript 怎样获取文件扩展名?
例如,文件名是 example.jpg,可以使用下面的方法获取扩展名jpglet filename = "example.jpg";let extension = filename.split('.').pop(); //jpg原创 2018-07-21 15:41:25 · 3218 阅读 · 0 评论 -
Javascript 如何判断对象为空 {},以及是否包含某个属性?
简单的话,就是这样判断: Object.keys(obj).length === 0由于 Object.keys(new Date()).length === 0,因此下面的判断更完整: Object.keys(obj).length === 0 &amp;&amp; obj.constructor === Object...原创 2018-06-24 17:35:40 · 467 阅读 · 0 评论 -
Javascript 判断 timeout 是否已经结束
第一个例子,创建包裹函数:function Timeout(fn, interval) { var id = setTimeout(fn, interval); this.cleared = false; this.clear = function () { this.cleared = true; clearTimeout(id); ...原创 2018-10-28 07:33:41 · 3827 阅读 · 0 评论 -
怎样查看 nodejs 安装包的版本信息?
查看当前路径的安装包:npm list查看全局的安装包:npm list -g查看某个安装包:$ npm list gruntprojectName@projectVersion /path/to/project/folder└── grunt@0.4.1或者:$ npm list | grep grunt└── grunt@0.4.1...原创 2018-10-27 20:58:57 · 9246 阅读 · 0 评论 -
Express (version>=4.16.0) 怎样获取 post 的参数值?
直接上代码:const express = require(&quot;express&quot;)const bodyParser = require(&quot;body-parser&quot;)const app = express()app.use(bodyParser.json())app.use(bodyParser.urlencoded({ extended: true}))app.use(expre...原创 2018-10-27 21:24:42 · 691 阅读 · 0 评论 -
GitHub 改版,重构页面移除了 jQuery 真的有必要吗?
值得一提的是,GitHub 前端团队并未使用其它框架来代替 jQuery,而是使用原生 JS:用 querySelectorAll 来查询 DOM 节点;使用 fetch 代替 ajax(在不支持的浏览器上使用 XHR);使用代理事件来进行事件处理;为一些尚未实现的 DOM 标准写了 polyfill;更多的使用自定义元素(CustomElement)。他们把其中的一些成果也在 G...原创 2018-11-20 00:23:41 · 333 阅读 · 0 评论