無標題文檔

逗号「,」引发的血案

为了更好的说明问题,首先引出下面的题目

//请说明下面变量 a-d 的值
var a = [[1][1]];
var b = [['a','b','c'][1]];
var c = [['a','b','c'][1], ['a','b','c']];
var d = [['a','b','c']['length'], ['a','b','c']];
var e = [['a','b','c']['father', 'child', '0'], ['a','b','c']];

首先理解表达式

var a = [[1][1]];

的含义。我们可以将这个语句拆分下

var tmp = [1];
var a = [tmp[1]];

就能非常好的理解,实际上 a 中的数组元素取得是 tmp[1] ,它并没有定义,所以值为 undefined 。那么

var b = [['a','b','c'][1]];

就很容易理解为 ['b'] ,因为数组紧跟的后面是下标表达式。同时,数组也是个对象,它有相应的属性值,并且可以使用关联数组表示,于是

['a','b','c']['length']

的含义就是

var tmp = ['a','b','c'];
console.info(tmp.length);

取的是 ['a','b','c'] 的长度,所以是 3 。而

['a','b','c']['father', 'child', '0']

后面的 ['father', 'child', '0'] 实质上是表达式,而不是数组。所以简化以后就是

['a','b','c']['0']

那么返回的就是 ['a'] 。这就让我们需要在实际的编码过程中,需要注意数组中的逗号「,」是否已经正确的加上,否则就会得到非期望的结果。

几条经典的 CSS Tips

MacJi 「偷懒」翻译了部分 ,下午冒着被 BOSS 开除的危险将其补完( 原文链接 )。

使用 line-height 垂直居中

line-height:24px;

使用固定宽度的容器并且需要一行垂直居中时,使用 line-height 即可(高度与父层容器一致),更多的垂直居中总结可以 看这里

清除容器浮动

#main {
    overflow:hidden;
}

期前也提到过这样的问题 ,更多信息可以看 这里

不让链接折行

a {
    white-space:nowrap;
}

上面的设定就能避免链接折行,不过个人建议长链接会有相应的这行(有关换行方面的讨论, 参看圆心的记录 )。

始终让 Firefox 显示滚动条

html {
    overflow:-moz-scrollbars-vertical;
}

更多的 Mozilla/Firefox 私有 CSS 属性可以 参考这里 。需跨浏览器的支持,也可以使用

body, html {
    min-height:101%;
}

使块元素水平居中

margin:0 auto;

其实就是

margin-left: auto;
margin-right: auto;

这个技巧基本上所有的 CSS 教科书都会有说明,别忘记给它加上个宽度。Exploer 下也可以使用

body{
    text-align: center;
}

然后定义内层容器

text-align: left;

恢复。

隐藏 Exploer textarea 的滚动条

textarea {
    overflow:auto;
}

Exploer 默认情况下 textarea 会有垂直滚动条(不要问我为什么)。

设置打印分页

h2 {
    page-break-before:always;
}

page-break-before 属性能设置打印网页时的分页。

删除链接上的虚线框

a:active, a:focus {
    outline:none;
}

Firefox 默认会在链接获得焦点(或者点击时)加上条虚线框,使用上面的属性可以删除。

最简单的 CSS 重置

* {
   margin: 0; padding: 0
}

如果想「复杂」,参考 YUI 的做法 (还有 这里 )。原文留言中也有用户说了他们的观点

I have to agree with Niall Doherty, * {margin: 0px; padding: 0px;}
basically means "traverse every css element and give it these 
attributes". That is a very unnecessary strain on the server and 
a bad semantic practice, as you have to give some elements 
padding/margin again, after stripping them.

避免无谓的争端

很多道理其实大家都晓得,但是在这里我还是要重申一下。

目前的网络现状 ,我会竭力避免讨论时·政。如果你真的想在我这里寻找些什么,或者想让我说些什么;那么不好意思,天涯可能更适合你。

我对本人输出的内容负责,但这并不代表本人的内容完全就是正确的。

我也在每天上班,我也会很忙,这就是为什么我会推脱你的「要求」的理由。任何的技术问题,只要利用 Google 和你的思考,相信都会找到你想要的。

不要「建议」我写什么,坦白的讲,我自己都不知道我后天会写什么内容 -- 我只是记录每天我碰到的事务(这有些并非我主观所能控制的)。

请不要在留言中发表无谓的内容,类似的「沙发」等留言,这真的让人很难堪(虽然我不会删除它们)。

我不是专业撰稿者,我也没有必要每天看哪些网站是否更新 -- 我只关心我所关心的事情,这很容易理解。

本人的 Blog 没有盈利( 也从没有想过要盈利 ),因此请不要问那些「开 Blog 赚了多少钱」等问题。还有, 我不关心统计数据

本人的 Blog 从来不会转帖别人的文章,并且我也不会反感别人转帖我的文章(因为那是我的荣幸)。但请务必署上原文连接,这是道德和责任心的问题。

最后,不要试图说服些什么,我是个心智健全的成年人,自己有分辨是非的能力。在我尊重您话语的前提下,请您也允许我保留个人观点的权利。

--EOF--

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章