搜道
1、左边一个图片,右边
文字.....
.如何做到以下几点:HTML 语义化
宽度自适应
考虑图片放大,缩小,没有的情况
p 里面的连续英文需要换行
2、a:img 的 alt 与 title 有何异同?
b:strong 与 em 的异同?
3、清除浮动的方法,各有什么特点?
4 、写出下面 JS 的运行结果:
a:关于 javascript 的 this,具体代码没记住...因为我对 this 实在是不了解...
b:
var a = 10,b = 20,c = 10;
alert(a=b);alert(a==b);alert(a==c);
5、a:javascript 如何深度克隆一个对象?
b:javascript 如何消除一个数组里面重复的元素?
6、你玩微博吗?现有这样的字符串: @小甜甜(xiaotiantian) 或者 @小王的后宫(hougong123) ..这样的字符串如何在计算字数的时候,省略括号里面的内容?比如 @小甜甜(xiaotiantian) 他的长度应该是省略 (xiaotiantian) 这个字符串后的长度,就是 3. 你有多少种方法来实现,请写下代码。
其实当时坐了那么久的公交,人早有点晕了...胃很不舒服,但是在别人的公司里面,也不好说什么,只想快点搞完,去个通风的地方吹吹,缓解下.于是提笔就做了:
我的答案(里面有相关的说明):
1、
<div class="content">
<img src="" alt="" title="" />
<p>文字.....</p>
</div>
.content{text-align:left;}
.content:before, .content:after{content:"",display:table;}
.content:after{clear:both;}
.content{zoom:1;}
.content img, .content p{float:left;}
.content p{word-wrap:break-word;word-break:break-all;}
2、
alt(alt text):为不能显示图像、窗体或 applets 的用户代理(UA),alt 属性用来指定替换文字。替换文字的语言由 lang 属性指定。(在 IE 浏览器下会在没有 title 时把 alt 当成 tool tip 显示)
title(tool tip):该属性为设置该属性的元素提供建议性的信息。
strong:粗体强调标签
em:斜体强调标签
相同点:都起强调作用
不同点:a:em,2 个字母;strong,6 个字母.
b:em,强调;strong,更强烈的强调
c:em,表示内容的强调点;strong,表示内容的重要性
这个题目我当时只答了 alt 与 title 那个(是 2 选 1 的),strong 与 em 那个,说实话,真的只知道都是表示强调,一个粗体,一个斜体,其他的不知道,后面这些是我从网上找的,补上的...
3、
a:overflow:hidden
b:clear:both
c:clearfix:after 伪类
.cf:before, .cf:after {
content:"";
display:table;
}
.cf:after {
clear:both;
}
.cf {
zoom:1;
}
4、
a:这个确实是不会...this 指得我头都大了,而且对 JS 的 这个 this 还是不怎么理解.
b:杯具的是 alert(a=b); 我居然答 true...后面后悔死了...应该是 20,后面是 true 和 false
5、
a:JS 克隆对象,我也没答上来。。。原生 JS 太菜啊
网上搜索了一下,找到一个这样的函数:
function Object.prototype.cloneObj()
{
function NEWOBJECT(){};
NEWOBJECT. prototype = this;
var anObj = new NEWOBJECT();
for ( var ele in anObj )
{
if ( typeof anObj[ele] == “object” ) return anObj[ele]. cloneObj();
}
return anObj;
}
(没有看懂。。。)
b:这个消除数组里面重复的元素,我想到的就是双循环+判断来做的,当时的答案如下:
function getNewArr(oldArr){
if(typeof oldArr != "object") return oldArr;
var newArr = [];
var oldArrLen = oldArr.length-1, newArrLen = -1, flag = false;
for(var i=oldArrLen; i>=0; i--){
flag = false;
for(var j=newArrLen; j>=0; j--){
if(oldArr === newArr[j]){
flag = true;
break;
}
}
if(!flag) newArrLen = newArr.push(oldArr)-1;
}
return newArr;
}
这是我能想到的办法。。。其他的没想到。
6、
微博字数这个,我是这么答的。。
玩,qq 与网易微博。
我想到的方法如下:
a:使用正则替换掉 (XXX),然后使用 string.length 返回长度,代码:
function getStrLen(str){return (str.replace(/[(\w)]/g, "")).lenght;}
b:使用 indexOf 查找"("与")",记录相关位置,然后使用 str.subString()函数截取,得到新串,再.length 得到长度
后面这个实现当时没有给出具体的代码,因为当时快中午了,他们要下班了。。。所以我也就没写了,怕影响他们下班,主要还是自己菜,不能三下五除二的搞定。。
回来以后稍微写了下,代码如下:
function getStrLen(str){
return (str.substring(0, str.indexOf("("))+str.substring(str.indexOf(")")+1)).length;
}