JS笔试面试题(后续更新)
来源:互联网 发布:华为大数据研发岗累吗 编辑:程序博客网 时间:2024/06/06 04:08
1. 下面代码的运行结果是?
var length = 10;function fn() {console.log(this.length);}var obj = {length: 5,method: function(fn) {fn(); arguments[0](); }}obj.method(fn, 1);
答案:10 2
解析:首先,fn()执行时的this是指向window的,因为这个函数是作普通函数调用的,普通函数调用,this指向window。然后arguments代指实参数组,即 [function fn(){console.log(this.length); } , 1] ,然后这里的this是指这个数组,不是指window。所以调用arguments[0]()时,会打印这个数组的长度,即2.
2. 【百度2017实习生笔试题】填充calendar函数代码,使得页面的显示效果为下图:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>JS写简单日历</title><style type="text/css">body,html{padding: 0;margin: 0;font-size: 14px;color:#000;}table {border-collapse: collapse;width: 100%;table-layout: fixed;}/*border-collapse: collapse;为表格设置合并边框模型*/td,th {border: 1px solid #e1e1e1;padding: 0;height: 30px;line-height: 30px;text-align: center;}th{background: blue}.current{color:red;}</style></head><body id="body"><table><thead><tr><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th><th>日</th></tr></thead><tbody><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table><script type="text/javascript">function calendar(year, month) {}calendar(2017,6)</script></body></html>
即做一个小日历,如果是当前日期,则給单元格加红。
答案:
function calendar(year, month) {var bLeap = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;var nCount = [0, 31, bLeap ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] || 0;var nStart = new Date(year, month - 1, 1).getDay(); //获取1号是周几nStart = (nStart - 1 + 7) % 7; //从第几个位置开始填充// 当前var oNow = new Date();var nNowDate = oNow.getDate();//当前日期var bCurrent = oNow.getFullYear() === year && oNow.getMonth() + 1 === month;//判断是不是当前年份和月份// 渲染var aTd = [].slice.call(document.getElementsByTagName('td'), 0);var nVal = 1; //从1开始算法aTd.forEach(function (oTd, nIndex) {oTd.className = bCurrent && nVal === nNowDate ? 'current' : '';if (nIndex >= nStart && nVal <= nCount) { oTd.innerHTML = nVal;nVal++;}else {oTd.innerHTML = '';}});}
阅读全文
0 0
- JS笔试面试题(后续更新)
- 笔试题面试题(持续更新)
- JS面试题(持续更新)
- 常见的笔试面试题(持续更新)
- 程序员笔试面试题总结(不定时更新)
- ARM 笔试、面试题(摘录)__长期更新
- Java面试题总结(后续不断更新...)
- JS使用(后续更新)
- Flex笔试(面试题)
- 堆有关的面试题(后续补充)
- Android开发经典笔试面试题汇总(持续更新中)
- iOS开发经典笔试面试题汇总(持续更新中)
- c++ 笔试面试题 难题精选 持续更新
- 面试题(陆续更新)
- Java面试题集(笔试 )
- C#面试题笔试题(三)
- c/c++笔试面试题(1)
- c/c++笔试面试题(2)
- redhat6.3安装Keepalived+LVS
- LeetCode之路:237. Delete Node in a Linked List
- java多线程总结(3)
- 马踏棋盘问题
- qt中的connect函数
- JS笔试面试题(后续更新)
- 多线程-生产者消费者问题代码2并解决线程安全问题
- 一个检测特效是否丢失材质的脚本
- 承上的状态机图,又是烂图一副
- Android中<meta-data>的使用
- A
- Qt各种版本下载地址
- php通过ssh连接服务器
- <纠错本>隐式intent