![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
蜜桃女孩
厚积薄发
展开
-
js中的this关键字
一个网页编程的例子<input type="text" name="age" size=3 onChange="validate(this,18,99);"><script>function validate(obj,lowval,hival){if((obj.value < lowval) || (obj.value > hival)) console.log('Invalid Value!'); }</script>上面代码是一个文原创 2020-08-05 19:20:45 · 177 阅读 · 0 评论 -
js中的new命令
new命令简化的内部流程,可以用下面的代码表示function _new(/* 构造函数 */ constructor, /* 构造函数参数 */ params) { // 将 arguments 对象转为数组 var args = [].slice.call(arguments); // 取出构造函数 var constructor = args.shift(); // 创建一个空对象,继承构造函数的 prototype 属性 var context = Object.creat原创 2020-08-05 18:19:29 · 275 阅读 · 0 评论 -
js数组
数组定义数组(array)是按次序排列的一组值。每个值的位置都有编号(从0开始),整个数组用方括号表示。var arr = ['a', 'b', 'c'];上面代码中的a、b、c就构成一个数组,两端的方括号是数组的标志。a是0号位置,b是1号位置,c是2号位置。除了在定义时赋值,数组也可以先定义后赋值。var arr = [];arr[0] = 'a';arr[1] = 'b';arr[2] = 'c';任何类型的数据,都可以放入数组。var arr = [ {a: 1},原创 2020-08-03 18:32:26 · 247 阅读 · 0 评论 -
克隆
克隆遍历对象 for(var prop in obj)判断是不是原始值 typeof() object判断是数组还是对象建立相应的数组或者对象var obj1 ={name:"abc",age:123;card:['visa','master'],wife:{name:"bcd",son:{name:"aaa"}}}var obj1 = {}function deepClone(origin,target){var target = target ||{},原创 2020-08-03 17:55:47 · 89 阅读 · 0 评论 -
Object对象
JavaScript 的所有其他对象都继承自Object对象,即那些对象都是Object的实例。Object对象的原生方法分成两类:Object本身的方法与Object的实例方法。(1)Object对象本身的方法所谓“本身的方法”就是直接定义在Object对象的方法。Object.print = function (o) { console.log(o) };上面代码中,print方法就是直接定义在Object对象上。(2)Object的实例方法所谓实例方法就是定义在Object原型对象Ob原创 2020-08-02 18:39:27 · 148 阅读 · 0 评论 -
js错误处理机制
JavaScript 解析或运行时,一旦发生错误,引擎就会抛出一个错误对象。JavaScript 原生提供Error构造函数,所有抛出的错误都是这个构造函数的实例。var err = new Error('出错了');err.message // "出错了"上面代码中,我们调用Error构造函数,生成一个实例对象err。Error构造函数接受一个参数,表示错误提示,可以从实例的message属性读到这个参数。抛出Error实例对象以后,整个程序就中断在发生错误的地方,不再往下执行。JavaScri原创 2020-07-31 16:27:32 · 125 阅读 · 1 评论 -
js要学习的知识
js知识导图原创 2020-07-31 16:14:20 · 62 阅读 · 0 评论 -
类型转换
Number()使用Number函数,可以将任意函数的值转换成数值;原始类型值Nunber(324) //数值:转换后还是原来的值Number('324')//字符串:如果可以被解析为数值,则可以转换为相应的数值Number('324abc')//字符串:如果不可以被解析成数值,返回NaNNumber('') //空字符转为0Number(true)//布尔值:true转为1,false转为0Number(undefined)//转为NaNNumber(null)//null转为0原创 2020-07-30 17:25:37 · 109 阅读 · 0 评论 -
try..catch&& es5
try catch在try里面得发生错误,不会执行错误后面的代码try{console.log('a');console.log(b);console.log('c');}catch(e) {//error error.message error.name --> error console.log(e.name + ":" + e.message); } console.log('d');Error,name的六种值对应的信息:EvalError:eval()的使用与定原创 2020-07-29 16:53:16 · 111 阅读 · 0 评论 -
正则表达式应用及补充
检验一个字符串首尾是否含有数字var reg =/^\d|\d$/g;var str = "123abc";例题RegExp对象方法compileexecreg.exec()非正则表达式只能匹配一个var str ="aa";console.log(str.replace("a","b"));var reg =/(\w)\1(\w)\2/g;var str = "aabb";console.log(str.replace(reg,"$2$2$1$1")原创 2020-07-28 17:17:05 · 64 阅读 · 0 评论 -
正则表达式(RegExp)
正则表达式RegExp引号里的\(转义符号)后面被当成文本输出**作用:**匹配特殊字符或有特殊搭配原则的字符的最佳选择两种创建方式:直接量new RegExp();第一种检测字符串中是否有abcvar reg = /abc/;var str ="abcd";var reg =/abce/i;ignoreCase /*忽视大小写*/var reg =/abce/g /*全局匹配*/var reg =/abce/m /*执行多行匹配*/第二种var reg =原创 2020-07-28 15:57:18 · 270 阅读 · 0 评论 -
时间线
js时间线创建document对象,开始解析web页面。解析HTML元素和她们的文本内容后添加Element对象和Text节点到文档中。阶段document.ready = “loading”;遇到link外部css,创建线程加载,并继续解析文档;遇到script外部js,并且没有设置async、defer,浏览器加载,并阻塞,等待js加载完成并执行该脚本,然后继续解析文档。遇到script外部js,并且设置async、defer,浏览器创建线程加载,并继续解析文档。对于async属性的脚本,脚原创 2020-07-28 14:30:22 · 89 阅读 · 0 评论 -
json && 异步加载
json是一种传输数据的格式(以对象为样板,本质上就是对象,但用途有区别,对象是本地用的,json是用来传输的)JSON.parse(); string -> jsonJSON.stringify();json -> stringdomTree + cssTree = randerTreereflow 重排 dom结点的删除,添加 dom结点的宽高变化,位置变化display none – > blockoffsetWidth offsetLeftrepaint 重绘原创 2020-07-27 20:05:53 · 207 阅读 · 0 评论 -
事件2
拖拽<div style="width:100px;height:100px;background-color:red;position:absolute;left:0;top:0;"></div>var div = document.getElementsByTagName('div')[0];var disX,disY;div.onmousemove = function(e){disX = e.pageX - parseInt(div.style.left);di原创 2020-07-27 18:24:54 · 71 阅读 · 0 评论 -
事件
事件交互体验的核心功能绑定事件(点击事件)1.ele.onxxx = function(event){}var div = document.getElementsByTagName('div')[0];div.onclick = function(){this.style.backgroundColor = 'green';}兼容性很好,但是一个元素的同一个事件只能绑定一个处理函数基本等同于写在HTML行间上2.obj.addEventListener(type,fn,false原创 2020-07-26 19:11:17 · 76 阅读 · 0 评论 -
dom操作&& 脚本化CSS
function getScrollOffset(){if(window.pageXOffset){return{x : window.pageXOffset,y : window.pageYOffset}}else{return{x : document.body.scrollLeft + document.documentElement.scrollLeft,y : document.body.scrollTop + document.documentElement.scrollTo.原创 2020-07-25 16:36:43 · 75 阅读 · 0 评论 -
封装函数insertAfter() && date对象
封装函数insertAfter();功能类似insertBefore();<div> <i></i> <b></b> <span></span></div>Element.prototype.insertAfter = function(targetNode,afterNode){var beforeNode = afterNode.nextElementSibling;this原创 2020-07-24 19:34:17 · 118 阅读 · 0 评论 -
dom继承树 dom基本操作
dom结构树增:创建元素节点var div = document.createElement('div');创建文本节点var text = document.createTextNode('文本');创建注释节点var comment = document.createComment('注释');插入:var div = document.getElementsByTagName('div')[0];var text = document.createTextNode('邓')原创 2020-07-24 18:32:31 · 132 阅读 · 0 评论 -
dom选择器
document代表整个文档查看元素结点:document.getElementById()<div id="only"></div>var div = document.getElementById('only');元素id在ie8以下的浏览器,不区分大小写,而且也返回匹配name属性的元素;getElementsByTagName()//标签名<div id="only"></div>var div = document.getEl原创 2020-07-23 19:12:07 · 50 阅读 · 0 评论 -
闭包精细版
累加器function add(){var num = 0;function a(){console.log(++num);}}var myAdd = add(); add();打印出来是1做缓存function text(){var food = "apple";var obj = {eatFood: funtion(){if(food != ""){console.log("I am eating" + food );food = "";}else {conso原创 2020-07-22 18:32:39 · 63 阅读 · 0 评论 -
JavaScript 闭包理解
闭包:如果在一个内部函数里,对在外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。当内部函数被保存到外部时,将会生成闭包。闭包会导致原有作用链不释放,造成内存泄露作用:function text(){var arr = [];for(var i = 0; i < 10; i++){arr[i] = function(){console.log(i);}}return arr;}var myArr = text();for(var j原创 2020-07-21 17:38:27 · 71 阅读 · 0 评论