
javascript
文章平均质量分 55
雾里看花叹朦胧
心有多大,天有多高。
展开
-
JS 创建一个空函数
Function.proptotype 返回一个没有任何操作的空函数。所以我们在需要一个函数默认值的地方可以使用,可以省去在线函数表达式的创建过程。原创 2020-09-30 08:52:41 · 3516 阅读 · 0 评论 -
有符号数和无符号数在计算机中怎么区分?
确如题主所说,计算机中存储的任何数据都是二进制形式,单看数据是无法认定其格式和内容的。计算机要用二进制编码来表达数值的符号,最直观的方法就是符号位。但为了保证基本算术运算在正负数上的一致性,x86计算机对负数采用了特殊的编码方式,即补码。为什么补码这么巧妙实现了正负数的加减运算?参见维基百科:补码-1的二进制表示下面结合题主提到的寄存器状态举个例子。为简化起见,我们8位二进制数来讲。先看8位二进制与无符号数和有符号数的对应二进制无符号 有符号00000000 0 000000001 1 1原创 2020-06-01 08:18:37 · 4686 阅读 · 0 评论 -
使用迭代器实现中间件
MiddleAware.jsexport default functions => { function * generator(arr) { for (let item of arr) { yield item; } } const it = generator(functions); const...原创 2020-05-02 10:47:16 · 201 阅读 · 0 评论 -
使用 ES6 简单实现一个promise
Git源码:https://github.com/slhuang520/study/tree/master/web/es6/test/src/promise整体结构图如下:MyPromise .js// require("babel-register"); //自动编译// import "core-js"; //引入 polyfill// import "regenerator-r...原创 2020-05-02 10:41:11 · 631 阅读 · 0 评论 -
ECMAScript 的发展史简介
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>ECMAScript 的发展史简介</title></head><body><pre>HTML:从1991 ~ 1997,IE...原创 2020-04-19 20:14:53 · 527 阅读 · 0 评论 -
JS实现窗口拖拽
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>拖拽</title> <style> .draggable{ width: 300px; ...原创 2020-04-09 23:41:41 · 348 阅读 · 0 评论 -
window.getComputedStyle 获取伪元素的style
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>window.getComputedStyle</title> <style> div { width: 300...原创 2020-03-30 22:10:29 · 425 阅读 · 0 评论 -
JS Error 类型
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>JS 错误信息类型</title></head><body> <fieldset> <legend&g...原创 2020-03-29 21:09:55 · 841 阅读 · 0 评论 -
JavaScript补齐指定位数
一、通常解决方案function dataLeftCompleting(value){ return parseInt(value) < 10 ? "0" + value : value;}// 测试var originValue = "2016-8-3", originDate = new Date(originValue);var formatValue = o...转载 2020-03-29 21:06:51 · 314 阅读 · 0 评论 -
JS中的类数组加上splice属性的区别以及一些注意点
类数组中:如果没有 splice 打印出来的是一个对象形式的结果 var obj = { "2": 3, "3": 4, length: 2, }; console.log(obj);//{2: 3, 3: 4, length: 2}如果加了 splice,打印出来,就是一个数组形式的结果 var obj =...原创 2020-03-19 21:55:24 · 543 阅读 · 0 评论 -
XMLHttpRequest.upload JS中AJAX请求的实现
XMLHttpRequest 不仅可以发送请求,还可以发送文件,这就是 AJAX 文件上传。发送文件以后,通过XMLHttpRequest.upload属性可以得到一个对象,通过观察这个对象,可以得知上传的进展。主要方法就是监听这个对象的各种事件:loadstart、loadend、load、abort、error、progress、timeout。文件上传时,对upload属性指定progre...原创 2019-03-12 18:37:13 · 772 阅读 · 0 评论 -
XMLHttpRequest.withCredentials
XMLHttpRequest.withCredentials属性是一个布尔值,表示跨域请求时,用户信息(比如 Cookie 和认证的 HTTP 头信息)是否会包含在请求之中,默认为false,即向 example.com 发出跨域请求时,不会发送 example.com 设置在本机上的 Cookie(如果有的话)。如果需要跨域 AJAX 请求发送 Cookie,需要withCredentials...原创 2019-03-12 18:05:34 · 3461 阅读 · 0 评论 -
Cookie
Cookie 是服务器保存在浏览器的一小段文本信息,每个 Cookie 的大小一般不能超过4KB。浏览器每次向服务器发出请求,就会自动附上这段信息。Cookie 主要用来分辨两个请求是否来自同一个浏览器,以及用来保存一些状态信息。它的常用场合有以下一些:对话(session)管理:保存登录、购物车等需要记录的信息。个性化:保存用户的偏好,比如网页的字体大小、背景色等等。追踪:记录和分析用...原创 2019-03-12 17:54:46 · 241 阅读 · 0 评论 -
基于 vue.js 实现 task-list的基本管理
基本的项目结构如下:taskList.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>任务列表</title> <link rel="stylesheet" href="css/taskLis...原创 2019-04-20 17:44:24 · 714 阅读 · 0 评论 -
window.requestAnimationFrame
window.requestAnimationFrame()方法跟setTimeout类似,都是推迟某个函数的执行。不同之处在于,setTimeout必须指定推迟的时间,window.requestAnimationFrame()则是推迟到浏览器下一次重流时执行,执行完才会进行下一次重绘。重绘通常是 16ms 执行一次,不过浏览器会自动调节这个速率,比如网页切换到后台 Tab 页时,request...原创 2019-03-12 15:43:25 · 3537 阅读 · 0 评论 -
Browser 重流和重绘
浏览器的核心是两部分:渲染引擎和 JavaScript 解释器(又称 JavaScript 引擎)。渲染引擎渲染引擎的主要作用是,将网页代码渲染为用户视觉可以感知的平面文档。不同的浏览器有不同的渲染引擎。Firefox:Gecko 引擎Safari:WebKit 引擎Chrome:Blink 引擎IE: Trident 引擎Edge: EdgeHTML 引擎渲染引擎处理网页,...原创 2019-03-12 11:06:31 · 435 阅读 · 0 评论 -
NodeJs使用 mongodb 查询一条数据
源代码请查看GitHub:https://github.com/slhuang520/study/tree/master/web/nodeJS/mongoDB/findOne.js目前使用的 mongodb nodeJS driver 版本为 3.2.3,不同的 Driver 版本,方法有很大的差异。在查询一条数据时,还可以使用排序,或是按时一定的条件。const MongodbClie...原创 2019-05-07 23:43:50 · 3671 阅读 · 0 评论 -
script 加载使用的协议
如果不指定协议,浏览器默认采用 HTTP 协议下载。<script src="example.js"></script>上面的example.js默认就是采用 HTTP 协议下载,如果要采用 HTTPS 协议下载,必需写明。<script src="https://example.js"></script>但是有时我们会希望,根据页面本身...原创 2019-03-11 16:43:34 · 370 阅读 · 0 评论 -
基于 vue.js 实现查询的组件实例
项目结构如下:search.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Vue Customer Search</title> <link rel="stylesheet" href="c...原创 2019-04-21 16:11:03 · 1606 阅读 · 0 评论 -
nodeJS 使用 mongodb save数据
save() 方法将在后面的版本中被抛弃。目前使用的 mongodb nodeJS driver 版本为 3.2.3const MongodbClient = require("mongodb").MongoClient, assert = require("assert");// save deprecated(async function () { const url ...原创 2019-05-07 23:25:21 · 1049 阅读 · 0 评论 -
NodeJS使用 mongodb insert数据
目前使用的 mongodb nodeJS driver 版本为 3.2.3const MongodbClient = require("mongodb").MongoClient;const assert = require("assert");(async function() { const url = "mongodb://127.0.0.1:27017", ...原创 2019-05-07 23:28:19 · 1337 阅读 · 0 评论 -
NodeJS 使用 mongodb 批量插入数据
目前使用的 mongodb nodeJS driver 版本为 3.2.3,不同的 Driver 版本,方法有很大的差异。const MongodbClient = require("mongodb").MongoClient, assert = require("assert");(async () => { const url = "mongodb://127.0...原创 2019-05-07 23:30:42 · 2528 阅读 · 0 评论 -
NodeJS 使用 mongodb 插入一条数据
关于源代码请查看如下GitHub:https://github.com/slhuang520/study/tree/master/web/nodeJS/mongoDB/insertOne.js目前使用的 mongodb nodeJS driver 版本为 3.2.3,不同的 Driver 版本,方法有很大的差异。const MongodbClient = require("mongodb"...原创 2019-05-07 23:35:16 · 2170 阅读 · 0 评论 -
nodeJS使用 mongodb查询数据
源代码请查看GitHub:https://github.com/slhuang520/study/tree/master/web/nodeJS/mongoDB/find.js目前使用的 mongodb nodeJS driver 版本为 3.2.3,不同的 Driver 版本,方法有很大的差异。const MongodbClient = require("mongodb").MongoCl...原创 2019-05-07 23:41:30 · 5137 阅读 · 1 评论 -
NodeJS 使用 mongodb 更新数据
目前使用的 mongodb nodeJS driver 版本为 3.2.3,不同的 Driver 版本,方法有很大的差异。For example, given a books collection with the following document:{ _id: 1, item: "TBD", stock: 0, info: { publisher: "1111", pa...原创 2019-05-07 23:46:19 · 2805 阅读 · 0 评论 -
Falsy
falsy(虚值)是在 Boolean 上下文中已认定可转换为‘假‘的值.JavaScript 在需要用到布尔类型值的上下文中使用强制类型转换(Type Conversion )将值转换为布尔值,比如:在条件语句或者循环语句中例子节JavaScript中falsy值的例子 (通过 if 代码段将falsy值转换为false):if (false)if (null)if (undefin...原创 2019-06-30 20:28:43 · 310 阅读 · 0 评论 -
JS禁用键盘Hardkey
document.oncontextmenu = function(e) { var evt = e || window.event; evt.returnValue = false; return false;}; //屏蔽鼠标右键window.onhelp = function(e) { var evt = e || window.event; evt.原创 2017-12-28 11:06:36 · 737 阅读 · 3 评论 -
script 元素
1、工作原理浏览器加载 JavaScript 脚本,主要通过<script>元素完成。正常的网页加载流程是这样的:浏览器一边下载 HTML 网页,一边开始解析。也就是说,不等到下载完,就开始解析。解析过程中,浏览器发现<script>元素,就暂停解析,把网页渲染的控制权转交给 JavaScript 引擎。如果<script>元素引用了外部脚本,就先下载...原创 2019-03-11 16:23:36 · 201 阅读 · 0 评论 -
Navigator.sendBeacon()
用户卸载网页的时候,有时需要向服务器发一些数据。很自然的做法是在unload事件或beforeunload事件的监听函数里面,使用XMLHttpRequest对象发送数据。但是,这样做不是很可靠,因为XMLHttpRequest对象是异步发送,很可能在它即将发送的时候,页面已经卸载了,从而导致发送取消或者发送失败。解决方法就是 AJAX 通信改成同步发送,即只有发送完成,页面才能卸载。但是,很多...原创 2019-03-15 17:47:42 · 8203 阅读 · 0 评论 -
javascript实现继承
//约定:下面将展开一个有点长的故事,所以有必要提前约定共同语言:/* * 约定 */function Fun(){ // 私有属性 var val = 1; // 私有基本属性 var arr = [1]; // 私有引用属性 function fun(){} // 私有函数(引用属性) // 实例属性 th...原创 2019-02-21 13:59:10 · 107 阅读 · 0 评论 -
JS中被自己忽略掉的一些东西 -3
11.anchor描述在对象中的指定文本两端放置一个有 NAME 属性的 HTML 锚点。 只能在String变量或常量上执行。语法strVariable.anchor(anchorstring)"String Literal".anchor(anchorstring) anchorstring 参数是想要放置 HTML 锚点的 NAME 属性的文本。说明调用 anchor...原创 2019-01-07 18:27:57 · 136 阅读 · 0 评论 -
基于原生的JS实现拖动Table行
&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head lang="en"&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;测试拖动Table行&lt;/title原创 2018-05-06 13:54:34 · 1531 阅读 · 1 评论 -
JS中的惰性函数
最近在网上看一个关于惰性函数的例子,觉得非常不错,就记下来。/** * Created by DreamCatcher on 2018/4/26. */function createXHR () { var xhr = null; try { //Firefox, Opera8.0+, Safari, IE7+ xhr = new XM...原创 2018-04-26 20:18:29 · 585 阅读 · 0 评论 -
JS中被自己忽略掉的一些东西 - 2
6.void在使用立即执行的函数表达式时,可以利用 void 运算符让 JavaScript 引擎把一个function关键字识别成函数表达式而不是函数声明(语句)。void function(){ console.log(1);}();//这里使用了 void 关键字,将后面的 function 当成了一个函数表达式,从而在后面加上“()”就可以直接运行了。7.yie原创 2018-01-24 17:43:02 · 204 阅读 · 0 评论 -
JS中被自己忽略掉的一些东西
记录一些JS中被自己所忽略掉的一些知识点:1.DateJavaScript 处理日期数据类似于Java。这两种语言有许多一样的处理日期的方法,也都是以1970年1月1日00:00:00以来的毫秒数来储存数据类型的。Date 对象的范围是相对距离 UTC 1970年1月1日 的前后 100,000,000 天。创建一个日期对象:var dateObjectName = new原创 2018-01-03 11:25:08 · 338 阅读 · 0 评论 -
JS html 实现全屏
首先,根据如下警告信息,可以看出,无法自动实现全屏功能,必须要手动才可以. Failed to execute ‘requestFullscreen’ on ‘Element’: API can only be initiated by a user gesture.所以要实现全屏你可以通过点击一个 button 控件,或是整个 document 添加一个click 事件,通过点击来手动实现全原创 2017-12-28 10:28:55 · 13855 阅读 · 0 评论 -
document JS DOM
整理一些个人认为比较重要,或是不怎么常用的DOM操作:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-2.1.3.min.js"></script> <script> $(function () {原创 2017-12-25 11:38:30 · 215 阅读 · 0 评论 -
JS fun参数转换
/* 将函数中的 arguments 类数组转换成 Array */function argConvert() { // 在 ES6 之前,需要借助 Array.slice 工具方法 var arr = Array.prototype.slice.call(arguments); console.log(arr); //(5) [1, 2, 3, 4, 5] // 在原创 2017-09-12 16:22:54 · 1268 阅读 · 0 评论 -
JS IF 作用域
随笔记录一下JS 中使用域自动提升时的一些注意点:/** * Created by HuangSL on 2017/09/12. */function testScope() { var funInner = "Inner"; funcOut = "outer"; //没有 var 声明,会被自动提升到 全局作用域 if (true) { var ifInn原创 2017-09-12 14:39:44 · 6171 阅读 · 0 评论 -
parseInt(1 / 0, 19)
注:本文 JS 是基于 ES5 之后,之前的不做考虑。先看一个小例子:parseInt(1/0, 19);//结果为 18这是为什么?首先得了解一下 parseInt 这个方法,这里就不做详细解释了,网上一找一大把。 基本作用就是将一个 字符串 转换成一个 数字。工作原理是这样的,第一个参数是需要转换的值,第二个参数是转换的数值的进制数,比如:二进制,八进制,十进制,十六进制,十八进制等。对于第一原创 2017-09-15 16:22:10 · 889 阅读 · 0 评论