DAY6:前端笔试题
来源:互联网 发布:淘宝关注人数怎么刷 编辑:程序博客网 时间:2024/06/02 12:02
NO.1写一个traverse函数,输出所有页面宽度和高度大于50像素的节点。
<pre name="code" class="html">function traverse(tNode) { var result = []; var root = tNode || document.body; if (root.nodeType !== 1) { return []; } var height =parseInt( getCurrentStyle(root, "height")); var width =parseInt( getCurrentStyle(root, "width")); if (height > 50 && width > 50) { result.push(root); } var childs = root.childNodes; for (var i = 0; i < childs.length; i++) { result = result.concat(traverse(childs[i])); } return result;}function getCurrentStyle(obj, attr) {if (obj.currentStyle) {return obj.currentStyle[attr];} else {return getComputedStyle(obj, false)[attr];}}
知识点:
1.
用document.getElementById(‘element').style.xxx可以获取元素的样式信息,它获取的只是DOM元素style属性里的样式规则,拿不到对于通过class属性引用的外部样式表;DOM标准里有个全局方法getComputedStyle;IE不支持此方法,它有自己的一个实现方式,那就是currentStyle;不同于全局方法getComputedStyle,它是作为DOM元素属性存在的,eg:obj.currentStyle["attr"];getComputedStyle(obj,伪类)["attr"]
2.
parseInt() 函数可解析一个字符串,并返回一个整数。
3.元素子节点
document.body.childNodes;element.childNodeschildNodes 属性返回节点的子节点集合,以 NodeList 对象
4.nodeType
元素1属性2文本3注释8文档9
NO2.请写一个表格以及对应的CSS,使表格奇数行为白色背景,偶数行为灰色背景,鼠标移上去时为黄色背景。
tr:nth-child(odd){background-color:black;}tr:nth-child(even){background-color:gray;}tr:hover{background-color:yellow;}<table class="table"> <tr><td>第一行</td></tr> <tr><td>第二行</td></tr> <tr><td>第三行</td></tr> <tr><td>第四行</td></tr></table>知识点:
1.表格布局
<table border="1"><tr><th>Heading</th><th>Another Heading</th></tr><tr><td>row 1, cell 1</td><td>row 1, cell 2</td></tr><tr><td>row 2, cell 1</td><td>row 2, cell 2</td></tr></table>显示结果:
css选择器
nth-child()
{
}
eg:
p:nth-child(odd)//奇
{
background:#ff0000;
}
p:nth-child(even)//偶
{
background:#0000ff;
}
(an + b)
描述:表示周期的长度,n 是计数器(从 0 开始),b 是偏移值。
eg:
p:nth-child(3n+0)
{
background:#ff0000;
}
NO3.写一个求和的函数sum,达到下面的效果
// Should equal 15
sum(1, 2, 3, 4, 5);
// Should equal 0
sum(5, null, -5);
// Should equal 10
sum('1.0', false, 1, true, 1, 'A', 1, 'B', 1, 'C', 1, 'D', 1,
'E', 1, 'F', 1, 'G', 1);
// Should equal 0.3, not 0.30000000000000004
sum(0.1, 0.2);
function sum(){ var result=0;for (var i=0;i<=arguments.length;i++){ if(typeof(arguments[i])=="number"){ result+=arguments[i];}else if(typeof(arguments[i])=="string"){if((/^\-?\d+\.?\d+$/).test(arguments[i])){ result+=parseFloat(arguments[i]);}}}return result.toFixed(3)*1000/1000;}
知识点:
arguments 对象
在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。
typeof(obj)
ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String。
typeof 返回
undefined - 如果变量是 Undefined 类型的
boolean - 如果变量是 Boolean 类型的
number - 如果变量是 Number 类型的
string - 如果变量是 String 类型的
object - 如果变量是一种引用类型或 Null 类型的
isNaN
isNaN() 函数用于检查其参数是否是非数字值。
如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。
toFixed()
toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
eg:
num.toFixed(保留位数)
NO.4删除给定数组中的第二项和第三项,并且在得到的新的数组中第二项后面添加一个新的值
var arr1 = ['a','b','c','d','e'];
var arr2 = arr1.1( 2 ,3 ,'newvalue')
字符串操作:
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
stringObject.slice(start,end)
一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
split() 方法用于把一个字符串分割成字符串数组
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
数组
join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join())
//George,John,Thomas
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join("."))
//George.John.Thomas
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
arrayObject.splice(index,howmany,item1,.....,itemX)
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX可选。向数组添加的新项目。
返回值 包含被删除项目的新数组,如果有的话。
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
arr.splice(2,0,"William")
//George,John,Thomas,James,Adrew,Martin
//George,John,William,Thomas,James,Adrew,Martin
- DAY6:前端笔试题
- 试做前端笔试题
- 前端笔试题
- 百度前端笔试题
- 前端笔试题
- 阿里前端笔试题
- 前端笔试题
- 前端笔试题
- 前端笔试题[1]
- 前端笔试题整理
- 前端笔试题
- 阿里前端笔试题
- 腾讯前端笔试题
- 新浪前端笔试题
- 迅雷前端笔试题
- 前端笔试题总结
- Web前端笔试题
- [前端笔试]我遇到的那些前端笔试题~
- SPFA模板
- 方向规划
- 二分模板
- 一步一步做一个linux文件传输软件(一)
- HDU 2462 The Luckiest number
- DAY6:前端笔试题
- VM10安装CentOS6.5网络配置
- sharepoint 2016 学习系列篇(6)-配置网站的备用网络映射
- js判断鼠标滚轮上下滚动
- 最小生成树和最短路径
- Ajax之联级菜单
- 黑马程序员—Java之面向对象
- http://blog.csdn.net/zhenhuakang/article/details/5317492
- prelink test