JavaScript
blinkbean
不知名CRUD选手。
展开
-
Promise 初探
Promise是什么 将异步操作队列化的一系列计算,使其能按照期望的顺序执行。异步操作常见语法 事件侦听与响应 docement.getElementById('start').addEventListener('click',start,false);function start(){ //响应的操作}//JQuery 用'.on()' 侦听$...转载 2018-06-20 12:43:15 · 220 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——队列
数据结构与算法的JavaScript描述——队列说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。1、数组实现队列function Queue(){ this.dataStore=[]; this.enqueue=enqueue; this.dequeue=dequeue; this.front=front; this...原创 2018-04-04 15:38:11 · 204 阅读 · 0 评论 -
## 数据结构与算法的JavaScript描述——栈
数据结构与算法的JavaScript描述——栈说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。1、栈的实现function Stack(){ this.dataStore=[]; this.top=0;//栈顶 this.push=push; this.pop=pop; this.peek=peek; t...原创 2018-04-04 15:12:55 · 172 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——列表
数据结构与算法的JavaScript描述——列表说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。1、实现列表类function List(){ this.listSize=0; this.pos=0; this.dataStore=[];//初始化一个空数组来保存列表元素 this.clear=clear; th...原创 2018-04-04 10:55:39 · 211 阅读 · 0 评论 -
浏览器同源和Ajax
感谢:阮一峰的网络日志,博客园同源(same-origin policy)是什么? 协议相同 域名相同 端口相同 限制范围 Cookie,LocalStorage,IndexDB无法读取。 DOM无法获得。 AJAX请求不能发送。 跨域解决方案1、 通过jsonp跨域2、 document.domain + ifr...原创 2018-04-16 19:28:48 · 248 阅读 · 0 评论 -
ES6入门——WeakSet
来自阮一峰ECMAScript6入门学习笔记含义 WeakSet 结构与Set类似,也是不重复的值的集合。但是WeakSet的成员只能是对象,而不能是其他类型的值。 WeakSet中的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说,如果其他对象都不再引用该对象,那么垃圾回收机制会自动回收该对象所占的内存,不考虑对象还存在与WeakSet之中。 ...原创 2018-04-15 16:12:21 · 263 阅读 · 0 评论 -
数据结构与算法的JavaScript描述(未)——动态规划
数据结构与算法的JavaScript描述——动态规划说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。动态规划是什么?动态规划有时被认为是一种与递归相反的技术。递归是从顶部开始将问题分解,通过解决掉所有分解出小问题的方式来解决整个问题。动态规划解决方案从底部开始解决问题,将所有小问题解决掉,然后合并成一个整体解决方案,从而解决整个大问题。动态...原创 2018-04-07 16:10:20 · 166 阅读 · 0 评论 -
JavaScript——闭包
什么是闭包闭包是函数和声明该函数的词法环境的组合。词法作用域中使用的域,是变量在代码中声明的位置所决定的。闭包是即使被外部函数返回,任然可以访问到外部(封闭)函数作用域的函数。 为什么使用闭包利用闭包实现数据私有化或模拟私有方法。这个方式也称为模块模式(module pattern)。部分参数函数柯里化(柯里化(Currying)是把接受多个参数的函数变换成接受一...转载 2018-03-16 12:11:21 · 151 阅读 · 0 评论 -
JavaScript——原型继承的工作原理
所有的JS对象都有一个prototype属性,指向它的原型对象。当试图访问一个对象的属性时,如果没有在该对象上找到它,它还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。这种行为是在模拟经典的继承,但与其说是继承,不如说是委托。...转载 2018-03-16 11:45:14 · 364 阅读 · 1 评论 -
数据结构与算法的JavaScript描述——链表
数据结构与算法的JavaScript描述——链表说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。 JavaScript中的数组的主要问题:它们被实现成了对象,与其他语言相比,效率很低。 当数组在实际使用过程中很慢时,可以考虑用链表来替代它。除了对数据的随机访问,链表几乎可以在任何可以使用一维数组的情况中。如果需要随机访问,数组仍然是更好的选择。...原创 2018-04-04 17:40:29 · 256 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——字典
数据结构与算法的JavaScript描述——字典说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。Dictionary类的基础是Array类,而不是Object类(JavaScript中一切皆对象,数组也是对象)。希望对字典里的键排序,而JavaScript中是不能对对象进行排序的。1、初始化Dictionary类function Diction...原创 2018-04-04 18:03:06 · 240 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——检索算法
数据结构与算法的JavaScript描述——检索算法说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。1、使用自组织数据 知识点:对于未排序的数据集来说,当被查找的数据位于数据集的起始位置时,查找是最快,最成功的。 通过将频繁查找的元素置于数据集的起始位置,来最小化查找次数。 2-8原则:(帕累托分布)指对某一数据执行的80%的查找操作都是对...原创 2018-04-07 12:18:02 · 220 阅读 · 0 评论 -
数据结构与算法的JavaScript描述(待)——排序算法(3)
数据结构与算法的JavaScript描述——高级排序算法(3)说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。希尔排序 希尔排序的核心理念与插入排序不同,他会首先比较距离较远的元素,而非相邻的元素。和简单的比较相邻元素相比,使用这种方案可以使离正确位置很远的元素更快的回到合适的位置。当开始用这个算法遍历数据集时,所有元素之间的距离会不断减少,...原创 2018-04-06 22:36:36 · 205 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——排序算法(2)
数据结构与算法的JavaScript描述——排序算法(1)说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。基本排序算法1、冒泡排序function bubbleSort(){ var numEle=this.dataStore.length; var temp; for(var outer=numEle;outer&...原创 2018-04-06 21:58:55 · 205 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——排序算法(1)
数据结构与算法的JavaScript描述——排序算法(1)说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。1、数组测试平台function CArray(numEle){ this.dataStore=[]; this.numEle=numEle; for(var i=0;i<numEle;i++){ ...原创 2018-04-06 21:05:02 · 166 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——图和图算法
数据结构与算法的JavaScript描述——图和图算法说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记1、构建图function Graph(v){ this.vertices=v; this.edges=0; this.adj=[]; for(var i=0;i<this.vertices;i++){ ...原创 2018-04-06 20:39:35 · 447 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——二叉树和二叉查找树
数据结构与算法的JavaScript描述——二叉树和二叉查找树说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。1、为什么要用二叉树? 二叉树查找、删除、添加非常快。 2、实现二叉树function Node(data, left, right){ this.data=data; this.left=left; ...原创 2018-04-06 17:26:28 · 261 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——集合
数据结构与算法的JavaScript描述——集合说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。1、集合的特性 集合成员是无序的。 集合中不允许相同的成员存在。 2、Set类的实现function Set(){ this.dataStore=[]; this.add=add; ...原创 2018-04-06 15:36:23 · 206 阅读 · 0 评论 -
数据结构与算法的JavaScript描述——散列(HashTable)
数据结构与算法的JavaScript描述——散列(HashTable)说明:以下部分均为《数据结构与算法的JavaScript描述》学习内容及笔记。 * 在散列表上插入、删除和取用数据都非常快,但是对于查找却效率低下,比如查找一组数组中的最大值和最小值。 * 对数组大小常见的限制是:数组长度应该是一个质数(如果键是随机的整数,则散列函数应该更均匀地分布):除留余数法。1、构造HashT...原创 2018-04-04 20:48:08 · 203 阅读 · 0 评论 -
JavaScript中的this
在调用函数时使用的new关键字,函数内的this就是一个全新的对象。如果apply,call或bind方法用于调用创建一个函数,函数内的this就是作为参数传入这些方法的对象。当函数作为对象里的方法被调用时,函数内的this就是调用该函数的对象。比如当obj.method()被调用时,函数内的this将绑定到obj对象。如果调用函数不符合上述规则,那么this的值指向全局对象。浏览器环境下...转载 2018-03-16 11:39:53 · 88 阅读 · 1 评论 -
JavaScript——位置操作(location)
属性及说明每次更改location的属性(hash除外),页面都会以新URL重新加载。 hash 返回URL中的hash(#号后跟零或多个字符),如果URL中不包含散列,则返回空字符串。 host 返回服务器名称和端口号(如果有)。 hostname 返回不带端口号的服务器名称。 href 返回加载页面的完整URL。location对象的toS...原创 2018-02-08 12:58:17 · 534 阅读 · 0 评论 -
JavaScript实现——两数之和
题目给定整数的一个数组,找出这样的两个数,他们的加和等于一个特定的目标数字(target)。输入:numbers={2,7,11,15},target=9输出:index=1,index=2解析js中的对象是基于哈希表结构的,而哈希表的查找时间复杂度为O(1)。 在所给数组中查找依次查找与当前值所对应的目标值是否存在,如果存在则记录当前index值。原创 2018-01-30 11:09:12 · 3028 阅读 · 1 评论 -
JavaScript学习——with
with的作用严格模式下不允许使用with语句,否则将视为语法错误。 由于大量使用with语句会导致性能下降,同时也会给调试代码造成困难,因此在开发大型应用程序时,不建议使用with语句。将代码的作用域设置到一个特定的对象中,目的是为了简化多次编写同一个对象的工作。 var qs = location.search.substring(1);var hostName原创 2018-01-21 11:40:02 · 182 阅读 · 0 评论 -
JavaScript比较学习——break、continue和label 语句
break立即退出循环,强制执行循环后面的语句。 var nun = 0; for (var i = 1; i < 10; i++) { if (i % 5 == 0) { continue; } nun++; } alert(nun); //8num++一共执行4次,当i为5时原创 2018-01-21 11:17:02 · 472 阅读 · 0 评论 -
通过网页加载状态事件制作进度条
事件:1、document.onreadystatechance 页面加载状态改变时的事件2、document.readyState 返回当前文档的状态 还未载入:uninitialized 载入中:loading 已加载,文档与用户可以开始交互:interactive 载入完成:complete原创 2017-08-27 16:08:56 · 1314 阅读 · 0 评论 -
JavaScript正则表达式学习笔记
i 执行对大小写不敏感的匹配g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)m 执行多行匹配[abc] 查找方括号之间的任何字符[A-Z] 查找任何A~Z的字符[^abc] 查找任何不在方括号之间的字符[A-z] 查找任何A~z之间的字符[0-9] 查找任何从0~9之间的字符[red|green|blue] 查找任何制定的选项. 查找单个原创 2017-07-17 11:28:11 · 198 阅读 · 0 评论 -
阿里2017前端实习生笔试编程第一题
阿里2017实习生笔试时间一小时,这是两道编程题中的第一题,当时做题时时间不够,虽然知道怎么做,但是提交时的结果完全错误,最终原因还是自己对JavaScript掌握的不熟练,之后又花一小时把基本要求实现了,如下。题目描述:做提的时候删了要求,但是具体要求大概是1、不使用外部库2、将标签内的时间,更改为与给定的时间的差(给定时间维为:2017年4月1日 22:33:44)3、如果相差原创 2017-04-25 22:55:06 · 1828 阅读 · 1 评论 -
javascript读取json遇到跨域问题怎么办?
var Ajax = function () { $.getJSON ("data.json", function (data) { $.each (data, function (i, item) { alert(item.name);原创 2017-04-05 15:57:51 · 2101 阅读 · 0 评论 -
Ajax获取数据时出现XMLHttpRequest cannot load
报错内容:Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.解决方案:一、换火狐浏览器测试二、将测试内容放到本地服务器,如:Tomcat上。我的代码:(同时在同级原创 2017-04-18 11:06:36 · 3515 阅读 · 0 评论 -
Javascrit通过百度地图API获取客户端IP、地址
var _script = document.createElement('script'); _script.type = "text/javascript"; _key = "55UbnVOR7XovezZC4jFvTqNDPAamsuoo";//百度地图可以申请到 _script.src = "http://api.ma原创 2017-04-02 15:24:32 · 2362 阅读 · 0 评论 -
JavaScript函数——理解参数、传递参数
理解参数注意事项:1. 不能把函数命名为eval或arguments;2. 不能把参数命名为eval或arguments;3. 不能出现两个命名参数同名的情况;4. ECMAScript中的所有参数传递的都是值。不能通过引用传递参数。ECMAScript参数与大多数其他语言中的函数的参数有所不同。ECMAScript不介意传递进来多少函数,也不在乎传进来参数是什么数据类型。E原创 2018-01-21 16:28:12 · 665 阅读 · 0 评论 -
JavaScript实现二叉树
Document function BinaryTree() { var Node = function(key) {//节点 this.key = key; this.left = null; this.right = null;原创 2017-10-08 16:01:14 · 328 阅读 · 0 评论 -
JavaScript——递归(改进版)
经典递归 function factorial(num) { if (num 1) { return 1; } else { return num * factorial(num - 1); } }存在的问题原创 2018-01-27 13:59:05 · 176 阅读 · 0 评论 -
JavaScript——间歇调用和超时调用
JavaScript是单线程语言,但是它允许通过设置超时值和间歇时间值来调度代码在特定的时刻执行。超时调用——setTimeOut接受两个参数:要执行的代码(可以传递JavaScript代码的字符串,和eval函数中一样)和以毫秒表示的时间。 //性能损失,不建议使用 setTimeOut("alert('hello world')", 1000); /原创 2018-02-02 16:24:21 · 889 阅读 · 0 评论 -
JavaScript——连续赋值与求值顺序(var a.x=a={n:2})
例题 var a = { n: 1 }; var b = a; a.x = a = { n: 2 }; alert(a.x); //undefined alert(b.x); //[object Object]理解主要就是原创 2018-01-26 11:27:09 · 1060 阅读 · 1 评论 -
JavaScript——RegExp类型
RegExpvar expression = / pattern / flags; 正则表达式的匹配模式支持下列3个标志。 g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。 i :表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。 m:表示多行(multiline)模式,即在原创 2018-01-23 16:27:34 · 277 阅读 · 0 评论 -
JavaScript——Array学习笔记
Array类型创建数组 var arr = new Array(); var arr = new Array(20); var arr = Array(20); var arr = Array("Greg"); var arr = ["red", "blue", "green"]; var原创 2018-01-23 14:42:27 · 240 阅读 · 0 评论 -
JavaScript变量——基本类型值、引用类型值
基本类型值:UndefinedNullBooleanNumberString引用类型值:对象数组函数基本类型值和引用类型值具有以下特点基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中;从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本;引用类型的值是对象,保存在堆内存中;包含引用类型值的变量实际上包含的并不是对象本身,而是一原创 2018-01-22 18:16:16 · 265 阅读 · 0 评论 -
JavaScript类型检测——typeof、instanceof
typeoftypeof 操作符是确定一个变量是字符串、数值、布尔值、对象、还是undefined。 var s = "nick"; var b = true; var i = 22; var u; var n = null; //特别注意 var o = new Object();原创 2018-01-21 22:56:44 · 313 阅读 · 0 评论 -
JavaScript查找文本并突出显示
一件查找网页中的关键字在哪些地方有,或者说类似编辑软件的查找替换功能怎么实现。 highLight .highLight{ background: red; } 输入搜索词: 搜索 //定义点击事件 document.getElementById("search").onclick=function(){ // 获取关键词原创 2017-04-08 23:35:56 · 2925 阅读 · 0 评论