JAVASCRIPT
jerny2017
这个作者很懒,什么都没留下…
展开
-
构造函数,原型,实例对象的关系
function Person(name){ //构造函数 this.name = name;}Person.prototype = { //构造函数的原型对象 constructor: Person, sayName: function(){ alert(this.name); }}var person = new Person('Jack');...原创 2018-05-09 16:21:14 · 107 阅读 · 0 评论 -
(转)缓存
https://www.cnblogs.com/belove8013/p/8134067.html转载 2018-05-25 11:06:46 · 305 阅读 · 0 评论 -
sessionStorage localStorage
webstorage是本地存储,存储在客户端,包括localStorage和sessionStorage。Html5中新增的,window.sessionStorage, 方法有:setItem, getItem, remveItem clearsessionStorage中的一次会话跟 session会话有区别,它的一次会话是指浏览器的一个标签页或一个窗口,关闭浏览器或者新开一个标签...转载 2018-05-25 14:08:38 · 112 阅读 · 0 评论 -
数组及for循环中 常见的细节问题
for(var i = 0 ; i < 10; i++) {...}alert(i); // 10for(var i=0; i<10;i++){ if(i>3){ break; //这里之后不会走i++ }}alert(i); //4 arr.forEach(function(elem, index){})//不能手动终止循环...原创 2018-05-22 14:44:13 · 814 阅读 · 0 评论 -
js 中 获取 数据类型
function getType(n){ return Object.prototype.toString.call(n);}null, undefined, number, boolean, stringobject: Array, Date, Function原创 2018-05-22 15:02:29 · 2124 阅读 · 0 评论 -
hasOwnProperty
obj.hasOwnProperty(attr) 判断是否是原型中的属性,false就是原型中的属性虽然obj.attr存在,有可能是原型对象内的属性function A(){this.name = 'aaa';}A.prototype.age = 20;var a = new A();alert(a.name); //aaaalert(a.age); //20alert(a.hasOwnPro...原创 2018-05-22 15:30:20 · 1067 阅读 · 0 评论 -
关于json对象的key
var a = {};var aa = {};var b = {key: 'b'};var c = {key: 'c',key1: 'd'};var d = new Date();var e = [1,2,3];var f = [3,5,6];a[aa] = 111;a[b] = 222;a[c] = 333;a[d] = 444;a[e] = 555;a[f] = 666...原创 2018-05-22 15:38:41 · 754 阅读 · 0 评论 -
递归算法
递归头, 递归体比如不用循环,创建一个数组,下标和值都是0,1,2,3。。。99function create(arr, num){ var i = 0; return c(i, arr, num);}function c(i, arr, num){ if(i < num) { // 递归头 arr[i] = i; /...原创 2018-05-22 15:59:49 · 147 阅读 · 0 评论 -
NaN, isNaN, Number.isNaN
NaN: 是一个数据类型,属于Number,从这个角度来说,Es6中给出了一个方法Number.isNaN, 只要不是NaN类型的都为false,举几个例子:Number.isNaN(NaN); // trueNumber.isNaN(Number.NaN); // trueNumber.isNaN(0 / 0); // trueNumber.isNaN('NaN');...原创 2018-05-23 11:05:01 · 210 阅读 · 0 评论 -
变量提升
作用域分为全局作用域和局部作用域,全局是window下,局部是函数内部,if for大括号内不是作用域。js代码是先预解析,然后再执行首先检查var function,var初始化为undefined,function是整个函数结构,遇到重名的会覆盖,但是function优先级比较高,同名的var和function,无论先后顺序,都将保留function之后开始执行代码,赋值等变量提升:conso...原创 2018-05-31 17:21:18 · 303 阅读 · 0 评论 -
javascript全局属性和函数
全局属性和函数可用于所有内建的 JavaScript 对象。alert,setTimeout是window下的JavaScript 全局属性属性描述Infinity代表正的无穷大的数值。NaN指示某个值是不是数字值。undefined指示未定义的值。JavaScript 全局函数函数描述decodeURI()解码某个编码的 URI。decodeURIComponent()解码一个编码的 URI 组...转载 2018-06-01 16:00:02 · 1599 阅读 · 0 评论 -
分组选择符
var a = (1,2,3)alert(a); //3原创 2018-05-25 10:26:49 · 375 阅读 · 0 评论 -
碰撞检测
原创 2018-05-14 09:49:29 · 740 阅读 · 0 评论 -
IE 浏览器的 全局捕获
obj.setCapture(); // 给对象设置全局捕获obj.releaseCapture(); // 取消对象的全局捕获ie : 有,并且有效果ff : 有,但是没效果chrome : 没有全局捕获只支持鼠标事件,不支持键盘事件。全局捕获: 全局(包含浏览器外)出现一个鼠标事件,会被设置全局捕获的对象捕获,如果此对象正好有对应的事件函数, 那么会被触发...原创 2018-05-11 16:00:29 · 1256 阅读 · 0 评论 -
cancelBubble 和 preventDefault
ev.cancelBubble = true; 阻止冒泡ev.preventDefault(); 阻止浏览器的默认行为原创 2018-05-09 18:03:44 · 367 阅读 · 0 评论 -
元素的事件绑定的兼容写法
obj.onclick = fn1;obj.attachEvent("onclick", fn1); // 此方法IE11, Chrome, FF,已经不支持了,而且fn1中的this指向window,按常理说应该指向objobj.addEventListener("click", fn1); //此方法只有IE11, Chrome, FF才有此方法所以兼容写法可以这样写: function bi...原创 2018-05-10 15:16:37 · 581 阅读 · 0 评论 -
Javascript组成部分
三个部分组成:1. ECMAScript 是js的核心部分,规定了语言的语法和基本对象2. DOM,提供了操作网页(html, xml)的方法和接口3. BOM,提供了与浏览器交互的方法和接口ECMAScript是一个标准DOM, document object model,文档对象模型,将网页中的元素划分成层次节点,组成一个树状结构DOM并不是js专属的,还可以由其他语言实现BOM, brows...原创 2018-05-04 11:08:04 · 458 阅读 · 0 评论 -
DOM 节点
【获取所有的子节点】1. children 获取所有的元素子节点,不包含文本节点,这个没有兼容问题,推荐使用2. childNodes 对于不同版本的IE浏览器有兼容问题: IE9+: 获取除了元素子节点,还有文本节点(包含换行),注释节点,非法节点(ul下包含p) IE8-:获取所有的元素子节点,(IE8可以获取非法节点)【获取第一个子节点】1. firstChild: childN...原创 2018-05-04 10:15:54 · 92 阅读 · 0 评论 -
DOM 之 offsetParent, parentNode
parentNode当前元素的父节点,无兼容问题。offsetParent是定位父级,与定位有关1. 如果当前元素设置为position:fixed,那么offsetParent=null但是firefox的offsetParent是body2. 如果父级元素设置position定位,那么offsetParent就是最近的设置定位的父级3. 如果父级元素都没有设置position定位,那么offs...转载 2018-05-04 15:24:40 · 228 阅读 · 0 评论 -
为什么要重置body等元素的样式
不同浏览器body的margin值会不一样,也就是body到html的距离不一样,比如:IE8+,Chrome, Firefox等是8pxIE7,margin-left是10px, margin-top是15px这些差异会使得dom中的一些属性值不一样,比如offsetLeft,offsetTop所以为了解决这些兼容问题,一般情况下,会在样式表中重置body等元素的margin,padding值为...原创 2018-05-04 16:34:16 · 414 阅读 · 0 评论 -
DOM 之 offsetLeft offsetTop, scrollTop, scrollLeft, clientX, clientY
offsetLeft: 到offsetParent的左内边框的距离对于IE8+,chrome,Firefox:(现代浏览器) 如果父元素设置了position定位,即父级是定位父级,那么offsetLeft就是到定位父级的左内边框的距离 如果父元素不是定位父级,那么offsetParent是到html的距离,而不是到body的距离。 值得注意的是:body有个8像素的外边距,一般情况下,会重置bo...原创 2018-05-04 16:39:53 · 394 阅读 · 0 评论 -
事件捕获与冒泡
原创 2018-05-11 10:29:36 · 125 阅读 · 0 评论 -
事件:方向键的应用
键盘控制Div移动方向键控制方向定时器控制移动和速度<div id="div1">#div1{width:100px;height:100px;background: red;position: absolute;left:40%;top:30%;} onload = function () { var oDiv = document.getElem...原创 2018-05-11 12:28:03 · 136 阅读 · 0 评论 -
渐进增强 优雅降级
渐进增强(Progressive Enhancement):一开始就针对低版本浏览器进行构建页面,完成基本的功能,然后再针对高级浏览器进行效果、交互、追加功能达到更好的体验。优雅降级(Graceful Degradation):一开始就构建站点的完整功能,然后针对浏览器测试和修复。比如一开始使用 CSS3 的特性构建了一个应用,然后逐步针对各大浏览器进行 hack 使其可以在低版本浏览器上正常浏览...转载 2018-06-01 17:55:44 · 197 阅读 · 0 评论