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