卓动科技 - Coco游戏开发实习生面试总结
卓动科技 - Coco游戏开发实习生面试总结
js
的基本类型以及常用基本类型的内置对象
这个没啥难度,
js
的基本类型有:Null
, Undefined
, Number
, String
, Boolean
, Symbol
(es6
新的特性)。
复杂的类型就是引用类型,也就是常说的对象。
基本类型的内置对象有:Number
, Array
, String
,Boolean
,RegExp
,Function
等。
输出打印顺序
1 | console.log(1); |
这个也不复杂,setTimeout
的回调会到下一次的宏任务才执行。
所以输出的顺序为 1 3 5 2 4
。
输出打印
1 | function fn(x) { |
问x.x
,y.x
输出啥?
这道题当时粗心了,没在意这两个x
,结果掉坑里了。
这里的fn(3)
返回了window
。
var x = window
等价于window.x = window
。
所以x.x
输出的是window.x
也就是window
。
而y.x
就简单了,和前面的没啥关系,函数内部把x
赋值为4
。
所以y.x
的输出的就是4
。
输出数组
1 | var arr = []; |
这题我就记得这么多了,这题想一下还是不难的。
没赋值的位置就输出undefined
,所以第一个输出undefined
。
给arr[500]
赋值为1
,则现在数组的索引为0 - 500
。
所以长度(即输出)为501
。
arr["1000"] = 1
也是给第1001
个位置赋值。
所以输出的长度就是为1001
。
html
语义化
问这个语义化有什么用。
这里我答了能够让浏览器更好的识别内容,并且对辅助设备有作用,比如一些盲人的设备。
如果一个div
模拟input
,那么设备可能不知道。
而直接使用input
则可以相应的提示“这里需要输入东西”的语言之类的(后面看百度才知道是叫屏幕阅读器…)。
感觉这个答得太粗糙了。
看了下网上的回答,可以总结为以下几点:
- 有利于
SEO
搜索引擎; - 有利于屏幕阅读器理解网页的内容;
- 在
css
,js
失效时网页不至于太难看,应为语义化的标签一般都有默认的样式; - 有利于代码的编写,整体使用更少的标签。
DOM
题
创建10
个a
节点,点击a
节点输出他的索引序号
1 | for (let i = 0; i < 10; i++) { |
这个没啥难度…,还是写的出来的。