
JavaScript
VVVGG
不积跬步无以至千里
展开
-
JS实现页面传值
1,cookiecookie的话可以加载Jquery和JQuery.cookie 模块temp.html页面<body> <button onclick="jump()">jump</button> <script src="/js/jquery.min.js"></script> <script src=...原创 2019-06-19 15:18:21 · 533 阅读 · 0 评论 -
原型链
看下面一组代码:son在查找lastName的时候会逐个往上查找,自己对象空间找不到,沿着自己的proto(__proto__ : Son.prototype--->father),去father中查找,然后再father对象空间中也没有找到lastName,所以再沿着father的proto(__proto__ : Father.prototype---->Grand),...原创 2018-08-22 12:24:51 · 221 阅读 · 0 评论 -
try catch
在try里面放一段代码,当try里面有错误的时候,系统不会中断整个代码,只是不会执行try后面的代码,然后继续执行try catch以外的代码catch的作用是捕捉对象当try里面有错误时,就会直接执行catch里面的语句当try里面没有错误时,就不会执行catch里面的语句Error.name的六种值对应的信息:1,EvalError:eval()的使用与定义...原创 2018-08-24 17:22:26 · 394 阅读 · 0 评论 -
脚本化CSS
1,dom.style.prop可读写行间样式,没有兼容性问题,碰到float这种的保留字属性,前面应加csseg:dom.style.float---->dom.style.cssFloat复合属性必须拆解eg:div.style会返回一个样式声明表,并且这个样式表可读可写注意在JS中没有中划线在CSS中是中划线的,改成小驼峰式但...原创 2018-08-28 23:21:32 · 477 阅读 · 1 评论 -
DOM继承树
document <----HTMLDocument.prototype<-----Document.prototype原创 2018-08-28 22:43:10 · 213 阅读 · 0 评论 -
获得窗口属性
查看滚动条的滚动距离window.pageYOffsetwindow.pageXOffsetIE8和IE8以下不兼容对于IE8以及IE8以下的浏览器使用:document.body.scorllLeftTop document.documentElement.scorllLeft/Top兼容性比较混,用的时候取两个值相加,因为不可能存在两个同时有值封装一个兼容所...原创 2018-08-28 22:41:37 · 471 阅读 · 0 评论 -
原型
1,定义:原型是function对象的一个属性,它定义了构造函数制造出对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象。原型就相等于构造函数所要构造的对象的父亲,比如上面person里虽然是空的,但是可以访问name属性,这就是一种继承、可以访问原型中的对象,也可以访问自己的对象原型的作用:利用原型的特点和概念,可以提取共有...原创 2018-08-21 18:46:01 · 283 阅读 · 0 评论 -
对象和包装类
上面代码也可以这样写对于一个对象来说,肯定要有增删改查首先来看增:再看查看:在看改:再看删对象的创建方法:1,var obj = {} ,plainObject 对象字面量,对象直接量2,构造函数(1)系统自带的构造函数 Object()js的构造函数可以后天更改对象属性(2)自定义...原创 2018-08-21 14:08:42 · 503 阅读 · 0 评论 -
类数组
看下面的题目:注意push方法数组去重:var arr = [1,1,1,1,2,2,2,0,0,3,1,0]Array.prototype.unique = function () { var reArr,arr_length,arr; reArr = {}; arr = []; arr_length = this.length; for(var i...原创 2018-08-24 10:21:31 · 160 阅读 · 0 评论 -
数组
数组的创建方式:1,arr = [] 2,var arr = new Array(1,2,3,4,5);所以用Array()方法创建的时候,只有一位数的时候代表数组长度,一位数字的时候不能使用小数在js里数组越界不会报错,只会undefined(把数组当成对象,你访问某一位,他只会告诉你那一位未定义)数组的常用方法:1,可以改变原数组的方法push...原创 2018-08-23 22:22:50 · 270 阅读 · 0 评论 -
事件
1,句柄绑定方式ele.onxxx = function(event) {}兼容性很好,但是一个元素的同一事件上只能绑定一个函数基本等同于写在HTMl行间上 === 2,监听者方式obj.addEventListener(type, fn, false);IE9以下不兼容,可以为一个事件绑定多个处理函数div.addEventListener(事件类型, 处理函数...原创 2018-08-29 10:25:22 · 200 阅读 · 0 评论 -
事件处理模型---事件冒泡,捕获
一个对象的一个事件处理模型只能是一个(要么冒泡要么捕获)事件冒泡:结构上(非视觉上)嵌套关系的元素,会存在事件冒泡功能,即同一事件,自子元素冒泡向父元素。(自底向上)事件捕获:结构上(非视觉上)嵌套关系的元素,会存在事件捕获的功能,即同一事件,自父元素捕获至子元素(事件源元素)。(自顶向下)IE没有捕获事件addEventListener后面的boo...原创 2018-08-29 15:00:04 · 247 阅读 · 0 评论 -
正则表达式
配合w3c来看http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp转义字符 ‘\’\n 表示换行 \r 行结束符\t 制表符 一个tab多行字符串字符串是不能直接在js里面换行的需要每一行的最后加上一个转义字符正则表达式的作用:匹配特殊字符或有特殊搭配原则的字符...原创 2018-08-30 18:50:15 · 340 阅读 · 0 评论 -
JSON,异步加载,时间线
JSON是一种传输数据的格式(以对象为样板,本质上就是对象,但用途有区别,对象就是本地用的,json是用来传输的)JSON.parse(); string ---> jsonJSON.stringfiy(); json ----> string浏览器绘制页面的前提工作:首先对html代码形成一个domTree domT...原创 2018-08-30 13:36:17 · 543 阅读 · 0 评论 -
文本类操作事件和窗体操作类(window上的事件)
input只要当输入框中的内容发生改变,就会触发一次 focus获得焦点blur失去焦点change判断鼠标失去焦点和聚焦状态前后,内容是否发生改变,如果发生改变,就会触发窗体操作类scroll 监听滚动条 ,返回滚动条的位置 IE6没有fixed定位,但是可以通过这种方法实现,把元素的top加上滚动条滚动的距离就可以了l...原创 2018-08-30 09:29:57 · 313 阅读 · 0 评论 -
键盘事件
keydown, keyup, keypresskeydown>keypress>keyupkeydown可以响应任意键盘按键,ketpress只可以响应字符类按键keydown区分不了字符类按键的大小写keypress返回ASCII码,可以转换成相应字符...原创 2018-08-29 22:30:06 · 227 阅读 · 0 评论 -
鼠标事件
鼠标事件click(单击==点下,松起),mousedown(点下),mousemove(滑动),mouseup(松起),contextmenu(右键菜单),mouseover(移进),mouseout(离开),mouseenter(移进),mouseleave(离开)用button来区分鼠标的按键 (0/1/2)事件对象中的button属性返回了你是用...原创 2018-08-29 22:10:18 · 147 阅读 · 0 评论 -
元素拖动实现
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>VVVGG</title> <link rel="stylesheet" type="text/css" href="lesson1原创 2018-08-29 21:48:08 · 285 阅读 · 0 评论 -
DOM遍历
DOM遍历节点树1,parentNode2,childNodes,子节点们之所以是7个,看一下节点类型1,元素节点-------12,属性节点-------23,文本节点-------34,注释节点-------8,5,document------96,DocumentFragment-------11灰色区域是第1个文本节点第二...原创 2018-08-25 13:51:21 · 649 阅读 · 0 评论 -
es5严格模式
现在浏览器的js方法是基于es3.0 + es5.0的新增方法使用的es3.0和es5.0产生冲突的部分叫做es5.0的严格模式一旦启动了es5.0的严格模式,那么es3.0和es5.0产生冲突的部分就会使用es5.0的处理方法es5.0的启动模式,并且在代码的最上面(可以使用在函数当中,但是也必须要写在顶端,否则无法识别),推荐使用在函数中'use strict'在e...原创 2018-08-25 11:23:22 · 287 阅读 · 0 评论 -
DOM和DOM选择,创建元素
DOM(Document Object Model):DOM定义了表示和修改文档所需要的方法。DOM对象即为宿主对象,由浏览器厂商定义,用来操作html和xml功能的一类对象的集合。也有人称DOM是对HTML以及XML的标准接口编程。DOM不能操作css样式表,但是能通过间接设置行间样式来操作cssDOM选择元素的几种方式:标签选择var div document.getEleme...原创 2018-08-25 11:38:51 · 546 阅读 · 0 评论 -
三目运算符
条件判断 ? 真:假 ,并将表达式的结果返回‘10’是两位字符串原创 2018-08-23 21:11:55 · 195 阅读 · 0 评论 -
克隆
对只有原始值的对象进行的克隆:obj1 改动之后,obj也改动了,所以这是不应该的接下来写一个深度克隆:var obj = { name : 'abc', sex : 'female', age : '23', card : ['a', 'b', 'c'], family : { grand : 'li', father : 'li', mo...原创 2018-08-23 21:06:19 · 180 阅读 · 0 评论 -
函数
1,声明一个函数(1)函数声明(2)命名函数表达式看下面所以直接使用第三种方法(3)匿名函数表达式2,函数命名规范如果有多个单词连接成函数名字,第一个单词首字母小写,往后的单词首字母大写3,参数实参比形参多不报错,形参比实参多也不报错那么,当实参比形参多的时候,实参的数值跑到哪里去了?,在arguments...原创 2018-08-20 10:24:08 · 162 阅读 · 0 评论 -
定时器
setInterval(function () { },time)每隔time的时间,无限制的循环function内的代码time无法更改,他还是1000;那我们现在来看看setInterval是否准所以,setInterval是不准的现在来看一下setInterval的返回值每一个定时器都会返回一个数字,作为他的唯一表示所以我们也...原创 2018-08-26 16:19:13 · 224 阅读 · 0 评论 -
日期对象Date()
日期对象,是系统提供好的不是实时性的,只选定了你当初定义date对象的时间原创 2018-08-26 15:34:44 · 153 阅读 · 0 评论 -
数组和对象,typeof,类型转换
1,数组遍历数组:2,对象键--->值一一对应-----------------------------------------------------------------------------------------------------------typdof,返回数据类型,一共可以返回number,string,boolean,object,...原创 2018-08-19 16:11:24 · 2162 阅读 · 0 评论 -
JS条件语句
1,if2,for但是for语句的执行比较灵活,可以视要求,改变1,2,3,语句的位置另外,for语句的执行顺序为,1->2->3->2->3->2->3.....3,while4,do-while5,switch-case6,break跳出循环,continue跳过此次循环,进行下次循...原创 2018-08-19 14:22:48 · 575 阅读 · 0 评论 -
JS比较运算符,逻辑运算符
比较运算符:> , < ,>=,<=,!=,返回的结果是boolean值比较数值:其他同理比较字符串:比较字符串,就是比较ASCII码如果是多个字符的字符串比较,先比较第一位,如果第一位相同,再比较第二位还有一些系统的关键字,比如:然后再看NaNNaN是个特例,他不等于任何东西,甚至是自己...原创 2018-08-19 13:27:50 · 4926 阅读 · 0 评论 -
JS运算符
1,+ 号作用:数字运算,字符串链接(任何数据类型加上字符串都等于字符串)2,- 号,* 号 没什么好说的3,/ 号 (有点意思)结果是无限类似这种得出来的结果是数字类型,却无法表示成数字,就是NaN (Not a Number)4,++先执行输出a,然后再++先++,再输出a++会等这...原创 2018-08-19 11:24:35 · 739 阅读 · 0 评论 -
JS错误类型
1,低级错误(语法解析错误)当js代码块出去语法错误,例如:var a = 10;document.write(a):var b = 10;document.write(b);这种,js虽然是一行编译,一行执行,但是仍然还是会提前大致扫一下,发现有语法错误,则一行都不会执行2,逻辑错误var a = 10;document.write(a);docume...原创 2018-08-19 10:38:20 · 274 阅读 · 0 评论 -
JS变量,值类型
变量申请:申请多个单一变量:尽量不要像下面这样申请:命名规则:变量名字必须要以英文字母,下划线,$开头变量名可以包括英文字母,下划线,$,数字不可以用系统的关键字(现在使用的系统的有特殊含义的词),保留字(未来也许系统使用的关键字)用做变量名 值类型:首先先将值分为原始值和引用值原始值:Number String Boolean undefine...原创 2018-08-19 10:24:44 · 900 阅读 · 0 评论 -
JS预编译
JS执行顺序1,语法分析在进行代码运行时,会先扫描整个代码,查看是否有语法错误2,预编译3,解释执行--------------------------------------------预编译:依然能够执行,是因为有预编译的作用看下面三段代码:前提知识点:imply global 暗示全局变量:即任何变量,如果有任何变量未经...原创 2018-08-20 13:00:26 · 995 阅读 · 0 评论 -
JS精度不准的问题
所以一般做浮点操作的时候,用Math.floor() (向下取整) or Math.ceil() (向上取整)Math.random()产生0到1开区间的随机数所以看下面:toFixed(2) 截取两位小数,数字代表位数就会发生精度不准的问题这样就不会有精度不准的情况出现了JS可正常计算的范围小数点前16位到小数点后16位...原创 2018-08-23 10:02:29 · 1182 阅读 · 0 评论 -
arguments.callee
arguments.callee 指向的是自己的引用看下面:fun().caller 指向调用自己的函数原创 2018-08-23 17:29:45 · 187 阅读 · 0 评论 -
立即执行函数
立即执行函数:一般是函数长度过长,而且只执行一次。针对初始化功能的函数形式形参和实参立即执行函数也有预编译过程立即执行函数写法:1,(function (){}()) w3c建议第一种2,(function (){})()看下面:这是一个函数,一般我们在控制台调用函数的时候,直接使用test();就可以了,因为我们使用的方法是te...原创 2018-08-20 20:20:42 · 2277 阅读 · 0 评论 -
this
1,函数预编译过程this--->window函数预编译过程中,AO内部除了形参和变量还有this和arguments2,全局作用域里this--->window3,call/apply可以改变函数运行时this的指向4,obj.func() ; func()里面的this指向objobj对象里面有个a方法使用了this,那么,现在谁调用了a,this就指向...原创 2018-08-23 17:10:59 · 169 阅读 · 0 评论 -
对象的枚举
1,for in循环对于数组的遍历不再说了,那么对于对象的遍历呢:?、这是因为系统在内部做这样的转换:obj.prop ---->obj['prop'] ,他会觉得你是在让他访问prop属性,这样就可以了2,hasOwnProperty让我们为obj加上一个原型这样就把原型的东西和原型链上的东西返回回来(系统自带的是不会返回的)...原创 2018-08-23 15:12:21 · 586 阅读 · 0 评论 -
闭包
闭包的产生条件:但凡是内部的函数被保存到外部,就产生了闭包看下面几道题目:在这个过程中,每一次demo运行完成后,b的AO就被扔掉了,b所维护的就是a的AO,所以,num会累加a在return完b之后,a原本链接到a自己AO的那个链接就断了当内部函数被保存到外部时,将会生成闭包,闭包会导致原有作用域链不释放,造成内存泄露(内存变少)。闭包的作用:1,累加...原创 2018-08-21 09:03:13 · 319 阅读 · 0 评论 -
作用域和作用域精解
变量的作用域分为全局作用域和局部作用域,全局作用域:即对任何内部函数来说,全局作用域的变量都是可以访问的。局部作用域:只在自己函数内部片段可以访问,外部函数是无法访问的。接下来看一段代码:你感觉应该是输出 outer1 和 outer2 ,实际不是至于为什么,这是因为对于JavaScript来说,变量只要在函数内部声明了,不管在那个位置,会自动处理成提前...原创 2018-08-20 16:44:21 · 572 阅读 · 0 评论