随笔分类 -  Js常用的技巧和技术难点

摘要:在代码中,每个代码块和方法都会返回一个值,结果值就如同一个隐式的返回,在函数中,如果没有指定return,那么就相当于在结束出添加一个 return undefined 。在代码块中返回最后一个语句的结果值,如: 上面的代码中,其返回结果是37,但是想拿到返回值,用这种方法却不行: 如果想要拿到其返 阅读全文
posted @ 2016-12-22 11:15 8932809 阅读(280) 评论(0) 推荐(0)
摘要:使用new String("abc"); 创建的是字符串 abc 的封装对象,而不是基本类型值"abc"。 封装对象 由于基本类型值没有.length和.toString()这样的属性和方法,需要通过封装对象才能访问,此时JavaScript会自动为基本类型值包装一个封装对象,如: 注意:如果需要频 阅读全文
posted @ 2016-12-19 17:29 8932809 阅读(377) 评论(0) 推荐(0)
摘要:在传递a的时候,其实是将引用a的一个复本赋值给x,而a仍然指向x,在方法中,我们可以通过x来改变数组的值,然后重新赋值x=[4,5,6],但这病不影响a的指向所以我们不能通过引用x来更改引用a的指向,只能更改a和x共同指向的值如果要改变原值,就必须改变x指向的数组,而不是为x赋值一个新的数组,例如: 阅读全文
posted @ 2016-11-10 17:12 8932809 阅读(307) 评论(0) 推荐(0)
摘要:类型 js中的变量是没有类型的,只有值才有类型,变量可以随时接受任何类型。例如: undefind 和 undeclared 在js中,已在作用域声明但还没赋值的变量,是undefined。相反还没在作用域中声明过的变量是undeclared 需要特别注意的是如果用typeof undeclared 阅读全文
posted @ 2016-11-01 11:36 8932809 阅读(254) 评论(0) 推荐(0)
摘要:当页面中存在多个<script>标签时,这时编译器会将多个标签处理成一个还是将多个分开处理呢, 看下面的代码: 这段代码会报 Uncaught ReferenceError: a is not defined 的错误,而不是undefined,所以可以看出编译器是按块进行编译的, 也就是说是按scr 阅读全文
posted @ 2016-09-13 10:03 8932809 阅读(3962) 评论(0) 推荐(1)
摘要:JSON操作 在序列化JavaScript对象时,所有函数及原型成员会被忽略,另外,值为undefined的属性也会被忽略。 JSON.stringify() 该方法可以传递两个参数,第一个参数是过滤器,可以是一个数组或方法,第二个参数是一个选项,表示是否在json字符串中保留缩进。 传递数组 传递 阅读全文
posted @ 2016-04-25 09:27 8932809 阅读(183) 评论(0) 推荐(0)
摘要:记录日志 记录日志用 img的src来访问记录错误日志的接口,这样做又几个好处: 1、 可以避免跨域的限制,通常都是一台服务器要负责处理多态服务器的错误,而这种情况下是使用XMLHttpRequest是行不通的。 2、 记录错误的过程中,出现问题的概率比较低,大多数的AJAX都是有JS库提供的包装函 阅读全文
posted @ 2016-04-25 09:26 8932809 阅读(236) 评论(0) 推荐(0)
摘要:var dragDiv = document.getElementById("dragDiv"); dragDiv.addEventListener("dragover", function (event) { event.preventDefault(event); console.log("ov 阅读全文
posted @ 2016-04-25 09:25 8932809 阅读(160) 评论(0) 推荐(0)
摘要:fillStyle 填充颜色,storkeStyle 描边颜色 strokeRect()方法-绘制矩形 toDataURL-将图片转换为编码 阅读全文
posted @ 2016-04-25 09:24 8932809 阅读(161) 评论(0) 推荐(0)
摘要:Dom2和Dom3 importNode()方法,是将当前文档的某个节点传入到另一个文档中,使其成为该文档的一部分,因为元素都会有一个ownerDocument属性,所以单纯的使用appendChile方法会出错。 Css样式 偏移量 offsetWidth:元素垂直方向上所占的空间。 offset 阅读全文
posted @ 2016-04-25 09:23 8932809 阅读(345) 评论(0) 推荐(0)
摘要:在js中,我们实现重载常用的方式有: 1、根据传入参数的类型执行不同的操作。 2、利用参数中特殊的参数值进行不同的操作。 3、根据参数的个数进行重载。 这里对第三种重载方式的实现进行说明。 实现第三种方法,最简单的就是使用switch case进行参数个数的判断,然后执行相应的操作,但这样的判断方法 阅读全文
posted @ 2016-04-16 13:47 8932809 阅读(6485) 评论(0) 推荐(0)
摘要:ClassList activeElement方法-当前页面获取焦点的对象 用于返回当前页面中获取焦点的对象。 hasFocus方法 判断文档是否获取焦点 readyState –文档加载状态 这个属性有两个值loading正在加载文档和complete已经加载完文档。 自定义属性-dataset 阅读全文
posted @ 2016-04-15 16:10 8932809 阅读(470) 评论(0) 推荐(0)
摘要:querySelector方法 返回单个元素 querySelectorAll方法 返回一组元素 遍历取得的对象 阅读全文
posted @ 2016-04-15 16:02 8932809 阅读(194) 评论(0) 推荐(0)
摘要:常用的节点类型有 <!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerni 阅读全文
posted @ 2016-04-15 16:01 8932809 阅读(323) 评论(0) 推荐(0)
摘要:NodeList 文档中每个节点都有一个childNodes属性,其中保存着一个NodeList对象,它是一种类数组对象,可以通过位置来访问这些节点,但它不是Array的实例,并且DOM结果的变化能够自动反应在NodeList对象中,所以它是自动变化的。 上述代码的firstChild其实不是第一个 阅读全文
posted @ 2016-04-15 15:46 8932809 阅读(271) 评论(0) 推荐(0)
摘要:窗口位置 兼容浏览器代码(使用Iframe除外),获取浏览器左上角相对屏幕左上角的坐标。 移动窗口:使用moveTo和moveBy两个方法,都是接收两个参数,x和y,moveTo代表移动到指定坐标,而moveBy代表根据当前的位置,便宜多少像素。这两个方法在浏览器中一般被禁用。 窗口大小:调整窗口大 阅读全文
posted @ 2016-04-15 15:22 8932809 阅读(152) 评论(0) 推荐(0)
摘要:因为js是单线程的语言,所以在使用setTimeout方法时,程序会先执行其他的代码,把延时函数放到任务列队中,当到了指定的时间后,在查看当前的任务列队是否是空的,如果是空的则会立即执行,如果不是,则会等待前面的代码执行完成之后,才开始执行。 因此,上面的代码中,始终弹出的i值是11,而不是从1开始 阅读全文
posted @ 2016-04-15 15:21 8932809 阅读(216) 评论(0) 推荐(0)
摘要:使用立即调用表达式可以解决闭包中循环里的问题,比如,如果不用立即调用表达式的循环语句执行时,那么i的值始终为img.length,因为i已经执行过了,并在内存中已经保留了。 另外js可以允许()()的格式。用这种方式也可以模拟块级运用域,因为立即执行函数直接就会运行,执行完成之后会自动释放内部变量。 阅读全文
posted @ 2016-04-15 15:11 8932809 阅读(264) 评论(0) 推荐(0)
摘要:当一个变量被声明赋值之后,如果再对其声明,则不会改变上一次赋值后的值,所以i的值还是5,只有重新赋值之后,才会改变,如: i现在的值是6; JS中没有块级作用域,如果想要块级作用域的效果,可以进行模仿,如: 这方法可以理解为把块级作用域放在一个匿名函数中,所以匿名函数中声明的变量,在其函数执行结束之 阅读全文
posted @ 2016-04-15 15:04 8932809 阅读(177) 评论(0) 推荐(0)
摘要:下面的实例,只是基于是用this 在闭包中使用this对象可能会导致一些问题,因为 this对象是在运行时基于函数的执行环境进行绑定的:全局函数中,this等于window,当函数被特定于某个对象进行调用时,this代表调用的对象。但是匿名函数的执行环境具有全局性,所以匿名函数中this通常指定为w 阅读全文
posted @ 2016-04-15 15:03 8932809 阅读(159) 评论(0) 推荐(0)