js
追赶者
好好学习,天天向上。
展开
-
20150927js学习回顾
通过childNodes类型的方式查找的节点是NodeList类型;childNodes children 查找到的都是直接子节点通过getElementsByTagName类型的方式查找的是HTMLCollection类型; 二者都是动态集合给未声明的变量赋值不会出错,但取值会出错,给未声明的变量的下级赋值会出错,访问数组的未赋值的下标不会出错,访问数组的原创 2015-09-27 18:13:10 · 326 阅读 · 0 评论 -
js函数对象的总结
修改用字面量创建的对象的原型的方法; var a = Object.create({a:1}); a.a //1var p = Object.getPrototypeOf(a); p.a = 2; //2 a.a //2var man = { name:"bosn", weibo:"@bosn", $age:null, get age(原创 2015-09-30 18:52:40 · 346 阅读 · 0 评论 -
面试题
var length = 10function fn(){ alert(this.length)}var obj = { length: 5, method: function(fn) { fn() // 10 this指向window arguments[0]() // 1 arguments是一个对象,arguments也有自己的作原创 2015-11-11 22:25:42 · 257 阅读 · 0 评论 -
js执行上下文
变量作用域 是程序源代码中定义这个变量的区域作用域链 是存储当前作用域可访问的变量的栈三种代码运行环境:global function eval执行环境 =》 变量对象 作用域链 thisAO/VO =》 变量 函数声明 函数形参函数被调用时 1.创建阶段(函数被调用,但还没开始执行函数代码) (1)会创建作用域链原创 2015-11-12 21:48:52 · 446 阅读 · 0 评论 -
闭包
闭包 在定义函数时就创建了一个作用域链并保存在函数的scope属性中,当调用函数时,会为函数创建一个执行环境,并通过复制scope属性中的对象(变量对象)构建起执行环境的作用域链,并创建该函数的活动对象(可做变量对象)放入作用域链的前端,因此更内层的函数的作用域链会被重新定义,而闭包则是内层函数被更外部的变量对象引用,而内层函数又引用了定义它的环境的活动对象function getCounter(原创 2015-09-30 18:56:29 · 296 阅读 · 0 评论 -
seajs模块加载
在使用seajs加载模块时,对模块中依赖的模块都要加载一次才能使用,比如用jquery写代码,在每个模块中都需要require一次,像jquery这种全局都需要用到的模块,可以在config中设置preload,保证事先准备好jquery原创 2015-11-16 22:12:06 · 368 阅读 · 0 评论 -
url解析函数
function parseURL(url){ var a = document.createElement("a"); a.href = url; return { source:url, protocol:a.protocol.replace(":",""), host:a.h原创 2015-11-17 22:42:41 · 462 阅读 · 0 评论 -
angular发送multipart/form-data文件的方法
var fd = new FormData();fd.append('file',fileInput.files[0]);$http.post("service/...",fd, { transformRequest: angular.identity, headers: {'Content-Type': undefined}原创 2015-12-15 16:17:41 · 1862 阅读 · 0 评论 -
js兼容性
var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel"FF:event.detail 向下:-120 向上:120其他:event.wheelDelta 向下:3 向上:-3在 IE8- 下,Element 对象被 removeChild原创 2016-01-20 18:29:51 · 327 阅读 · 0 评论 -
ajax跨域
跨域:1.协议不同2.主域名不同3.子域名不同4.端口号不同处理跨域的方法1.在同域名的web服务器端创建一个代理。2.jsonp(只支持GET方法)。3.XHR2:header("Access-Control-Allow-Origin:*(允许的域名,*表示全部)");header("Access-Control-AllowMethod:POST,GET");原创 2015-10-25 23:39:20 · 266 阅读 · 0 评论 -
ES6定义函数的新方法(generator和箭头函数)
generator函数; 定义 function* foo(){ .... yield x1; .... yield x2; ........ return xn; }调用 var f=foo(); f.next() //x1,false f.n原创 2015-11-11 22:20:45 · 1448 阅读 · 0 评论 -
原型关系
原型关系function a(){};a.__proto__ ——>Function.prototype——>Object.prototypea.prototype ={ constructor:a; __proto__:Object.prototype; }var b = new a()b ={ __proto__:a.prototype;}v原创 2015-09-30 18:30:08 · 334 阅读 · 0 评论 -
基本的模块写法
基本的模块写法var module1 = (function(){ var _count = 0; var m1 = function(){ //... }; var m2 = function(){ //... }; return { m1 : m1, m2 : m2 }; })();添加方翻译 2015-09-30 18:40:05 · 293 阅读 · 0 评论 -
js学习注意知识
通过构造函数创建对象,在构造函数内部先创造一个空对象,再通过传入的参数赋值,这个对象的原型会指向函数的prototype属性。最后把这个函数内部的对象返回给要实例化的对象。‘=’赋值操作仅仅赋的是指针,如 a.prototype = b.prototype ,它们指向的是同一个对象,当改变a.prototype的属性的时候b.prototype的属性也会跟着改变。但当a.prototype = {原创 2015-09-30 18:54:55 · 281 阅读 · 0 评论 -
函数多层执行
function jisuan(){ var args = arguments; var sum = 0; var i = 0; var getSum = function(){ sum += args[i]; i++; if(i<args.length){ s原创 2015-09-30 19:00:14 · 383 阅读 · 0 评论 -
关于内存泄漏
var theThing = null; var replaceThing = function(){ var priorThing = theThing; var unused = function(){ if(priorThing){ console.log("转载 2015-10-10 19:26:54 · 761 阅读 · 0 评论 -
对象的一些API
对象的一些API Object.getPrototypeOf(obj); 函数的原型把obj换为 函数名.prototype; Object.create(obj);创建一个空对象并把空对象的原型指向obj; Object.getOwnPropertyDescriptor(obj,”属性名”) 返回一个新对象与原来的属性标签没有了联系; Object.getOwnPropertyNames原创 2015-09-30 18:35:38 · 374 阅读 · 0 评论 -
angularjs嵌套作用域问题
<!DOCTYPE html><html><head> <title></title> <meta charset="utf-8"> <script src="angular.js"></script></head><body ng-app="todo"> <div ng-controller="ctrl1"> <input type="tex原创 2015-11-01 23:49:11 · 918 阅读 · 0 评论 -
检查数组的方法
instanceofarr instanceof ArrayisPrototypeOfArray.prototype.isPrototypeOf(arr);Object.prototype.toString.call();Object.prototype.toString.call(arr)constructor;arr.constructor === ArrayArray.isArrayArray原创 2015-11-11 22:14:21 · 345 阅读 · 0 评论 -
一些很少用到的js
oninput,onpropertychange,onchange的用法 onchange触发事件必须满足两个条件: a)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效) b)当前对象失去焦点(onblur); onpropertychange的话,只要当前对象属性发生改变,都会触发事件,但是它是IE专属的; oninput是onpropertychange的非IE浏览器版本原创 2016-02-05 16:14:02 · 479 阅读 · 0 评论