![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
文章平均质量分 68
朱@
这个作者很懒,什么都没留下…
展开
-
判断钉钉客户端
export function comClientBrowser() { var _userAgent = navigator.userAgent; var _broMark = ''; if (/DingTalk/gi.test(_userAgent)) {//判断是否是钉钉客户端 _broMark = 'DingTalk'; return _broMark }else if (/wxWork/gi.test(_userAgent)) {//原创 2020-12-30 15:08:20 · 2058 阅读 · 0 评论 -
动态加载js文件
export function getScript(url, callback) { var head = document.getElementsByTagName('head')[0], js = document.createElement('script'); js.setAttribute('type', 'text/javascript'); js.setAttribute('src', url); head.appendChild(js);原创 2020-12-30 14:57:34 · 215 阅读 · 0 评论 -
js求百分比
/** * 求百分比 * @param num 当前数 * @param total 总数 */ getPercent(num, total){ num = parseFloat(num); total = parseFloat(total); if (isNaN(num) || isNaN(total)) { return "-"; } return total <= 0? "0%" : Math.round((num / total) * 10000) /原创 2020-12-10 09:25:01 · 2515 阅读 · 0 评论 -
flow
什么是flowFlow是javascript代码的静态类型接触的一个工具。它可以使你的代码更有效率、更可控、更大规模的开发。Flow通过静态类型检查到是否存在类型错误// @flowfunction square(n:unmber): number { return n * n;}square("2")// Error!如果您的代码不需要类型,他也会自动帮你判断。// ...原创 2019-11-25 17:12:10 · 312 阅读 · 0 评论 -
数据劫持(属性代理)
一、什么是数据劫持数据劫持,指的是在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果。比较典型的有两种方式object.defineProperty() 和es2015中新增的proxy对象 。数据的劫持最著名的应用当属双向绑定。vue2用的是Object.defineproperty()vue3用的是proxy进行实现Object.define...原创 2019-10-10 17:47:10 · 1958 阅读 · 0 评论 -
Generator函数和async函数
Generator 函数组成Generator 有两个区分于普通函数的部分:一是在 function 后面,函数名之前有个 * ;函数内部有 yield 表达式。其中 * 用来表示函数为 Generator 函数,yield 用来定义函数内部的状态。function* func(){ console.log("one"); yield '1'; console.log("two...原创 2019-09-29 00:33:04 · 84 阅读 · 0 评论 -
Class类
Class类在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。class 的本质是 function。它可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。Class类声明Class类表达式提升函数声明会提升class类不会提升原型方法class Rectangle { // constructor c...原创 2019-09-29 00:19:38 · 121 阅读 · 0 评论 -
ES6 迭代器
IteratorIterator 是 ES6 引入的一种新的遍历机制,迭代器有两个核心概念:迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator 的方法来实现。迭代器是用于遍历数据结构元素的指针(如数据库中的游标)。迭代过程迭代的过程如下:通过 Symbol.iterator 创建一个迭代器,指向当前数据结构的起始位置随...原创 2019-09-28 16:17:24 · 148 阅读 · 0 评论 -
使用一个Http-server开启一个本地服务
使用一个Http-server开启一个本地服务在写前端页面中,经常会在浏览器运行HTML页面,从本地文件夹中直接打开的一般都是file协议,当代码中存在http或https的链接时,HTML页面就无法正常打开,为了解决这种情况,需要在在本地开启一个本地的服务器。安装npm i -g http-server启动http-server禁用缓存http-server -c-1关闭...原创 2019-09-28 16:02:52 · 404 阅读 · 0 评论 -
promise总结
Promise该Promise对象表示异步操作的最终完成(或失败)及其结果值。Promise.all()Promise.all可以将多个Promise实例包装成一个新的Promise实例let promise1 = Promise.resolve(1)let promise2 = Promise.resolve(2)let promise3 = Promise.resolve(3)P...原创 2019-09-28 15:55:50 · 85 阅读 · 0 评论 -
使用promise解决图片异步加载
promise解决图片异步加载解决多张图片异步加载 function Create(url) { return new Promise((resolve, reject) => { let oimg = new Image();//创建img标签 oimg.onload = () => {...原创 2019-09-28 15:17:47 · 1695 阅读 · 1 评论 -
ES6新增方法总结
ES6 let 与 constvar 声明变量是在全局范围内有效。(可以重复使用,存在变量提升)let 声明的变量只在 let 命令所在的代码块内有效。((只能声明一次,for循环很适合用let,不存在变量提升)const 声明一个只读的常量,一旦声明,常量的值就不能改变。ES6 明确规定,代码块内如果存在 let 或者 const,代码块会对这些命令声明的变量从块的开始就形成一个封闭...原创 2019-09-28 13:44:25 · 992 阅读 · 0 评论 -
无new实例化的原理
无new实例化原理在这里我是通过闭包去实现的无new实例化。在闭包的构造函数原型方法里,把构造函数的原型赋给了构造函数原型方法里面的原型上,返回构造函数的原型。通过(function (global) { function fn() { return fn.prototype.init(); } fn.prototype.init = function ...原创 2019-09-28 12:45:52 · 257 阅读 · 0 评论 -
链式调用的原理
链式调用的原理通过构造函数上的原型的方法去返回this(这个this指向的是构造函数的实例),我们通过返回的构造函数的实例再去调用其他方法function Foo() {}Foo.prototype.set = function (name) { this.name = name; return this;}Foo.prototype.get = function (n...原创 2019-09-28 10:35:27 · 294 阅读 · 0 评论 -
Object 构造函数的方法
Object.assign()通过复制一个或多个对象来创建一个新的对象。浅拷贝Object.assign(obj1,obj2)返回第一个参数的值,第二个的参数覆盖第一个参数**let obj1 = { name: 'lisi', age: 12 }let obj2 = { name: 'zhangsan' }let obj3 = Object.assign(obj1, obj2)co...原创 2019-09-27 19:43:00 · 675 阅读 · 0 评论 -
JavaScript基础
JavaScript是什么?JavaScript 是弱类型脚本语言,是一种轻量级编程语言JavaScript 显示数据JavaScript 可以通过不同的方式来输出数据:使用 window.alert() 弹出警告框。使用 document.write() 方法将内容写到 HTML 文档中。使用 innerHTML 写入到 HTML 元素。使用 console.log() 写入到浏...原创 2019-09-27 12:10:14 · 78 阅读 · 0 评论