js
Judy1623
前端是个非常具有挑战的工作,只要自己心有所爱,就会成为那个最好的自己!
展开
-
[ JS ]保留2位小数需注意事项
JS保留两位小数,首先想到的是toFixed(),还有什么方法呢?toFixed(2) 四舍五入var num = 13.999;var numToturn = num.toFixed(2);console.log(numToturn)//=>14.00Math.floor(num*100)/100 不会四舍五入var num = 13.999;var numT...原创 2019-11-22 11:36:17 · 213 阅读 · 0 评论 -
【JS】 实现中文按照拼音首字母排序
参考链接:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare功能:地区数组按照中文排序['上海','广州','天津'].sort((a, b) => { a.localeCompare(b, 'zh-Hans-CN', {s...原创 2019-10-25 16:57:30 · 1697 阅读 · 0 评论 -
js 给日期加一天或者减一天
问题:给指定日期加一天或者减一天function DateAdd(interval,number,date){/* * 功能:实现VBScript的DateAdd功能. * 参数:interval,字符串表达式,表示要添加的时间间隔字符. * 参数:number,数值表达式,表示要添加的时间间隔的个数. * 参数:date,时间对象. * 返...原创 2019-10-23 17:20:25 · 3843 阅读 · 0 评论 -
[ 工具 ] VScode格式化
声明:本文转自https://segmentfault.com/a/1190000014354996,旨在学习分享,如有侵权请联系修改或删除。前言感觉搭建一个舒服的前端开发环境,十分的重要定制化的格式化,编辑器自带的格式化各种报错,手动改真的会死人,因此搭建一个编辑器环境必不可少,现在要讲的是vscode中如何定制vuevs code的配置文件:format相关:搜索for...转载 2019-08-30 11:55:22 · 708 阅读 · 0 评论 -
[ String ] 把url字符串参数转化成对象
查询字符串参数location.search 返回从问号到 URL 末尾的所有内容思路:var url = 'https://baidu.com/vms/api?act=doLogin&userId=user&password=TES';最后生成:args:{ act : 'doLogin', userId : 'user', password : 'TES'...原创 2019-08-09 10:39:34 · 2100 阅读 · 0 评论 -
[ Object ] 混入mixin
显式混入function mixin(souceObj,targetObj){ for(var key in souceObj){ if(!(key in targetObj)){ targetObj[key] = souceObj[key] } } return targetObj ;}var a = { age : '18', skill:...原创 2019-08-05 12:00:44 · 125 阅读 · 0 评论 -
防抖与节流
一、防抖触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次触发,则重新计算时间思路:每次触发事件时都取消之前的延时调用方法。函数防抖 debounce 指的是某个函数在某段时间内,无论触发了多少次回调,都只执行最后一次//防抖 每次都取消之前的延时//防抖 每次都取消之前的延时function debounce(fn,delay){ let tim...翻译 2019-08-06 11:23:47 · 96 阅读 · 0 评论 -
Object 深浅拷贝区别与实现
目录一、数据类型二、浅拷贝与深拷贝三、赋值和浅拷贝的区别四、浅拷贝的实现方式1、Object.assign()2、Array.prototype.concat()3、Array.prototype.slice()五、深拷贝的实现方式1、JSON.parse(JSON.stringify())2、手写递归方法3、函数库lodash本文章摘自https...翻译 2019-07-24 10:04:01 · 236 阅读 · 0 评论 -
javascript 设计模式(7) —— 模板方法模式
模板方法模式 :在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中某些步骤的具体实现。翻译 2019-07-23 09:16:29 · 138 阅读 · 0 评论 -
《你不知道的JavaScript中卷》知识点笔记
知识点笔记一、类型用typeof返回的是类型的字符串值typeof undefined === "undefined"typeof true === "boolean"; // truetypeof 42 === "number"; // truetypeof "42" === "string"; // truetypeof { life: 42 } === "object"; ...原创 2019-07-31 17:20:59 · 165 阅读 · 0 评论 -
字符串:字符串和数字之间的显式转换
字符串和数字之间的显式转换1.String(..) 和 Number(..)var a = 42;var b = String( a );var c = "3.14";var d = Number( c );b; // "42"d; // 3.142. toString() 和 +var a = 42;var b = a.toString();var c = ...原创 2019-07-30 10:06:26 · 521 阅读 · 0 评论 -
[ String ] 检测字符串中字母、数字的出现次数
字符串中某个字母或数字的出现次数使用indexOf检测某个字符初始位置参数1:被查找的元素参数2:开始查找的位置 如果小于0查找整个字符串(等价于传入了 0)思路:不断增加 indexOf()方法开始查找的位置,遍历了一个长字符串。在循环之外,首先找到了"e"在字符串中的初始位置;而进入循环后,则每次都给 indexOf()传递上一次的位置加 1。function stringNu...原创 2019-08-07 17:01:18 · 663 阅读 · 0 评论 -
【 记录 】函数的一些简洁用法
函数的方法最大优点就是解耦了请求发送者和 N 个接收者之间的复杂关系思路 :1.验证是否为Judy ,不是 报错2.如果是打印出judy,并做相应的操作/*** @description test {Function} 验证名字是不是“judy”* @param {String} name 名字* @param {Function} callback 返回执行函数*/fun...原创 2019-08-19 14:11:58 · 90 阅读 · 0 评论 -
[ class ] 类的继承
类的继承思路 :一个对象可以继承另一对象身上的属性和方法 !class People { constructor(name, age) { this.name = name; this.age = age; } //父级的静态方法 static hello() { console.log('hello wor...原创 2019-08-21 11:00:07 · 94 阅读 · 0 评论 -
客户端检测
检测 Web 客户端的手段很多,而且各有利弊。但最重要的还是要知道,不到万不得已,就不要使用客户端检测。只要能找到更通用的方法,就应该优先采用更通用的方法。一言以蔽之,先设计最通用的方案,然后再使用特定于浏览器的技术增强该方案。原创 2019-08-12 14:09:53 · 177 阅读 · 0 评论 -
[ Array 工具函数 ]
Array 工具函数只是想要使用起来方便1.在数组中查找所有出现的元素x,并返回一个包含=>匹配索引的元素// 查找数组a中的值1出现的位置,并返回数组var a = [1, 2, 3, 4, 5, 6, 1, 1, 1, 4];//result => [0,6,7,8]function aIndex(a, v) { var result = [], ...原创 2019-11-25 11:21:40 · 136 阅读 · 0 评论 -
【 函数柯里化 】
函数柯里化概念 - 调用另一个函数并为它,参数1:传入柯里化的函数 参数2:其他参数,要传入的值功能 - 参数复用 延迟执行案例:curry 创建柯里化的通用公式第一种:基本的柯里化函数function curry (fn) { // curry第一个参数=>柯里化函数 ,其他参数 => 要传入的值 var args = Array.prototype.slice...原创 2019-09-06 15:52:46 · 167 阅读 · 0 评论 -
删除排序数组中的重复项
题目:@param {number[]} nums@return {number} 例如:给定数组 nums = [1,1,2] 1.函数应该返回新的长度 2 2.并且原数组 nums 的前两个元素被修改为 1, 2解答:function removeDuplicates (nums) { if (nums.length == 0) { retu...翻译 2019-09-09 15:45:48 · 79 阅读 · 0 评论 -
[ Array ] - 数组去重
题目:如传入的数组元素为[123, "meili", "123", "mogu", 123],则输出:[123, "meili", "123", "mogu"] 如传入的数组元素为[123, [1, 2, 3], [1, "2", 3], [1, 2, 3], "meili"],则输出:[123, [1, 2, 3], [1, "2", 3], "meili"] 如传入的数组元素为[123...翻译 2019-07-30 17:37:39 · 442 阅读 · 0 评论 -
toString()和toLocalString()有什么区别
首先这两个函数都是将数字转化成字符串一、将 数字 转化成 字符串toString - 将数字转化成字符串,使用指定的基数; toLocalString -把数字转换为字符串,使用本地数字格式顺序;toLocaleString()会让数字三位三位一分隔var a = 1234;console.log(a.toString()) //'1234'console.log(a.toLo...翻译 2019-07-30 11:07:12 · 1553 阅读 · 0 评论 -
javascript 设计模式(9) —— 装饰者模式
装饰者函数 :可以把行为依照职责分成粒度更细的函数,随后通过装饰把它们合并到一起,这有助于我们编写一个松耦合和高复用性的系统。应用1 :数据统计上报比如页面中有一个登录 button,点击这个 button 会弹出登录浮层,与此同时要进行数据上报,来统计有多少用户点击了这个登录 button: Function.prototype.after = function( afterfn ){...翻译 2019-07-25 10:41:43 · 123 阅读 · 0 评论 -
属性值的唯一性
取出特定属性值的重复项!!!let people = [ { id : '001', name : 'judy', age : '18' }, { id : '001' , name : 'wayne', age : "19" }, { id ...原创 2019-04-26 09:00:49 · 1019 阅读 · 0 评论 -
关于this的解读
this的指向问题主要思路:this的指向是在函数调用时确定的。也就是执行上下文被创建时确定的。var name = "jay";var person = { name: "kang", pro: { name: "Michael", getName: function() { return this.name;...转载 2019-04-10 10:03:28 · 153 阅读 · 0 评论 -
element-UI表格排序问题
遇到的问题:表格不能排序解决:在列上加: :sort-method = "sortChange1" 方法<el-table:data="tableData"style="width: 100%":default-sort = "{prop: 'date', order: 'ascending'}" height="300"><el-table-c翻译 2019-03-05 10:49:02 · 5972 阅读 · 2 评论 -
js中有几种类型的值,画出他们的内存图?
基本数据类型储存在栈中,其他如:数组 /函数/对象等储存在堆中。栈:原始数据类型:(Undefined/Null/Boolean/Number/String)堆:引用数据类型(对象/数组/函数)两种类型的区别:储存位置不同原始数据类型直接储存在栈(stack)中简单数据,占据空间小/大小固定,属于被频繁使用数据,所以放在栈中储存。 引用数据储存在堆中的对象 : 占据空间大,大...翻译 2019-01-28 10:17:46 · 699 阅读 · 0 评论 -
ES6 Promise(1)
1. Promise的含义1.对象的状态不受外界影响- 三种状态: - pending (进行中) - fulfilled (已成功) -rejected (已失败)2.一旦状态改变,就不会在变,任何时候都可以得到这个结果。- 两种可能 - pending -> fulfilled - pending -> rejected 只要两种情况发生,状态就凝固了,不...原创 2018-12-18 16:56:48 · 109 阅读 · 0 评论 -
css几种垂直居中的方式(面试常考题1)
水平垂直居中(一)定位和需要定位的元素的margin减去宽高的一半 <style> *{ padding: 0; margin: 0; } .box{ width: 300px; height: 300px; ba...转载 2018-11-22 09:49:17 · 1206 阅读 · 0 评论 -
JavaScript性能优化小窍门
在众多语言中,JavaScript已经占有重要的一席之地,利用JavaScript我们可以做很多事情 , 应用广泛。在web应用项目中,需要大量JavaScript的代码,将来也会越来越多。但是由于JavaScript是一个作为解释执行的语言,而且它的单线程机制,决定了性能问题是JavaScript的弱点,也是开发者在写JavaScript的时候需注意的一个问题。 <scr...转载 2018-11-05 10:37:21 · 120 阅读 · 0 评论 -
对于数字的处理,逢三位数转逗号 || 数字转千分位
数字逢三转逗号方法一:function changeTree(num) { var num = (num || 0).toString(); var result = ''; while (num.length > 3) { result = ',' + num.slice(-3) + result; ...原创 2018-07-13 13:56:58 · 655 阅读 · 0 评论 -
javascript 设计模式(2) —— 策略模式
实现功能:使用Javascript 中的策略模式来实现 根据每一位员工的年底业绩考核,来核算年终奖的需求。第一种(不推荐)1.我们先用我们熟悉的js代码来实现这个功能var calculateBonus = function(salary,perLevel){ if( perLevel === 'S'){ return salary * 4 ; }...翻译 2019-07-10 11:01:48 · 139 阅读 · 0 评论 -
Javascript 设计模式(3) —— 代理模式
第一、定义: 代理模式是为一个对象提供代用品或者占位符,以便控制对它的访问。比如说,某男生小明想向他的女神 A 表白,刚好小明认识的一个女生B 和 女神A 是好朋友,那么小明就想让 女生B 帮忙送花给 女神A 。这个就是一个代理模式。缓存代理模式var mult = function(){ var a = 1; for (var i = 0; i < argum...原创 2019-07-10 17:31:40 · 112 阅读 · 0 评论 -
ES6的模块化管理
ES6的exportexport用于对外输出本模块(一个文件可以理解为一个模块)变量的接口1.1 export// export/index.jsconst a = "123";const fn = () => window.location.href;export { fn };// show/index.jsconst ex = require("./export/...翻译 2019-07-22 09:14:37 · 503 阅读 · 0 评论 -
Javascript 设计模式(6) ——组合模式
组合模式就是用小的子对象来构建更大的对象,这些小的子对象也许是由更小的‘‘孙对象’构成的。marcoCommand 被称为组合对象,closeDoorCommand、openPcCommand、openQQCommand 都是叶对象。例如 :目前的万能遥控器,包含了关门、开电脑、登录 QQ 这 3 个命令。现在我们需要一个“超级万能遥控器”,可以控制家里所有的电器,这个遥控器拥有以...翻译 2019-07-19 09:08:39 · 178 阅读 · 0 评论 -
javascript 设计模式(1) —— 单例模式
单例模式是:保证一个类仅有一个实例,并提供一个访问它的全局访问点。例如:用户点击按钮的时候才显示弹框让我们一步步优化,实现更好的单例模式第一种:点击一次创建一个新对象缺点 : 失去了单例的效果,当我们每次点击的时候都会创建一个新的div<html> <body> <button id="loginBtn">登录</button>...翻译 2019-07-17 09:12:46 · 137 阅读 · 0 评论 -
Javascript 设计模式(5-2) —— 宏命令
宏命令是一组命令的集合,通过执行宏命令的方式,可以一次执行一批命令。下面我们看看如何逐步创建一个宏命令。首先,我们依然要创建好各种 Command:第一步 :定义好各种命令var closeDoorCommand = { execute: function(){ console.log( '关门' ); } };var openQQComm...翻译 2019-07-16 14:22:44 · 824 阅读 · 0 评论 -
关于缓存的一些真相:Cookie && localStorage && Session Storage 缓存相关
Cookie && localStorage && Session Storage 这三个分别的意思为:关于前端存储的问题我们难免会遇到 token 存储、 代码缓存、 图片存储等等。 以及可能存在的 一系列的问题;现在,我们就专门从 浏览器存储 入手,来真正的了解 缓存 存在的 场景,以及在日常开发中,我们需要 缓存的地方,以及使用缓存会给我们带来哪些优...翻译 2019-07-18 14:16:37 · 314 阅读 · 0 评论 -
Javascript 设计模式(5-1) —— 命令模式
命令模式:命令模式的由来,其实是回调(callback)函数的一个面向对象的替代品。功能:点击按钮执行刷新功能流程:设置安装命令的接口 - 点击按钮的执行的具体行为 (比如:刷新-增加子菜单) - 把命令封装在命令类中 - 执行命令...翻译 2019-07-16 09:07:34 · 118 阅读 · 0 评论 -
ES5/ES6将类数组 转化为 数组
把数组转化为类数组类数组转化为数组1 : Array.prototype.slice.call(arguments)//从索引开始出提取数组var test = function() { return Array.prototype.slice.call(arguments) ; //es5}let a = test(1,2,3,4)console.log(a) // [1,...原创 2019-07-11 15:22:14 · 1038 阅读 · 0 评论 -
Javascript 设计模式(4) —— 发布订阅模式
发布—订阅模式可以用一个全局的 Event 对象来实现,订阅者不需要了解消息来自哪个发布者,发布者也不知道消息会推送给哪些订阅者,Event 作为一个类似“中介者”的角色,把订阅者和发布者联系起来。发布订阅模式var Event = (function(){ var clientList = {}, listen, trigger, remove; list...翻译 2019-07-15 13:39:10 · 131 阅读 · 0 评论 -
map(),some():every():forEach():
1.map() //对数组进行处理//将所有的数组元素转换为大写:var strings = ["hello", "Array", "WORLD"];function makeUpperCase(v){ return v.toUpperCase();}var uppers = strings.map(makeUpperCase);// uppers is now ["HEL...转载 2018-06-06 18:56:00 · 98 阅读 · 0 评论