JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object ,Function 是JS自带的函数对象。
怎么区分?其实很简单,凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。Function Object 也都是通过 New Function()创建的。
JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object ,Function 是JS自带的函数对象。
怎么区分?其实很简单,凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。Function Object 也都是通过 New Function()创建的。
闭包是Javascript常说的一个话题,面试官都问的问题,很多高级应用都要依靠闭包实现。
1 | 闭包是指那些能够访问独立(自由)变量的函数 (变量在本地使用,但定义在一个封闭的作用域中)。换句话说,这些函数可以“记忆”它被创建时候的环境。 |
要理解闭包,首先要弄懂Javascript的变量作用域。
递归是什么?
想个标题已经让我很纠结了,究竟是函数递归还是递归函数?
看了下MDN的说明是: 函数可以被递归,就是说函数可以调用其本身。
那递归就是函数的里面再调用自己,从而形成一个循环。
还是在实战才会学得更快,来战吧。
用递归计算阶乘:
1 | function factorial(n){ |
这里就是函数里,调用了自己不停的互乘。当运行factorial(5)
就不停计算 5*4*3*2...
的计算下去,但问题是这没有尽头呀!直到栈溢出抛出 Uncaught RangeError: Maximum call stack size exceeded(…) 也不会有返回值。
这种无尽的递归称为死递归,它和死循环一样恐怖。
“XXX,你现在在做什么啦?”
“我现在做前端开发啦~”
“擦,你不是一直做美工的吗?前端是什么鬼?”
“…”
不要拦住我,让我打死这丫的。
都怪当年,年少无知,在美工这个坑蹲的有点久。。。
今天的面试中,面试官问到一个问题是:你是怎么理解GET和POST这两个HTTP请求的?
这个我真没深究中他们中区别,一下子有点懵了…
我想了想就回答:GET是请求获取数据,POST是提交数据;GET没有POST安全,会把请求的东西暴露在URL上。
然后面试官蛋定的问:还有吗?
“没有了,我理解的就这么多了。。。”
“。。。”
经过个这轮尴尬的面试,回来后迫不及待的把GET与POST深挖出来:
今天在前端网,看到篇文章,里面有好几个JS结构的分析图,特别全面。也方便看着一点一点突破,原来JS涵盖的是非常多的。也看到了自己在那方面还不足和还没了解到的。数组都差点把我看晕了,但越难学越喜欢折腾。发现我越来越喜欢JS数组这块的学习了,简直是迷上了。。。像当年学习CSS动画的那股冲劲。
JavaScript提供了多种新增、移除、替换数组元素的方法,但是有些会影响原来的数组;有些则不会,它是新建了一个数组。
注意:区分以下两个方法的不同点:
记录一下数组利用indexOf去重和sort排序。
1 | var arr=[1,1,2,3,5,8,3,5,5,7,4]; |
在校时,就喜欢做网站,参加了学校的网页设计大赛,当时用ASP做了个PS学习站,还拿了二等奖。那时做网站还是主流是table布局,很多效果还有局限。到了快毕业那会,在网上接触到CSS布局,各种特效,网站的换肤最吸引我。那时就迷上了CSS,记得我常去的网站的520css学习CSS的各种属性和方法,如今,网站已不在了。
定义一个函数时,一定参数值往往需要一个默值,放便重复调用。
用if…else的简写:
1 | function sum(a,b){ |