JavaScript
文章平均质量分 56
Elvira_D
这个作者很懒,什么都没留下…
展开
-
WebSocket笔记
一. 什么是WebSocketWebSocket 是一种在单个TCP连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。(维基百科)WebSocket 是一种计算机网络应用层的协议,用来弥补http协议在持久通信能力上的不足。WebSocket 的其他特点包括:建立在 TCP 协议之上,服务器端的原创 2021-12-01 16:55:51 · 702 阅读 · 0 评论 -
html2canvas使用
https://segmentfault.com/a/1190000021462570转载 2020-03-19 23:01:01 · 228 阅读 · 0 评论 -
html中document.body 与 document.documentElement的区别
项目中,经常会用到这两个来获取网页的滚动高度const scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //考虑浏览器兼容但是具体有啥区别还是有点模糊,这里抽出时间整理一下。1.document.body返回html dom中的body节点 即<body>2....原创 2020-03-05 10:35:47 · 1239 阅读 · 0 评论 -
lodash学习——JavaScript原始库
Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。Lodash 的模块化方法 非常适用于:遍历 array、object 和 string 对值进行操作和检测 创建符合功能的函数一、安装1. 浏览器通过script引入<scriptsrc="lodash.js"></scr...原创 2019-10-31 18:36:03 · 340 阅读 · 0 评论 -
【js数据结构】约瑟夫问题
传说在公园1世纪的犹太战争中,犹太约瑟夫是公元一世纪著名的历史学家。在罗马人占领乔塔帕特后,39 个犹太人与约瑟夫及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人俘虏,于是决定了一个流传千古的自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报到第3人该人就必须自杀,然后再由下一个人重新报数,直到所有人都自杀身亡为止。然而约瑟夫和他的朋友并不想遵从这个约定,约瑟夫要他的朋友先假装遵从...原创 2018-08-12 10:42:31 · 515 阅读 · 0 评论 -
数据结构与算法JavaScript描述——链表 6.7 练习(使用循环链表解决约瑟夫问题)
链表:有一组节点组成的集合。每个节点都使用一个对象的引用指向它的后继,指向另一个节点的引用就做链。一、链表1、单向链表// Node类function Node(element){ this.element = element; this.next = null;}// LinkedList类function List(){ this.head = new Node...原创 2018-08-11 14:38:08 · 504 阅读 · 0 评论 -
【js循环队列】击鼓传花
击鼓传花(HotPotato)游戏,在这个游戏中,孩子们围成一个圆圈,把花尽快地传递给旁边的人。某一时刻传花停止,这个时候花在谁手里,谁就退出圆圈结束游戏。重复这个过程,直到只剩一个孩子(胜者)。function Queue() { this.database = []; this.enqueue = function(ele){ this.database.push(ele); ...原创 2018-08-14 17:22:54 · 894 阅读 · 0 评论 -
学习JavaScript数据结构与算法 —— 使用栈完成进制转换
之前写过遇到把十进制转换成二进制数的算法,但是在面试过程中遇到转换成26进制,所以就在想,能不能实现一个函数,它能够将十进制转换成任意进制。1、使用数组方法function baseConverter(decNumber,base){ var digits = '0123456789ABCDEF'; var remStack = new Array(), rem, bases...原创 2018-08-14 16:50:27 · 251 阅读 · 0 评论 -
利用JavaScript实现蛇形矩阵
利用JavaScript实现蛇形矩阵输入:5输出:[ [1, 2, 3, 4, 5], [16,17,18,19,6], [15,24,25,20,7], [14,23,22,21,8], [13,12,11,10,9] ]之前面试遇到这道题了,当时没有编出来,然后一直没时间尝试,今...原创 2018-08-10 16:04:53 · 1767 阅读 · 1 评论 -
数据结构与算法JavaScript描述——队列 5.6 练习
队列一种先进先出的数据结构。主要操作:向队列中插入新元素和删除队列中的元素// 队列function queue(){ this.database = []; this.enqueue = function(ele){ this.database.push(ele); }; this.dequeue = function(){ this.database.shift...原创 2018-08-10 12:28:48 · 228 阅读 · 0 评论 -
数据结构与算法JavaScript描述——栈 4.4 练习
栈栈栈:一种先入后出的数据结构栈的操作push()方法 入栈 pop()方法 出栈,可以访问栈顶元素,但同时栈顶元素彻底被删除。 peek()方法 只返回栈顶元素,而不会删除它。 clear()方法 清除栈内所有元素 length()方法 记录栈内元素的个数 empty属性,用于表示栈内是否含有元素function stack(){ this...原创 2018-08-09 22:08:01 · 753 阅读 · 0 评论 -
数据结构与算法JavaScript描述—— 列表 3.5 练习
function List(){ this.listSize = 0; this.database = []; this.pos = 0; this.length = function(){ return this.listSize; } this.append = function(ele){ this.database[this.listSize++] = ele; ...原创 2018-08-09 20:29:44 · 390 阅读 · 0 评论 -
数据结构与算法JavaScript描述——字典 7.4 练习
字典字典:是一种以键值对的形式存储数据的数据结构// 字典:是一种以键值对的形式存储数据的数据结构{ function Dictionary(){ this.database = new Array(); this.find = function(key){ return this.database[key]; }; this.add = function(k...原创 2018-08-13 11:35:44 · 260 阅读 · 0 评论 -
数据结构与算法JavaScript描述——树
树:一种非线性的数据结构,以分层的方式存储数据。被用来存储具有层级关系的数据。树的遍历:以某种特定顺序访问树中所有的节点。树的深度:数的层数二叉树:一种特殊的树,它的子节点个数不超过两个。二叉查找树:一种特殊的二叉树,相对较小的值保存在左节点中,较大的值保存在右节点中。这一特性使得查找的效率变高。遍历二叉查找树方式先序 先访问根节点,然后以同样的方式访问左子树和右子...原创 2018-08-13 17:18:35 · 268 阅读 · 1 评论 -
使用html5与js实现音乐播放器
实现效果如下:1、HTML代码<div id="music"> <div id="container"> <h3 id="musicName">一月,银装轻舞-紫竹笛韵</h3> <img src="image/一月,银装轻舞-紫竹笛韵.jpg" id="musicImg原创 2018-08-22 22:34:04 · 25153 阅读 · 9 评论 -
js取整方法
1. math.ceil 向上取整math.ceil(2.45) => 3,math.ceil(2.75) => 32. math.round 四舍五入math.ceil(2.45) => 2,math.ceil(2.75) => 33.math.floor 向下取整math.ceil(2.45) => 2,math.ceil(2.75) =...原创 2019-09-24 10:20:02 · 2126 阅读 · 0 评论 -
JS——判断一个Object对象是否为空 && 判断是否为空对象、空数组
1、判断一个Object对象是否为空?常见方法 for...in 遍历属性let isEmpty = (obj)=>{ for(let i in obj){ return false; } return true;}JSON的stringify()方法let isEmpty = (obj)=>{ if(JSON.stri...原创 2019-08-22 17:33:10 · 1562 阅读 · 0 评论 -
页面吸底效果
1. bottomBar组件设置一直吸底(显示在屏幕底部)。特别注意,对于iPhone X需要在底部加长距离。1)设置吸底,使用position: fixed; 固定于页面底部,但页面划到底部,页面部分内容会被固定定位组件遮挡。解决方式:① 划动页面高度设置长一点② 页面高度不定,可以在页面最底部加一个空的div撑开页面的高度。2)判断是否为iPhone X,底部加长距离加判断...原创 2019-08-22 17:29:00 · 4317 阅读 · 0 评论 -
JavaScript精简代码集合
源自:https://juejin.im/post/5cc55eb5e51d456e577f93f0日历创建过去七天的数组,如果将代码中的减号换成加号,你将得到未来7天的数组集合//创建过去七天的数组[...Array(7).keys()].map(days=>newDate(Date.now()-86400000*days));生成随机ID在原型...转载 2019-05-15 10:41:11 · 170 阅读 · 0 评论 -
Javascript toString()用法
在看微信推文有关总结的JavaScript精简代码的时候,阅读到:在原型设计时常用到创建ID功能(实际项目中也会有人用到,但并不安全)。// 生成长度为11的随机字母数字字符串Math.random().toString(36).substring(2);// hg7znok52x这里有用到JavaScript中的toString()方法,大概猜到是什么用法,但是不记得有看到...转载 2019-05-15 10:31:48 · 1058 阅读 · 1 评论 -
web基础知识梳理(思维导图)
最近种草了思维导图,发现这个东西好好用,然后刚好在准备秋招,花了两天时间梳理了一下基础知识,做了这个思维导图,内容可能还不够完善,后期会继续改进~~加油!!原文件链接:web基础知识梳理 web基础知识梳理思维导图原文件 ...原创 2018-08-25 21:07:28 · 7238 阅读 · 6 评论 -
【freeCodeCamp】 Intermediate Algorithm Scripting
1. Sum All Numbers in a Range我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。最小的数字并非总在最前面。function sumAll(arr) { var sum = 0; arr.sort(function(a,b){ return a-b; }); for(var i=arr[0];i<=arr[...原创 2018-09-01 12:13:47 · 214 阅读 · 0 评论 -
跨域:JSONP与CORS
一、跨域跨域问题一般只出现在前端开发中使用 javascript 进行网络请求的时候,浏览器为了安全访问网络请求的数据而进行的限制。为什么会产生跨域?同源策略:协议、域名、端口三者相同,有一个不相同就是不同源同源限制了哪些行为?Cookie、Localstorage和IndexDB无法读取 DOM和JS对象无法获取 Ajax请求发送不出去解决JS跨域问题的方法有8种:...原创 2018-08-23 17:04:31 · 416 阅读 · 0 评论 -
数据结构与算法JavaScript描述—— 数组 2.9 练习
// 1、创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个显示学生平均成绩的方法。{ function Student(){ this.score = []; this.add = add; this.average = average; } function add(n){ this.score.push(n); } function average()...原创 2018-08-09 16:47:07 · 462 阅读 · 0 评论 -
【LeetCode】JavaScript实现杨辉三角
杨辉三角I在杨辉三角中,每个数是它左上方和右上方的数的和示例:输入:5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]var generate = function(numRows) { var arr = new...原创 2018-08-09 13:46:18 · 420 阅读 · 0 评论 -
【js】ReferenceError和TypeError的区别
ReferenceError:引用错误,即在作用域中没有找到该变量console.log(a); // ReferenceErrorTypeError:类型错误,在作用域中已经声明变量并且找到,但是没有找到确切定义或者引用foo(); //TypeError!var foo = function bar() { // ...};当在作用域中找到了这个变量引用,然后你让这个变量去做...原创 2018-07-06 11:15:26 · 1802 阅读 · 0 评论 -
网上看到的“12个非常有用的JavaScript技巧”
1) 使用!!将变量转换成布尔类型有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将它们的值视为true。对于做这样的检查,你可以使用!!(双重否定运算符),它能自动将任何类型的数据转换为布尔值,只有这些变量才会返回false:0,null,"",undefined或NaN,其他的都返回true。我们来看看这个简单的例子:function Account(cash) { ...转载 2018-05-17 21:49:15 · 170 阅读 · 0 评论 -
javascript中call、apply、bind方法的使用
javascript中call、apply、bind方法的使用context的概念在知道我们为什么要使用call、apply、bind方法之前,我觉得有必要先了解一下context的相关概念,通常context的作用是取决于函数将如何被调用,当函数作为对象的方法调用时,this就会被设置为调用方法的对象:var object = { foo: function(){ ...转载 2018-05-10 11:45:58 · 137 阅读 · 0 评论 -
什么是Ajax
一开始接触到Ajax,只是大概知道它是客户端与服务端之间在不刷新网页的情况下进行数据交换,但对于他具体是什么,在客户端与服务端怎么进行数据交换确不清楚,下面通过查阅文档资料进行深一步的了解。一、什么是AjaxAjax,全称Asynchronous JavaScript and XML ,也就是异步加载的javascript 和 XML(通俗的讲:利用javascript在保证页面不被完全刷新、链接...原创 2018-05-10 11:32:12 · 256 阅读 · 0 评论 -
freeCodeCamp - JS - Check for Palindromes
题目表述:检查回文字符串如果给定的字符串是回文,返回true,反之,返回false。如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。函数参数的值可以为"racecar","RaceCar"和"race CAR"。代码:function pali...原创 2018-05-03 12:45:31 · 149 阅读 · 0 评论 -
freeCodeCamp - JS - Create a JavaScript Slot Machine
题目描述:现在把我们之前的所学的知识点结合起来完成一个老虎机游戏。这次我们生成3个随机数,范围在1到3之间。分别用 slotOne、slotTwo、slotThree来存储着3个随机数。用我们之前的所学来生成随机数):Math.floor(Math.random() * (3 - 1 + 1)) + 1;代码:<script> function runSlots() { v...原创 2018-05-03 09:47:59 · 619 阅读 · 0 评论 -
freeCodeCamp - JS - Profile Lookup
题目说明:我们有一个对象数组,里面存储着通讯录。函数 lookUp 有两个预定义参数:firstName值和prop属性 。函数将会检查通讯录中是否存在一个与传入的 firstName 相同的联系人。如果存在,那么还需要检查对应的联系人中是否存在 prop属性。如果它们都存在,函数返回prop属性对应的值。如果firstName 值不存在,返回 "No such contact"。如果prop 属...原创 2018-05-03 09:32:10 · 299 阅读 · 0 评论 -
JS数组方法
JS中的数组方法——原型方法原数组发生改变:push()、pop()、unshift()、shift()、split()、copyWithin()、reverse()、sort()、fill()原数组不发生改变:concat()、slice()、indexOf()、lastIndexOf()、join()、includes()、toString()、toLocalString()原数组是否发生改变...原创 2018-04-24 16:51:57 · 128 阅读 · 0 评论 -
ECMAScript 6 简明教程
原文:ECMAScript 6 简明教程ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中绝大多数的特性。1. let、const 和 block 作用域let 允许创建块级作用域,ES6 推荐在函数中使用 let 定义变量,而非 var:var a...转载 2018-04-24 16:05:21 · 145 阅读 · 0 评论 -
浅谈js的内存与闭包
原文:浅谈js的内存与闭包0.前言主要结合了内存的概念讲了js的一些的很简单、但是又不小心就犯错的地方。结论:js执行顺序,先定义,后执行,从上到下,就近原则。闭包可以让外部访问某函数内部变量,而且会导致内存泄漏。1.先说类型在ECMAscript数据类型有基本类型和引用类型,基本类型有Undefined、Null、Boolean、Number、String,引用类型有Object,所有的的值将会...转载 2018-04-23 15:23:56 · 1452 阅读 · 2 评论 -
Ajax工作原理
Ajax工作原理1、ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth、google suggest以及gmail等对ajax技术的广泛应用,催生了ajax的流行。而这也让微软感到无比的尴尬,因为早在97年,微软便已经发明了ajax中的关键技术,并且在99年IE5推出之时,它便开始支持XmlHttpRequest对象,并且微软之...转载 2018-04-03 10:47:21 · 363 阅读 · 0 评论 -
15个常用的javaScript正则表达式
摘要收集整理了15个常用的javaScript正则表达式,其中包括用户名、密码强度、整数、数字、电子邮件地址(Email)、手机号码、身份证号、URL地址、 IPv4地址、 十六进制颜色、 日期、 QQ号码、 微信号、车牌号、中文正则。表单验证处理必备,赶紧收藏吧!用户名正则//用户名正则,4到16位(字母,数字,下划线,减号)var uPattern = /^[a-zA-Z0-9_-]{4,16...转载 2018-05-18 22:21:11 · 109 阅读 · 0 评论 -
正则表达式中各种字符的含义
正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个...转载 2018-05-18 22:22:01 · 329 阅读 · 0 评论 -
JS错题整理
1、以下代码的输出是什么?var a={}, b={key:'b'}, c={key:'c'};a[b]=123; // a = {[object Object]: 123}a[c]=456; // a = {[object Object]: 456}console.log(a[b]);a[b] == a[c];输出结果:456,true解析:设置对象属性时,JavaS...原创 2018-07-04 12:33:24 · 344 阅读 · 0 评论 -
有关原型与原型链的面试题目
//有关原型与原型链的面试题目{ function Fn(){ this.x = 100; this.y = 200; this.getX = function () { console.log(this.x); } } Fn.prototype.getX = function () { console.log(this.x); }; Fn.prototype...原创 2018-07-03 21:46:22 · 3540 阅读 · 0 评论