随笔分类 -  javascript

摘要:caller 和 callee caller 以及 callee是比较少见的属性,可能才了解前端的童鞋都认识。 callee是arguments的属性,值为调用该参数的函数(即是该函数)。 function apple () { console.log(arguments.callee) // ap 阅读全文
posted @ 2017-09-08 14:59 慕迪亚 阅读(407) 评论(0) 推荐(0)
摘要:event 这个,有点不好意思,之前在js事件流那一章中说会说说event,不知不觉就跳票了这么久了。最近也有阵子没有更新,这个主要是...... hah,跳过这个话题吧。 (/ _ )/ ┻━━━━━┻ :) 因为各个浏览器的事件对象不一样, 把主要的时间对象的属性和方法列出来; button: 阅读全文
posted @ 2017-06-28 12:35 慕迪亚 阅读(361) 评论(0) 推荐(0)
摘要:异步和回调 这两个最好还是分开来说 回调 var b = function (){ //执行相关的代码 } var a = function (b){ //执行相关的代码 b(); } a(b); 这就是回调,不过一般的套路都是 var a = function (callback){ if(cal 阅读全文
posted @ 2017-05-25 20:08 慕迪亚 阅读(486) 评论(0) 推荐(0)
摘要:连续赋值与循环引用 连续赋值 以下两端代码的结果: var foo = {n:1}; var bar = foo; foo = {n:2}; foo.x = foo; // foo.n = foo = {n:2}; console.log(foo.x); console.log(bar.x); va 阅读全文
posted @ 2017-05-24 21:48 慕迪亚 阅读(362) 评论(0) 推荐(0)
摘要:json方法和对象比较 js操作json主要两种方法:stringify()和parse(),都是由内建对象JSON提供的 var str1 = '{ "name": "cxh", "sex": "man" }'; var str2 = { name: "cxh", sex: "man" }; // 阅读全文
posted @ 2017-05-08 19:39 慕迪亚 阅读(899) 评论(0) 推荐(0)
摘要:连续赋值与循环引用 连续赋值 以下两端代码的结果: var foo = {n:1}; var bar = foo; foo = {n:2}; foo.x = foo; // foo.n = foo = {n:2}; console.log(foo.x); console.log(bar.x); va 阅读全文
posted @ 2017-05-05 22:08 慕迪亚 阅读(320) 评论(0) 推荐(0)
摘要:js事件流 事件冒泡 从最具体的元素开始一层层向上传递,就是从元素本身一直到body html document window(远古ie8直到document); 事件捕获 从最不具体的元素开始一层层向下传递,同样是从window document html body element(远古ie不再支 阅读全文
posted @ 2017-04-26 11:31 慕迪亚 阅读(192) 评论(0) 推荐(0)
摘要:forin forof forEach $.each var andy = 'dog eat bone.'; var arr = []; traditional for 远古时候的for循环最常用也最经典。 for(let i = 0 ; i { arr.push(v) }) log(arr)//[ 阅读全文
posted @ 2017-04-25 21:51 慕迪亚 阅读(163) 评论(0) 推荐(0)
摘要:Array Array的属性: Array.length Array的方法: Array.of arrary新建数组 //of新建 Array.of(7); // [7] Array.of(1, 2, 3); // [1, 2, 3] //传统新建 Array(7); // [ , , , , , 阅读全文
posted @ 2017-04-21 23:09 慕迪亚 阅读(204) 评论(0) 推荐(0)
摘要:正则 var reg = /\bis\b/; 'is,is'.replace(reg,'IS')//'IS,is' // String.prototype.replace(reg,'IS')用第二个参数替换符合第一个正则的字符 g代表全文搜索(global) 'is,is'.replace(/\bi 阅读全文
posted @ 2017-04-20 11:12 慕迪亚 阅读(185) 评论(0) 推荐(0)
摘要:箭头函数 这是es6中一个很好的一个语法糖,简化了函数,特别是匿名函数这样的回调使用。 var sum = (num1, num2) = num1 + num2; 像这样可以简单的完成函数的表达式创建(只能匿名函数声明),如果要返回对象,要加上括号。 var sum = (num1,num2) = 阅读全文
posted @ 2017-04-18 23:13 慕迪亚 阅读(286) 评论(0) 推荐(0)
摘要:typeof以及 String方法属性 首先是各个数据类型的typeof typeof null //object typeof undefined //undefined //typeof string ,boolean等都是undefined,这些是未定义的变量 //undefined则是属性就 阅读全文
posted @ 2017-04-17 19:20 慕迪亚 阅读(207) 评论(0) 推荐(0)
摘要:map和set数据类型 map和set 这是两种新的数据类型,Map的出现主要是因为object对象的key无法用字符串以外的格式,像数字。 map var map1 = new Map([[1,'123'],[2,'123']]) //也可以 var map2 = new Map(); map2. 阅读全文
posted @ 2017-04-16 12:00 慕迪亚 阅读(192) 评论(0) 推荐(0)
摘要:js的栈与堆 堆heap与栈stack基本是所有的程序语言中都带有的,它将数据分配到内存空间来完成各种调用。(当然了,内存里除了heap和stack还有常量池。) 为啥要有heap和stack? 为什么会有栈内存和堆内存之分? 通常与垃圾回收机制有关。为了使程序运行时占用的内存最小。 当一个方法执行 阅读全文
posted @ 2017-04-15 11:30 慕迪亚 阅读(5186) 评论(0) 推荐(0)
摘要:谈一谈之前看到的一个问题代码所反映的问题。 function Parent(){ // 私有属性 var _val = 1; // 私有基本属性 var _arr = [1]; // 私有引用属性 function _fun(){} // 私有函数(引用属性) // 实例属性 this.val = 阅读全文
posted @ 2017-04-14 08:33 慕迪亚 阅读(770) 评论(0) 推荐(0)
摘要:原型 js中的原型是为了完成面向对象的功能,因此原型结合面向对象会更加容易理解。 1. 任何函数都是有prototype的, 2. 任何对象都有__proto__属性, 3. __proto__默认指向构造函数的prototype. 听起来很绕,其实很好理解,每个函数都可以看作一个工具,而proto 阅读全文
posted @ 2017-04-13 08:25 慕迪亚 阅读(234) 评论(0) 推荐(0)
摘要:重复输出字符串 在 String 对象上定义一个 repeatify 函数。这个函数接受一个整数参数,来明确字符串需要重复几次。这个函数要求字符串重复指定的次数。 所有的字符串的方法应该添加到String函数构造出的所有字符串上,首先应当判断是否已经有了这个方法,没有则添加。 最简单的循环方式: S 阅读全文
posted @ 2017-04-06 22:26 慕迪亚 阅读(1145) 评论(0) 推荐(0)
摘要:闭包(closures) 讲到闭包要先说一下数据类型: 基本数据类型: undefined,null,boolean,string,number 引用数据类型:Object,array,date,regexp,function 基本类型各自占据空间,赋值的时候是独立开来,引用数据类型都引用同一块地址 阅读全文
posted @ 2017-04-05 14:16 慕迪亚 阅读(106) 评论(0) 推荐(0)
摘要:[],{},()的问题 主要探究这三个的区别 /[/] var o = { wid:100, say:function(){ console.log('hello') } } console.log(o['wid']===o.wid);//true o "'say'" ;//hello 在变量中可以 阅读全文
posted @ 2017-04-04 22:56 慕迪亚 阅读(167) 评论(0) 推荐(0)
摘要:this指向 this只有在面向对象的时候才有意义,虽然是每个函数都有this,这是因为所有的函数都是定义在window对象上的方法,而方法只有在调用的时候才有this,指向那个调用自己的对象。 function as(a,b){ a = 2; b = 3; console.log(this)//w 阅读全文
posted @ 2017-04-02 22:15 慕迪亚 阅读(131) 评论(0) 推荐(0)

你的浏览器不支持canvas