如何衡量一个人的Java水平
以下是我为了准备14年9月面试阿里所做的笔记节选:(仅仅是考察点,具体题目和扩展请自己思考)
基础1,什么是命名空间,变量污染,变量声明提升,预编译?如何检查一段代码执行后是否声明了全局变量?
2,隐式转换的种种规则
3,关于对象,对象的属性可能有哪些特性(attribute)?什么是原型链?如何检测某一属性是在对象中还是原型链中?如何检测是否是普通对象或空对象?写一个工厂模式?(工厂模式也有很多细节,具体可以参考《javascript模式》一书,不是《javascript设计模式》)
4,变量类型检测、特性检测以及异常避免
5,setTimeout的特性
6,数组几个API的手工实现
7,事件
8,正则表达式,至少要明白$1和\1的意思和几个API的用法。
9,javascript如何获得随机unicode字符?
10,JSON.stringify的参数传一个什么对象的时候不能处理?(可以试试JSON.stringify(window))11,fn.apply的第一个参数是context(函数运行的上下文),那么这个参数传一个数组会怎么处理?
DOM操作
1,实现一些API如getElementsByClass(有很多细节,参见司徒正美的博客)
2,各种宽度高度(clientHeight之类)的含义及各浏览器之间的差异性
3,实现一个带回调函数的插入DOM节点API(须考虑script标签、documentFragment)
CSS操作1,如何操作CSS的伪类和伪元素?2,如何检测改浏览器是否支持某个CSS3的特性? ajax操作1,get和post的区别及使用要点
2,http协议,包括格式、状态码,cookie操作
3,跨域
4,转换JSON的几种方式,JSON.stringfy有什么使用限制?
性能1,javascript有哪些性能优化的措施?可看《高性能javascript》
综合:各种插件的设计思路其他的html5相关和NodeJS相关暂略