Javascript
guoxiaxing
这个作者很懒,什么都没留下…
展开
-
使用vue实现一个点击换色的指令
html代码:<div v-random-color style='width:100px;height:100px;background-color:red;position:absolute;'></div>script代码:// vue自定义指令,点击可以让元素随机换色Vue.directive('randomColor', function(){ ...原创 2019-07-30 19:36:34 · 810 阅读 · 0 评论 -
原生js封装的ajax请求
function ajax(json){ var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject('Microsoft.XMLHTTP'); } //解析所传递过来的数据 ...原创 2018-08-20 17:45:49 · 546 阅读 · 0 评论 -
leetcode刷题(第一天)
1.two sum:解法一:function sum(arr,target){ var len = arr.length; for(var i=0;i<len;i++){ for(var j=0;j<len;j++){ if(i!=j){ ...原创 2018-08-19 11:50:51 · 165 阅读 · 0 评论 -
JS tab栏
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .top{ overflow: hidden; padding原创 2018-08-12 09:21:53 · 223 阅读 · 0 评论 -
原生js的拖拽事件
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width:200px; height:200px原创 2018-08-12 08:33:53 · 655 阅读 · 0 评论 -
关于创建对象的几种方式
一篇很详细的博客:http://www.cnblogs.com/mizzle/archive/2011/07/06/2099342.html转载 2018-08-11 12:30:27 · 166 阅读 · 0 评论 -
es6 class类的理解
es6:类声明以 class 关键字开始,其后是类的名称;剩余部分的语法看起来就像对象字面量中的 方法简写,并且在方法之间不需要使用逗号。类和自定义函数的区别:(有两种定义方式,表达式和声明)1.class没有变量提升。2.类声明会自动运行在严格模式下,并且也无法退出严格模式。3.类的所有方法都是不可枚举的(enumerable=false)。4.调用类时不使用new运算符...原创 2018-08-11 12:29:09 · 252 阅读 · 0 评论 -
元素绑定事件和解除事件的兼容性写法
var EventUtil = { addHandler: function(element, type, handler){ if (element.addEventListener){ element.addEventListener(type, handler, false); } else if (element.a...原创 2018-08-03 17:48:19 · 252 阅读 · 0 评论 -
深度克隆(针对数组和对象)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script&原创 2018-07-22 09:40:12 · 404 阅读 · 0 评论 -
数组去重
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script&原创 2018-07-21 18:53:56 · 124 阅读 · 0 评论 -
js基础算法题
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script&原创 2018-07-29 17:30:59 · 206 阅读 · 0 评论 -
将NodeList类数组转换为数组
由于 IE8 及更早版本将 NodeList实现为一个 COM 对象。要想在 IE 中将 NodeList 转换为数组,必须手动枚举所有成员。function convertToArray(nodes){ var array = null; try { array = Array.prototype.slice.call(nodes, 0); //针对非 IE 浏览器 } catch (e...原创 2018-07-11 19:03:47 · 554 阅读 · 0 评论 -
用户代理字符串检测脚本
以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows 操作系统、移动设备和游戏系统:var client = function(){ //呈现引擎 var engine = { ie: 0, gecko: 0, webkit: 0, khtml: 0, opera: 0, //完整的版本号 ver: null }; //浏览器 var browser...原创 2018-07-11 18:40:29 · 160 阅读 · 0 评论 -
BOM的相关操作(查询字符串转为对象,浏览器的插件信息)
1.查询字符串转换为对象:function getQueryStringArgs(){ //获取查询字符串并除去开头的问号 var qs = location.search.length?location.search.substring(1):''; //创建一个对象用来参数 var args = {}; //取得参数 var items = qs.lengt...原创 2018-07-11 17:52:02 · 281 阅读 · 0 评论 -
闭包的问题
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script&原创 2018-07-10 23:21:29 · 110 阅读 · 0 评论 -
JS数组扁平化的几种方法
<script> var arr = [[1,2,[3,4],5],[6,7,8],[[9,10],11]]; //方法一: function flatten(arr){ return arr.reduce(function(prev,cur){ return prev.concat(Array.isArray(cur)?flatten(cur):cur); ...原创 2018-10-01 18:35:25 · 257 阅读 · 0 评论 -
原生JS实现promise(只包括状态改变的代码)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script&原创 2018-10-17 21:23:05 · 1021 阅读 · 0 评论 -
from memory cache和from disk cache一些问题
这个问题源于今天无意中打开开发者工具的network发现浏览器在读取缓存时还有这两种不同的方法,所以看了一些资料,自己写一一篇总结一下。发现虽然都是缓存中去文件但还是有一些区别的。webkit资源的分类:webkit的资源分类主要分为两大类:主资源和派生资源。http状态码:200 from memory cache不访问服务器,直接读缓存,从内存中读取缓存。此时的数据...原创 2018-10-20 15:29:42 · 3331 阅读 · 1 评论 -
vue自定义一个拖拽指令
<!DOCTYPE html><html><head> <title>vue自定义指令</title> <script type="text/javascript" src='vue.js'></script> <style type="text/css"> *{ margin: 0;...原创 2019-07-30 19:24:53 · 250 阅读 · 0 评论 -
使用canvas实现一个扇形loading动态图
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>loading</title> <style> #box{ font-size: 20px; font-weight: bold; color:r...原创 2019-04-28 20:21:20 · 857 阅读 · 0 评论 -
js实现二叉树结构及其操作
//二叉搜索树结构(BST) function BinarySearchTree(){ //每一个节点的数据结构 function Node(key){ this.key = key; this.left = null; this.right = null; } this.root = null; //向树中插入值 this.insert = ...原创 2019-02-12 18:22:49 · 613 阅读 · 0 评论 -
js实现字典结构
//字典数据结构 function Dictionary(){ this.items = {}; //检查是否有某一个键 this.has = function(key){ return this.items.hasOwnProperty(key); } //为字典添加某一个值 this.set = function(key,val){ this.item...原创 2019-02-11 18:55:10 · 1309 阅读 · 0 评论 -
js实现栈结构,以及十进制转化为任意机制数
//栈结构 function Stack(){ //声明一个数组来保存元素 let items = []; //向栈中天添加元素 this.push = function(item){ items.push(item); } //删除栈中的最后一个元素,返回所删除的元素...原创 2019-01-29 17:05:26 · 253 阅读 · 0 评论 -
js实现集合
// 集合(不允许重复)es6提出了Set数据结构,也就是我们的集合 //这里我们通过对象来模拟集合,适用对象而不使用数组的原因是因为对象不允许有重复的属性 //是将集合中的值作为对象的键来定义 function Set(){ this.items = {}; //判断集合中有没有某一个值 this.has = functi...原创 2019-02-01 15:05:09 · 1309 阅读 · 0 评论 -
js实现单向链表和双向链表
//js实现链表 //单向链表 function LinkedList() { //单链表的节点结构 function Node(ele){ this.element = ele; this.next = null; } this.head = null; ...原创 2019-01-31 16:58:28 · 389 阅读 · 0 评论 -
用原生js实现addClass,hasClass,removeClass
<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial原创 2019-01-24 20:45:30 · 578 阅读 · 0 评论 -
二分查找(JS实现)
//二分查找:平均时间复杂度O(logn),如果找到了返回下标,如果找不到则返回-1 //前提为有序数组 //方法一:非递归 function binarySearch(arr,target){ var high = arr.length-1, low = 0, mid; while(low<=high){ mid = Math.floor((l...原创 2019-01-05 20:06:33 · 369 阅读 · 0 评论 -
堆排序
//不稳定,与初始状态无关,平均时间复杂度O(nlogn) var arr = [1,4,2,6,7,3]; //堆排序 // 堆分为大根堆和小根堆 // 大根堆表示根元素的值比其左右子节点的值都大(一般用于从小到大排序) // 小根堆表示根元素的值比其左右子节点的值都小(一般 用于从大到小排序) function heapSort(arr){ var len = arr....原创 2019-01-05 19:51:57 · 146 阅读 · 0 评论 -
将字符串中的特殊字符进行转义
function escapeRegExp(str) { return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");}原创 2018-12-15 16:41:24 · 2827 阅读 · 0 评论 -
斐波那契数列(三种实现方法)
//斐波那契数列 // 1.平均时间复杂度O(n^2),占用的额外空间O(n) function fib(n){ if(n===1||n===2){ return 1; }else{ return fib(n-1) + fib(n-2); } } //2.平均时间复杂度O(n),占用的额外空间O(n) function fib(n){ ...原创 2018-10-20 21:18:58 · 334 阅读 · 0 评论 -
JS实现阶乘
//求阶乘 function fun(n){ if(n<=1){ return 1; }else{ return n*fun(n-1); } } // 上面这种方法存在紧耦合的情况,所以出现下面的方法 function fun(n){ if(n<=1){ return 1; }else{ return n*...原创 2018-10-20 21:07:27 · 4130 阅读 · 0 评论 -
判断一个数是否是质数
// 判断一个数是否为质数的函数(质数,只能被1和他本身整除的数) // 判断方法,如果一个数在2到他本身开根号之间的数都无法整除,那么他就是一个质数 function zhishu(num){ var sqrt = Math.sqrt(num); for(var i=2;i<=sqrt;i++){ if(num%i===0){ return fals...原创 2018-10-20 21:03:48 · 538 阅读 · 0 评论 -
JS 函数
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script&原创 2018-07-10 14:47:49 · 164 阅读 · 0 评论 -
ES6的let与const
原创 2018-06-09 18:38:26 · 116 阅读 · 0 评论 -
查找两个字符串的公共子串
查找两个字符串的公共子串function findSubStr(str1,str2){ var len1 = str1.length, len2 = str2.length, result = ''; if(len1>len2){//保证str1是长度最小的字符串 var temp = str1; ...原创 2018-04-24 20:50:38 · 1003 阅读 · 0 评论 -
获取元素计算样式
获取元素计算样式:ele:为DOM元素,attr为所要获取属性function getStyle(ele,attr){ if(window.getComputedStyle){ //W3C标准浏览器 return window.getComputedStyle(ele,null)[attr]; }else if(ele.currentStyle){ ...原创 2018-04-23 18:53:19 · 205 阅读 · 0 评论 -
将多维数组转化为一维数组的方法
1.Generator函数: function* tree(item){ if(Array.isArray(item)){ var len = item.length; for(var i=0;i<len;i++){ yield* tree(item[i]); } }else{ yield ite...原创 2018-04-12 20:03:47 · 1694 阅读 · 0 评论 -
数字字符串,转换为货币格式输出
方法一:PHP中传入第一个参数为字符串,第二个参数为分隔符(以字符串的形式传入)function nf1($str,$spe){ $str2 = strrev($str); $arr = str_split($str2,3); $str3 = join($arr,$spe); return strrev($str3); }还有PHP中的一个函数 :number_format($num);方...原创 2018-03-29 17:28:17 · 1829 阅读 · 0 评论 -
Promise对象加载图片
var preloadImage = function (path) { return new Promise(function (resolve, reject) { var image = new Image(); image.onload = resolve; image.onerror = reject; image.src = path; });};prel...原创 2018-04-17 21:45:42 · 990 阅读 · 0 评论 -
判断一个区间内回文素数的个数
//判断一个数是不是回文数 function huiNum(num){ var str = num.toString(); var len =str.length; var i=0,j=len-1; while(i<len && j>=0){ if(str[i]!=str[j]){ retu...原创 2018-03-27 10:28:59 · 2961 阅读 · 0 评论