前不久去一家公司面试js工程师,15道选择题,5道主观题,结果是js题目基本是做对了,但css相关的题目我基本都傻眼咯。
面试官给的评价是,js编程经验丰富,但css知识欠缺,知识都是停留在几年前的技术,最近几年没怎么学习。
面试的失败、成功并不在意,但他的这个评价确实把我点醒了,仔细想来最近今年忙着做项目确实没有认真的看过书了,所以买了《javascript权威指南》重新学习巩固下。在此把学习心得记录下来,也供今后参考参考。
这次仔细阅读时发现了许多以前的误解地方:
- 分号的使用
以前以为换行就代替了分号,确实不然
var x=1;f=2;a=3;b=4;
var y=x+f
(a+b).toString()
解析的时候会解析成
var y=x+f(a+b).toString();
所以必须要手动的添加分号才行。
var x=1;y=2;
x
++
y
console.log(y);
这里输出的结果是?
function getBoolean(){
return
true;
}
console.log(getBoolean());
这里的结果呢?
真是让小朋友惊呆了,以前一直以为自己js知识还过得去,现在仔细看这些,才发现js世界真奇妙,自己懂个皮毛而已。
总结:
如果当前语句和下一句无法合并解析时,js会用分号替代换行,这是通用规则。
但有2个例外:
例外1:碰到return、break、continue时,换行就处补分号。
console.log(getBoolean());会输出undifined
例外2:碰到++、–操作时,++、–会作为下一行代码的前缀操作符并与之解析
console.log(y);会输出3