字符串的转义 sad字段的值是对象。1 2 var str1 = '{"asd":"123","sad":{\"ert\":123213}}'; JSON.parse(str1)
1 2 3 sad字段的值是字符串。(有趣的部分) var str2 = '{"asd":"123","sad":"{\\"ert\\":123213}"}'; JSON.parse(str2) //sad为字符串,如何处理""部分
最外层str1字符串先处理一次 sad字段的值表示的字符串再经过处理。
1 var reg = new RegExp("\\d")
同样做\\d
作为字符串来先进行转义为\d
。
阅读此文
获取元素高度,触发layout,刷新classList,避免和后面同时添加 的class一起刷新。
1 2 3 element.classList.add('next' ); var x = element.clientHeight;
阅读此文
接触 踏入程序员圈子已经快一年。确切来说从2015年年初确定选择编程作为今后的职业发展开始。曾自学过java几个月,边看书边码字,记得那时候根本没搞明白java能干嘛。后来经过经过老婆熟识的一个客户介绍说,现在最火的是js,当时根本也搞不清楚前端时啥,后端是啥的。反正在职业选择的一个迷茫期,有高人指点,也确实让我离开了这个困惑时期。其实直到最近才明白一句话,一入前端深似海,回想当时怎么有那个勇气转行的。后来的事情就一路顺利了,网上认识一位大神,入了他的群,并且听了他的建议去了某培训机构学了2个月,开始找工作。这时候对编码也算是入了门了。
认知 时间过得飞快,工作了也有8个月时间,期间受到各同事照顾,期间学了很多前端有关的东西。 html
css
js
的各种奇异技巧学了很多。
熟知 未完待续。。。
阅读此文
javascript中的this 先来看个例子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 var name = "Bob" ;var nameObj ={ name : "Tom" , showName : function ( ) { alert(this .name); }, waitShowName : function ( ) { setTimeout(this .showName, 1000 ); } }; nameObj.waitShowName();
一般而言,在Javascript中,this指向函数执行时 的当前对象
The this keyword is relative to the execution context, not the declaration context.
当没有明确的执行时的当前对象时,this指向全局对象window。
1 2 3 4 5 6 7 8 9 var obj = { bar: "bar" , foo: function ( ) { console .log(this ); } }; obj.foo(); var bar = obj.foo; bar()
在浏览器中setTimeout、setInterval和匿名函数执行时的当前对象通常是是全局对象window,当然也有例外
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 foo(function ( ) { console .log(this ) }); el.addEventListener('click' , bar, false ); function foo (fn ) { fn.call({}); }
1 2 3 4 5 6 7 8 9 10 var name = "window" ;var Bob = { name: "Bob" , showName: function ( ) { eval ("alert(this.name)" ); } }; Bob.showName();
当然还有很多很多例子, 涉及 new 还有es5中的 call,apply,bind, 以及es6中的() => {}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 var obj = { foo: function ( ) { setTimeout(function ( ) { console .log(this ) }.bind(this )) } } obj.foo(); var obj = { foo: function ( ) { setTimeout(() => { console .log(this ) }) } } obj.foo(); var obj = { foo: () => { setTimeout(() => { console .log(this ) }) } } obj.foo();
lambda表达式:
要计算x的平方加2
(λx.x*x)(λx.x+2 )
假如用js来写
(function (x ) { retrun x + 2 ; })((function (x ) { return x*x })(N))
es6可以写成
(x => x + 2 )((x => x * x)(N))
不一一列举了。
阅读此文