JavaScript
qq_34481114
这个作者很懒,什么都没留下…
展开
-
JS单线程问题
这个系列的文章名为“JavaScript 进阶”,内容涉及JS中容易忽略但是很有用的,偏JS底层的,以及复杂项目中的JS的实践。主要来源于我几年的开发过程中遇到的问题。小弟第一次写博客,写的不好的地方请诸位斧正,觉得还有一些阅读价值的请帮忙分享下。这个“JavaScript 进阶”是一个系列文章,请大家鼓励鼓励,我尽快更新。另外,如果你有比较好的话题,也可以在下面评论,我们一起研究提高。J转载 2017-03-21 00:19:45 · 438 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
构造函数,对象,原型的理解1.构造函数是实例化对象进行初始化的一个函数,构造函数创建出来的那一刻原型也被创建出来了并且是个Object{};2.构造函数中有prototype指向的就是这个Object{} 3.原型中所有的属性与方法都会被实例化new出来的对象所继承并且有个内置属性指向proto指向原型,所以才能使用原型中的方法啊 function Person() {原创 2017-04-17 22:37:17 · 172 阅读 · 0 评论 -
jquery 隐式迭代
Jquery对象本质可以看成是一个包含一个 dom数组和所有Jquery方法的容器(补充:方法在所有jq对象共享的jq原型属性prototype中)。要使用jQuery,就必须将dom元素转成 Jquery对象,然后才能调用JQ对象的 便捷方法。1 //所有 div 内部设置一个 span 标签2 var $divs = $("div");3 $divs.html(转载 2017-04-14 15:25:17 · 325 阅读 · 0 评论 -
JS原生事件中this的指向
原生的 DOM.onclick =function(){console.log(this) ; //this指向调用这个函数的DOM对象}DOM.addeventListener(''click'',function(){console.log(this) ; //this也指向DOM对象,那是因为JS底层帮回调函数中的this的指向进进行了改变...})原创 2017-04-30 11:27:35 · 426 阅读 · 0 评论 -
文章标题
闭包1.什么是闭包? JS中闭包就是函数“—–>原理就是作用域,上级的作用域不能访问下级的作用域.. 2.闭包要解决什么问题? 上级的作用域能间接访问下级的作用域.function f1(){ var n=999; nAdd=function(){n+=1} function f2(){ alert(n); } return f2; }原创 2017-04-19 17:48:18 · 202 阅读 · 0 评论 -
setTimeout闭包问题
for (var i = 0; i < 5; i++) { setTimeout(function(){ console.log(i); },0) }// 5 5 5 5 5最终打印5个五,为什么不是打印01234,因为JS 是单线程,只有完成所有的script标签中的主要任务,才会把setTimeout里面的匿名函数执行原创 2017-04-19 22:51:04 · 330 阅读 · 0 评论 -
apply(对象,数组) ,call(对象,变量a,变量b)
apply()方法与call()方法都是在函数原型上的一个方法,调用这两个方法可以改变函数的this指向指向为参数中的对象,但是apply()方法经常被用来平铺一个数组中的数据,eg: Math.max.apply(null,arr) ,即可求出数组中的最大值,省去了for循环,遍历数组原创 2017-04-23 20:24:32 · 243 阅读 · 0 评论 -
js 异步实现与编程
同步同步同步是代码从上到下依次执行,上一个任务结束后,才能执行下一个任务。如下图所示,任务1执行完后,再执行任务2,任务2执行完后再执行任务3,依次类推...同步优势同步是任务有序进行,不会造成资源上处理上的混乱。1.任务有序进行较好的处理了任务之间的依赖性,如后一个任务需要前一个任务的结果。2.如果多个任务处理同一个资源,不会造成资转载 2017-05-14 18:42:10 · 246 阅读 · 0 评论 -
JS单线程,同步异步问题
最近看到前端面试问到js中的同步和异步,这个问题该怎么回答?梳理一下,js对于异步的处理,很多人的第一反应是ajax,这只能说是对了一半。 1.个人觉得,js中,最基础的异步是setTimeout和setInterval函数,很常见,但是很少人有人知道其实这就是异步,因为它们可以控制js的执行顺序var timeoutID = window.setTimeout(fun转载 2017-05-06 10:24:17 · 444 阅读 · 0 评论 -
canvas 尺寸问题
canvas id="can" width="500" height="500">这里的width 是实际的width 与 style里面渲染的不一样..原创 2017-04-24 17:02:51 · 352 阅读 · 0 评论 -
js中toString 和 object.toString区别解释
1.toString 和 object.toString运行结果演示 [javascript] view plain copy var str = 'this is string'; alert(str.toString()); 运行结果:[javascript] v转载 2017-04-26 12:07:46 · 3857 阅读 · 0 评论 -
document.onreadystatechange的认识
在开发的过程中,经常使用window.onload和body onload两种,很少使用document.onreadystatechange,但这次写了一个js,使用window.onload和body.onload都实现不了,最后使用document.onreadystatechange才把它解决了。这里介绍一下三者的区别和用法,大家使用的时候根据自己的需要选择哪一个1、win转载 2017-04-27 10:42:03 · 379 阅读 · 0 评论 -
引号的内容会被当成字符串
for(var i=0;i imgArr[i].onclick = function () { var b= this.src; console.log(b); body.style.backgroundImage="url("+this.src+")";原创 2017-03-17 00:03:35 · 356 阅读 · 0 评论 -
JS 中this 所指向的对象
var box=document.getElementById("box"); box.onclick = fn1; function fn1() { console.log(this); fn2(); } function fn2() { console.log(this); }第一个this 指向的原创 2017-03-26 22:42:19 · 244 阅读 · 0 评论 -
JS数组一些方法
今天写了一个原生JS旋转木马轮播图.用到了数组的相关方法.说明自己有点遗忘了,特此写一遍加强记忆push()pop()unshift()shift()reverse()这五个方法都是直接在原数组上增加,删除元素.反转数组,改变原数组而 slice(index1,index2)这个方法从复制1到2元素(不包括2),返回一个新数组.原数组不会变化.原创 2017-03-26 01:13:39 · 155 阅读 · 0 评论 -
url、href、src详解
URL(Uniform Resource Locator)统一资源定位符,表示从互联网上得到的资源的位置和访问方法,是互联网上标准资源的地址。互联网上每一个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。分类1、绝对URL(absolute URL)显示文件的完整路径,这意味着绝对URL本身所在的位置与被引用的实际文件的位置转载 2017-04-07 09:14:25 · 216 阅读 · 0 评论 -
JS原生轮播图代码
布局一个这样的轮播图难点在于图4与图1怎么实现无缝轮播,巧妙的是把图1插入图4后面 12341...代码如下html>html lang="en">head> meta charset="UTF-8"> title>Titletitle> style> *{ margin:0; padding:原创 2017-03-22 00:49:53 · 362 阅读 · 0 评论 -
js中的事件委托或是事件代理详解
起因:1、这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的;2、其实我一直都没弄明白,写这个一是为了备忘,二是给其他的知其然不知其所以然的小伙伴们以参考;概述:那什么叫事件委托呢?它还有一个名字叫事件代理,JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。那这是什么意思呢?网上的各位大牛们转载 2017-03-29 02:03:41 · 657 阅读 · 0 评论 -
jQuery.extend(object) 与 jQuery.fn.extend(object)的区别
原文链接:http://caibaojian.com/jquery-extend-and-jquery-fn-extend.htmlQuery.extend(object)为jQuery类添加类方法,可以理解为添加静态方法。如:·//code from http://caibaojian.com/jquery-extend-and-jquery-fn-extend.htmljQuer转载 2017-04-08 11:28:47 · 430 阅读 · 0 评论 -
JS Array.filter()方法
今天学习了Array的filter方法,MDN上解释的是filter()方法中行参是一个回调函数.这个回调函数就是一个规则,返回一个布尔值.filter()方法会对数组中每一个元素使用这个回调函数.注意,这里说的是每一个元素.并且将返回值为true的元素装入一个新数组返回.代码如下: var arr = ["关羽","woi","赵子龙","马zi超","黄忠"]; var arr1原创 2017-03-13 16:42:23 · 15874 阅读 · 0 评论 -
关于script jsonp跨域请求数据
Documentfunction fun() { console.log("hi");}var fun1<?php echo $_GET['callback']."()"; ?>因为在同一个html中的js ajax异步请求数据只能同域请求,而如果在html 中引用不同域的数据请求时,我们就需要使用html标签中src这个属性了,这个属性可以请求任意外部的原创 2017-04-09 12:30:30 · 193 阅读 · 0 评论 -
利用filter()去除数组中的重复元素,利用filter()筛选出数组中的素数
filter()是数组的一个常用操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素值。回调函转载 2017-03-31 02:23:48 · 3875 阅读 · 0 评论 -
JS一些兼容性 写法
由于浏览器的不断升级更新.,会导致旧的版本不支持一些方法,所以当新的代码用到一些方法时,旧的版本的浏览器不能识别导致程序报错,所以在写代码时需要考虑浏览器的兼容性写法.下面就是一些常用的浏览器兼容性写法. 获取节点下一个兄弟节点 父节点.nextSibling ||父节点.nextElementSibling上一个兄弟节点父节点.previousSibing ||原创 2017-03-22 23:19:42 · 305 阅读 · 0 评论 -
同名函数加载及定时器清除问题
Title .father{ padding:0; margin:0px; position: relative; } .box{ width: 50px; height: 50px; backgr原创 2017-03-25 12:11:57 · 428 阅读 · 0 评论 -
Sublime text 2/3 中 Package Control 的安装与使用方法
Package Control 插件是一个方便 Sublime text 管理插件的插件,但因为 Sublime Text 3 更新了 Python 的函数,API不同了,导致基于 Python 开发的插件很多都不能工作,Package Control 原来的安装方法都失效了。网上有2种使用 Git 的安装方法,感觉太麻烦了。此处将 wbond 网站的 ST3 Package Cont转载 2017-04-10 23:55:24 · 149 阅读 · 0 评论 -
DOM 节点
Title你好啊 var ele =document.getElementById("box"); var att =ele.getAttributeNode("id"); var text = ele.firstChild; console.log(ele); console.log(att); console.log(text);原创 2017-03-16 12:37:42 · 167 阅读 · 0 评论 -
JS 事件委托
给所有btn绑定事件,可是当动态生成btn时的标签没有绑定事件,这个时候就要用到事件委托了...原生js里面var container = document.getElementById("container");container.addEventListener("click", function(e){ //获取事件触发对象 var target = e.target;原创 2017-07-07 15:21:29 · 339 阅读 · 0 评论