javascript
文章平均质量分 56
harmsworth2016
这个作者很懒,什么都没留下…
展开
-
【JavaScript】try/catch和Promise.catch捕捉错误的区别?
【JavaScript】try/catch和Promise.catch捕捉错误的区别?原创 2022-06-26 17:11:33 · 2978 阅读 · 0 评论 -
【JavaScript】禁止拖拽图片的最简单方式
【JavaScript】禁止拖动图片的最简单方式原创 2022-06-24 06:30:03 · 4463 阅读 · 1 评论 -
【JavaScript】Promise和async/await的区别
Promise和async/await的区别原创 2022-06-23 06:36:00 · 334 阅读 · 0 评论 -
【JavaScript】用户代理检测的局限性
JavaScript中用户代理检测的局限性原创 2022-06-22 05:12:17 · 133 阅读 · 0 评论 -
【JavaScript】函数声明与函数表达式
函数声明与函数表达式原创 2022-06-14 08:23:36 · 251 阅读 · 0 评论 -
【JavaScript】浅析递归函数
浅析递归函数原创 2022-06-14 07:47:53 · 168 阅读 · 0 评论 -
【JavaScript】ECMAScript 函数是否有函数签名?
最近在看 ,读到 时,就不知所云,努力的翻了翻涉及的章节,终于找到了原书的针对函数签名的定义。JavaScript 函数签名就是接收参数的类型和数量。原创 2022-06-13 19:31:32 · 124 阅读 · 0 评论 -
【JavaScript】麻麻再也不用担心我不会位运算了
前言昨天做了一道面试题,期间用到了左移、异或、运算符优先级,看到这道题,位运算渣渣的我一脸懵逼。遂决定攻克位运算,不再逃避。题目假设有如下代码,那么a(10)的返回结果是?function a(a){ a^=(1<<4)-1; return a;}十进制数转二进制连续用该整数除以2取余数,然后用商再除以2,直到商等于0为止,最后把各个余数按相反的顺序排序。十进制数值13转为二进制数值,步骤如下:13除以2结果为6,余数为1。6除以2结果为3,余数为0。3原创 2022-01-31 13:48:02 · 1385 阅读 · 1 评论 -
【JS】字符串与Unicode编码相互转换
【JS】字符串与Unicode编码相互转换charCodeAtfromCharCodecharCodeAt获取字符串下标,转换为 Unicode 编码。let str = 'abc'console.log(`字符串 str 第0个字符的 Unicode 编码是:${str.charCodeAt()}`)console.log(`字符串 str 第0个字符的 Unicode 编码是:${str.charCodeAt(0)}`)console.log(`字符串 str 第1个字符的 Unicode原创 2021-12-31 07:41:29 · 7114 阅读 · 0 评论 -
JavaScript倒序循环比顺序循环性能更优
倒序循环console.time('倒序')for (let i = 100_000_000; i--;){}console.timeEnd('倒序')// 倒序: 55.5810546875 ms顺序循环console.time('顺序')for (let i = 0; i < 100_000_000; i++){}console.timeEnd('顺序')// 顺序: 79.369140625 ms解析倒序循环每一次循环都只需与 0 比较,控制条件为 true 则进入原创 2021-07-25 21:11:31 · 1422 阅读 · 0 评论 -
js实现十进制转二进制
function convertToBinary (num) { return num.toString(2).padStart(8, '0')}convertToBinary(0) // "00000000"convertToBinary(1) // "00000001"convertToBinary(13) // "00001101"convertToBinary(10) // "00001010"原创 2020-12-11 10:42:02 · 1052 阅读 · 0 评论 -
javascript之删除对象属性的2种方式
删除对象属性方式一使用 delete 关键字var a = {aa: 1,bb:2}delete a.aa方式二使用 ES6 中 Reflect 对象的 deletePrope时y 静态方法。var a = {aa: 1,bb:2}Reflect.deleteProperty(a, 'aa')原创 2020-10-26 21:06:03 · 1700 阅读 · 0 评论 -
javascript-获取用户选中的文本框内容
用户选中的文本框内容用户选中的文本框内容概述技术实现代码如下概述在日常开发中,什么时候需要监听用户在文本框中输入的内容?富文本编辑器就是一个典型的例子。技术实现HTML5在扩展方案中对文本框提供2个属性:selectionStart和selectionEnd(即文本选区开头和结尾的偏移量)。如此,就可以通过这2个属性截取文本框的文本,获取用户真正选中...原创 2018-05-02 13:59:14 · 3067 阅读 · 0 评论 -
最全面清除html字符串的方式
最全面清除html字符串的方式前言如何清除 html 字符串?我在网上搜索了很多种方法都不尽人意,故自己在网友写好的基础上对整体功能进行自测,以期达到能清除任意格式的 html 字符串。html 标签有以下几种格式:<br><br/><br /><h1></h1><p></p><p >...原创 2019-06-25 18:32:59 · 1376 阅读 · 0 评论 -
正确渲染html字符串
正确渲染html字符串前言在渲染 html 字符串时,需要将合法的 html 标签渲染出来,对部分字符( <、> )转义成 html 实体。代码var str = `111<br />sdfsdfsdf<h1 class="ddd"> 哈哈哈</h1>请看题()。i=0,s=0;while (s<n) {s=s+i;i++;}&...原创 2019-06-25 18:34:33 · 5581 阅读 · 0 评论 -
函数参数默认值和 || 的区别
函数参数默认值和 || 的区别前言es6 对函数进行了扩展,新增了函数传参设置默认值的功能,那么,这个默认值和 || 有什么区别呢?代码function fn (str = '') { console.log(typeof str)}fn(undefined) // stringfn('') // stringfn(null) // objectfunction fn (s...原创 2019-06-26 18:26:30 · 438 阅读 · 0 评论 -
post导出excel
前言在做 excel 导出时,经常需要导出选中的行,然选中的行需要将 id 传给后台,如果使用 get 方式导出,在浏览器地址栏能导出的行数是有限。此时,就需要用到 POST 方式导出了。环境axioselement-uivue 2.5.2POST导出request.jsimport axios from 'axios'import { Message } from 'ele...原创 2019-06-30 10:11:07 · 1921 阅读 · 0 评论 -
Promise的妙用
Promise的妙用1、返回已获取的数据在函数中获取数据后,可以直接 return 一个 Promise ,然后在 then 函数中 return resolve() 即可返回一个新的 Promiseconst arr = ['tom', 'jerry', 'john']const sleep = async (ms) => { await new Promise(resolve ...原创 2019-06-30 17:13:37 · 184 阅读 · 0 评论 -
处理树数据
处理树数据前言在工作中,经常需要处理树数据,自己总结了部分处理数据的函数,如下:代码tree.json[ { "id": "4", "pid": "1", "name": "大家电" }, { "id": "5", "pid": "1", "name": "生活电器" }, { "id": "1", "pid": "0", "name": "家用电器" }, { "id"...原创 2019-06-30 17:43:58 · 526 阅读 · 0 评论 -
多种方法判断一个对象是否包含一个属性
前言判断一个对象是否包含一个属性有多种的方式,如下:const obj = { name: 'john'}var a = 'name' in objvar b = Reflect.has(obj, 'name')var c = Reflect.hasOwnProperty.call(obj, 'name')var d = Object.prototype.hasOwnPropert...原创 2019-08-03 17:24:15 · 2009 阅读 · 0 评论 -
javascript修改对象属性的正确姿势
修改对象属性前言Object.assign()...扩展运算符前言eslint有一条规则no-param-reassign,意思是禁止修改函数的属性。若函数的属性是对象,此时不能修改对象属性。有什么方法呢?方法有二种,如下:var obj = { a: 1, b: 2}Object.assign()Object.assing() 方法将所有可枚举属性的值从一个或多个源对象复制...原创 2019-01-24 10:20:28 · 2400 阅读 · 2 评论 -
javascript最全面对象属性的遍历
属性的遍历前言for...inObject.keys(obj)Object.getOwnPropertyNames(obj)Object.getOwnPropertySymbols(obj)Reflect.ownKeys(obj)总结参考前言ES6中共有5种遍历对象属性的方法for…inObject.keys(obj)Object.getOwnPropertyNames(obj)Ob...原创 2019-01-23 23:36:56 · 238 阅读 · 0 评论 -
TypeUtil--判断js数据类型
TypeUtil前言代码前言判断数据类型,我们经常用到typeof、instanceof、Array.isArray()等运算符或方法判断类型,然typeof和instanceof并不全面,typeof不能区分null、数组和对象,instanceof不能区分对象和数组。因为在js中数组是对象的子集。故提供一份完整的判断类型util供大家参考。代码// type.jsconst type...原创 2018-12-17 09:42:45 · 265 阅读 · 0 评论 -
javascript-生成随机数
随机数算法参考随机数算法var rand = (function () { var seed = new Date().getTime() function rnd(){ seed = ( seed * 9301 + 49297 ) % 233280 return seed / ( 233280.0 ) }...原创 2018-05-22 22:29:19 · 353 阅读 · 0 评论 -
javascript-深入理解XMLHttpRequest对象(一)
XMLHttpRequest对象XMLHttpRequest Level1(版本1)XMLHttpRequest Level2(版本2)设置请求头参考XMLHttpRequest对象XMLHttpRequest对象是浏览器提供的向服务器请求和解析响应数据的接口。XMLHttpRequest Level1(版本1)XHR对象由IE最早提出,并在之后所...原创 2018-05-26 16:50:51 · 3782 阅读 · 0 评论 -
JSONP实现跨域访问
JSONPJSONP什么是JSONP?JSONP的作用?为什么JSONP能跨域?代码如下注意什么是JSONP?JSONP的英文意思是“JSON with padding”,有填充的json。至于填充何物--无谓乎数据而已。JSONP的作用?JSONP在早些年旧版的浏览器中用于跨域获取数据。由于浏览器同源规定,同一个服务器的页面只能访问该服务器的数...原创 2018-04-28 21:14:19 · 248 阅读 · 0 评论 -
javascript-跨浏览器选中文本框指定长度的值
跨浏览器实现选中文本框指定的长度的值依赖代码效果如下:跨浏览器实现选中文本框指定的长度的值可用于编辑器的功能的开发。依赖EventUtil.js代码&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8&a原创 2018-05-18 22:50:18 · 260 阅读 · 0 评论 -
javascript-实现鼠标事件模拟
鼠标事件模拟鼠标事件模拟函数库点击事件函数库EventUtil.jsBrowserUtil.js点击事件<p> <button id="btn1">按钮1</button></p><p> <button id="btn2">按钮2&a原创 2018-05-01 16:53:53 · 2361 阅读 · 0 评论 -
javascript-通过getComputedStyle()计算元素的所有样式
javascript-计算元素的所有样式javascript-计算元素的所有样式getComputedStyle()兼容IE8小结在日常开发中,如果你需要读取html元素的style样式或class样式的属性值时,就可以使用DOM2级样式中新增的方法-getComputedStyle()。getComputedStyle()getComputedStyle()方...原创 2018-04-07 11:23:14 · 1962 阅读 · 0 评论 -
理解javascript构造函数、原型
理解javascript构造函数、原型和实例理解javascript构造函数、原型和实例函数构造函数原型函数函数是Function类型的实例,即函数也是对象,故函数也拥有自己的方法,可增强其行为特性。构造函数构造函数的首字母大写,且构造函数在被调用时,会经历几个步骤,创建一个新对象,将构造函数的作用域赋给新对象,执行构造函数代码,返回新对象。// ...原创 2018-04-04 21:49:52 · 479 阅读 · 1 评论 -
理解javascript函数表达式和函数声明
理解javascript函数表达式和函数声明理解javascript函数表达式和函数声明1.函数声明2.函数表达式3.区别小结1.函数声明函数声明指函数符号function后面带上函数名,非匿名函数。如下:// 带函数名function count (num) { return num + 1}2.函数表达式指声明一个变量,其指针指向一个...原创 2018-04-02 20:12:30 · 248 阅读 · 0 评论 -
javascript-hashchange事件和历史状态管理
hashchange事件代码如下历史状态管理代码如下注意hashchange事件hashchange事件,可以监听URL参数(#后面的字符串)什么时候发生变化。代码如下<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">...原创 2018-05-23 20:51:49 · 3582 阅读 · 3 评论 -
html5-关于select元素的一些你不知道的操作
select元素的常用操作添加option选项1.使用选择框的add()方法2.使用DOM方法3.使用option构造函数(IE8之前存在问题)4.使用insertBefore()方法,可以将元素插入到指定位置change事件移除option选项1.使用DOM的removeChild()方法2.使用选择框的remove()方法3.使用DOM出现之前的遗留方式...原创 2018-05-24 22:14:38 · 1605 阅读 · 0 评论 -
EventUtil--跨浏览器的事件对象
EventUtil对象前言代码转载自EventUtil–跨浏览器的事件对象前言在开发PC端应用时,经常需要兼容不同的浏览器,特别是IE浏览器,如此,每次都需要写相同的兼容代码,现将兼容代码封装成util,供大家参考。代码// EventUtil.jsexport default { // 添加事件 addHandler (element, type, handler) { ...转载 2018-12-17 08:54:39 · 314 阅读 · 0 评论 -
javascript之大文件分段上传、断点续传(一)
大文件上传前言环境代码效果总结注意参考前言前些时,我正在研究以post请求方式导出excel,发现了Blob这个下载文件的好帮手,于是顺手写了使用Blob对象下载文件,记录自己前进路上的点点滴滴。服务器导出excel是将携带excel类型(MIME)的二进制字节发送到浏览器,浏览器解析该字节流以达到下载excel的目的。那么是否在上传大文件时,将大文件分解为一段一段的,然后上传至服务器,服务...原创 2018-12-02 00:31:16 · 7288 阅读 · 2 评论 -
javascript之使用链接跨域下载图片
下载图片前言外链下载注意前言图片是最常见的静态资源文件,可以从本地、外链获取图片,或者使用base64码展示。而canvas的toDataUrl() API可以将图片转base64码,然后模拟点击事件即可下载图片。外链下载在本地或者网站下载外链url图片时涉及到跨域,跨域会暴露自己的隐私,浏览器对跨域请求进行了限制,故需要设置crossOrigin为anonymous来允许跨域,浏览器会...原创 2018-11-25 15:29:54 · 13727 阅读 · 2 评论 -
javascript之使用Blob对象下载文件
Blob对象前言环境操作总结Blob是一个类文件的不可变的原始数据对象,非javascript原生数据类型,File对象就是继承自Blob对象,且在Blob的基础上进行扩展,以便支持用户系统上的文件。前言最近在做以post请求方式导出excel时,想到了可以使用Blob对象将后台返回的输出流以arraybuffer或blob的格式接收交给Blob处理,最后使用URL生成链接,供浏览器下载ex...原创 2018-11-23 16:33:07 · 6542 阅读 · 2 评论 -
javascript-理解toString方法的巧妙之处
toString方法的妙处判断数据类型花样繁多的类型判断方式一(原型的toString方法)方式二(es6提供的Reflect方法!推荐使用)总结toString方法是javascript的原生方法,每一种数据类型从Object继承了该方法,今天来说说toString方法的巧妙之处。判断数据类型日常开发时,经常需用到判断数据类型的时候,通常用到typeof或者instanceof这2个关键字...原创 2018-10-31 21:59:09 · 483 阅读 · 0 评论 -
操作cookie最实用的方式
前言操作参考前言什么是cookie? cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。操作 /** * 设置cookie值 * * @param {String} name cookie名称 * @...原创 2018-09-13 09:15:27 · 998 阅读 · 0 评论 -
es6-new.target属性的正确用法
new命令new.target属性示例new命令new命令是通过构造函数生成实例的命令。new.target属性ES6引入了new.target属性,用于确认当前作用的在哪个构造函数上。若没有通过new命令调用构造函数。则new.target会返回undefined,否则返回当前构造函数。示例单个构造函数function Anima...原创 2018-08-12 17:49:33 · 2321 阅读 · 0 评论