
神奇的javascript
文章平均质量分 51
奔跑的前端er
这个作者很懒,什么都没留下…
展开
-
javascript中零散的知识点
类型ECMAScript语言类型包括Undefined、Null、Boolean、String、Number、Objectjavascript有七种内置类型: 空值(null)、未定义(undefined)、布尔值(boolean)、数字(number)、字符串(string)、对象(object)、符号(symbol),除对象外,其他统称“基本类型”。我们可以通过typeof运算符来查看值的类型原创 2017-08-07 19:36:28 · 256 阅读 · 0 评论 -
javascript深复制
function clone(obj){ var o; switch(typeof obj){ case 'undefined':break; case 'string':o=obj+'';break; case 'number':o=obj-0;break; case 'boolean':o=obj;break; case 'object':原创 2017-09-23 11:08:48 · 289 阅读 · 0 评论 -
Javascript中的new做了什么?
(1) 创建一个新对象; (2) 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象) ; (3) 执行构造函数中的代码(为这个新对象添加属性) ; (4) 返回新对象。var a=new A(); 1.构造函数拥有一个叫prototype的属性,这里即A.prototype,这个对象默认有一个属性constructor,他的值是这个构造函数A。2.javascript先创建一原创 2017-09-24 19:57:28 · 2212 阅读 · 0 评论 -
有趣的javascript API
如果想让自己的页面不停的刷新,可以添加一个script<script> setTimeout("self.location.reload()",1000);</script>原创 2017-08-27 12:27:16 · 396 阅读 · 0 评论 -
Javascript设计模式与开发实践(关于this/call/apply)
Javascript应用,设计模式,apply,call,bind,this的使用,高阶函数的使用原创 2017-09-17 16:31:21 · 388 阅读 · 0 评论 -
鼠标拖拽功能实现
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>JS拖拽</title> <style> *{padding: 0; margin: 0; } .box{width: 100px;height: 100px;background: blue;position: absolu原创 2017-10-15 18:54:35 · 746 阅读 · 0 评论 -
map和foreach遍历的区别
1、map速度比foreach快2、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,3、map因为返回数组所以可以链式操作,foreach不能。var ary = [12,23,24,42,1];var res = ary.forEach(function (item,index,input) { input[index] = item*10;})conso原创 2017-10-15 20:32:25 · 2529 阅读 · 1 评论 -
用promise封装ajax操作的例子
var getJSON=function (url) { var promise=new Promise(function (resolve,reject) { var client=new XMLHttpRequest(); client.open("GET",url); client.onreadystatechange=handler;原创 2017-10-16 14:57:40 · 937 阅读 · 0 评论 -
算法题小try
const mkList = n => n <= 2 ? [0, 1].slice(0, n) : mkList(n - 1).concat(2 * n - 3);const isPrim = n => Array.from({ length: n }).filter((_, i) => !(n % i)).length <= 2;const ...原创 2018-09-06 10:12:50 · 338 阅读 · 0 评论 -
JS动画实现
实现动画的方案主要有6种:Javascript直接实现动画,可伸缩矢量图形(SVG)动画,CSS transition,CSS3 animation、Canvas动画、requestAnimationFrame。javascript实现<!DOCTYPE html><html><head> <style> .content{width: 100px;height: 100原创 2017-09-22 21:50:27 · 352 阅读 · 0 评论 -
javascript中的this词法
this的绑定规则this是在运行时进行绑定的,它的上下文取决于函数调用时的各种条件。this的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。当一个函数被调用时,会创建一个活动记录(执行上下文),这个记录会包含函数在哪里被调用(调用栈)、函数的调用方法、传入的参数等信息。this就是记录其中的一个属性,会在函数执行的过程中用到。绑定规则1. 默认绑定 最常用的函数原创 2017-08-07 18:58:06 · 356 阅读 · 0 评论 -
javascript中的异步和单线程
异步:异步和同步的最大区别在于有没有阻塞程序运行何时需要异步 需要等待情况 等待过程不能像alert一样前端异步使用场景 - 定时任务:setTimeout、setInterval - 网络请求:ajax请求、动态加载 - 事件绑定ajax请求代码示例console.log('start')$.get('./data1.json',function(data1){原创 2017-08-08 19:52:30 · 289 阅读 · 0 评论 -
this词法
ES6中this的使用简介:var obj={ id:"awesome", cool:function coolFn() { console.log(this.id); }};var id="not awesome";obj.cool();setTimeout(obj.cool, 100);直接访问obj.cool会访问对象的方法,而调用setTimeout之后cool(原创 2017-08-07 16:49:33 · 263 阅读 · 0 评论 -
你不知道的JS---作用域和闭包
立即执行函数表达式var a=2;(function foo() { var a=3; console.log(a);})();console.log(a);函数被包含在一个括号内部,因此成为了一个表达式,通过末尾加上另外一个括号可以立即执行这个函数。闭包的定义当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行。原创 2017-08-07 16:13:18 · 283 阅读 · 0 评论 -
javascript设计模式-(发布-订阅模式)
var salesOffices={};//定义售楼处salesOffices.clientList=[];//缓存列表,存放订阅者的回调函数salesOffices.listen=function (fn) {//增加订阅者 this.clientList.push(fn);//订阅的消息添加进缓存列表};salesOffices.trigger=function(){//发布消息原创 2017-08-09 19:09:17 · 319 阅读 · 0 评论 -
Ajax实现原理详解
Ajax与传统web应用的不同 传统的javascript编程中,若想得到服务器端数据或文件上的信息,或者发送客户端信息到服务器, 需要建立一个html 的form,然后GET或者POST数据到服务器端,用户需要单击submit按钮来发送或者接受数据信息,然后等待服务器响应请求,页面重新加载。因为服务器每次都会返回一个新的页面,所以传统的web应用可能很慢,而且交互不太好。实用ajax技术,就可以原创 2017-08-09 09:10:44 · 267 阅读 · 0 评论 -
几种跨域方式总结
同源策略(SOP) 只有双方在协议、主机和端口号都完全匹配的情况下,才可以被授权访问。JSONP1、通过脚本元素加载JSON(HTML脚本元素是可以规避SOP检查的),返回JSON对象,然后供页面使用。 2、通过回调函数替代全局变量的方式来传递JSON对象。需要在加载<script type="text/javascript"> window.callback=function (dat原创 2017-08-08 23:32:32 · 464 阅读 · 0 评论 -
javascript面试考点
typeof运算符typeof:function、object、string、boolean、undefined、number。 typeof只能区分值类型的类型,引用类型只能区分出函数来,其余对象,数组类型全部为object。在javascript中函数的地位非常高。变量计算==运算符会试图进行类型转换 if语句会将后面的语句类型转换 逻辑运算&&、||:10&&0—>0,”||’abc原创 2017-08-07 20:02:14 · 603 阅读 · 0 评论 -
理解DOM事件流的三个阶段
当点击一个按钮,事实上你还同时点击了按钮所有的父元素。事件流所描述的就是从页面中接受事件的顺序。因为有两种观点,所以事件流也有两种,分别是事件冒泡和事件捕获。现行的主流是事件冒泡。事件冒泡事件冒泡即事件开始时,由最具体的元素接收(也就是事件发生所在的节点),然后逐级传播到较为不具体的节点。简述事件冒泡流程DOM树形结构事件冒泡阻止冒泡冒泡的应用<!DOCTYPE html><html原创 2017-08-08 17:26:37 · 1342 阅读 · 0 评论 -
javascript中的原型(链)和继承
写一个原型链继承的例子封装一个DOM查询function Elem(id){ this.elem=document.getElementById(id)}Elem.prototype.html=function(val){ var elem=this.elem if(val){ elem.innerHTML=val return this原创 2017-08-08 19:31:21 · 410 阅读 · 0 评论 -
设计模式
单例子模式 var singleton = function(fn) { var result; return function() { return result || (result = fn.apply(this, arguments)); };};var createMask = singleton(function() { return document...原创 2018-09-06 17:02:25 · 272 阅读 · 0 评论