Skip to main content

搜道

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;

}