<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
<channel>
 <atom:link href="https://216.189.52.26:3333/users/1/web_requests/29/zhihufrontend.xml" rel="self" type="application/rss+xml" />
 <atom:icon>https://216.189.52.26:3333/favicon.ico</atom:icon>

 <title>知乎_前端开发</title>
 <description>知乎 前端开发节点</description>
 <link>https://216.189.52.26:3333</link>
 <lastBuildDate>Tue, 24 May 2016 01:15:59 -0700</lastBuildDate>
 <pubDate>Tue, 24 May 2016 01:15:59 -0700</pubDate>
 <ttl>60</ttl>
 <item>
  <title>



自学前端这个水平会有公司要我吗？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10724511" data-action="/question/detail"&gt;


&lt;textarea class="content hidden"&gt;本人专科学历，目前大三，六月就毕业了。去年也找了个仪表公司实习，说是硬件工程师，其实是给别人当杂工搬东西。不想一辈子就这样下去，于是从过年开始自学前端。争取以后当个全栈工程师（因为名字比较牛逼）。&amp;lt;br&amp;gt;-----------------------------------------------------------------------------------------------------------------&amp;lt;br&amp;gt;每天4-8个小时学了有两个月了。目前html和css基本可以熟练写出来。懂得基本的js基础，jquery反而比较熟悉，因为jquery比js更加简单易学，我先上手的jquery。能够熟悉使用css库bootstrap。对于angularjs只能说过了一遍教程，知道是怎么回事，目前还在继续学习中。 后台方面完整学了PHP和一点MySQL，能够简单的编写php和mysql通讯。基本情况是这样，下面说下我最近做的作品，虽然比较简陋。&amp;lt;br&amp;gt;---------------------------------------------------------------------------------------------------------------&amp;lt;br&amp;gt;因为参照知乎大神的说法，一个非专业出生的菜鸟想要转行，最好就是能够带一个作品去打动HR，于是我就做了一个知乎（笑），叫《问提社区》,其实就是一个简化版的论坛，从前端到后台都是我一个人完成的。&amp;lt;br&amp;gt;---------------------------------------------------------------------------------------------------------------&amp;lt;br&amp;gt;&amp;lt;p&amp;gt;主要功能：&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;会员：提问题/回复评论/点赞/更换主题/更换头像等等等。&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;游客：浏览帖子。&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;社区：登陆/注册/更改各种账户设置/发帖/回复支持图片和排版等等。&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;运用的技术：&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;html+css：社区共有5-6个页面，html格式规范，语义化明显。结构样式分离。&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;js+jquery：页面的交互等功能大多数用jquery，代码良好，各种注释。并且动态加载html页面，jquery代码模块化。&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;php：后台的数据读取/写入。各种数据的验证，负责和mysql对接。&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;mysql：一些数据的表（问题表/评论表/用户表等等）。负责数据写入/读取/查询。&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;xampp：在本地虚拟apache服务器和mysql服务器。&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;umeditor:文本框架让社区提问/回复功能拥有格式排版，并且能够支持图片/视频/地图的上传。&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;---------------------------------------------------------------------------------------------------------------&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;由于没有服务器就来几张截图吧。&amp;lt;/p&amp;gt;&amp;lt;img src="https://pic4.zhimg.com/084442e9b68a2cd6a165f161a510704b_b.png" data-rawheight="632" data-rawwidth="1346" class="origin_image zh-lightbox-thumb" width="1346" data-original="https://pic4.zhimg.com/084442e9b68a2cd6a165f161a510704b_r.png"&amp;gt;&amp;lt;img src="https://pic3.zhimg.com/ef2b74048251a1718a2c8cf6d9bb7a2e_b.png" data-rawheight="617" data-rawwidth="1345" class="origin_image zh-lightbox-thumb" width="1345" data-original="https://pic3.zhimg.com/ef2b74048251a1718a2c8cf6d9bb7a2e_r.png"&amp;gt;&amp;lt;img src="https://pic3.zhimg.com/f81c872721bfd12a9789e3f441314932_b.png" data-rawheight="617" data-rawwidth="1347" class="origin_image zh-lightbox-thumb" width="1347" data-original="https://pic3.zhimg.com/f81c872721bfd12a9789e3f441314932_r.png"&amp;gt;&lt;/textarea&gt;
&lt;div class="zh-summary summary clearfix"&gt;
本人专科学历，目前大三，六月就毕业了。去年也找了个仪表公司实习，说是硬件工程师，其实是给别人当杂工搬东西。不想一辈子就这样下去，于是从过年开始自学前端。争取以后当个全栈工程师（因为名字比较牛逼）。&lt;br&gt;-----------------------------------------------------------------------------------------------------------------&lt;br&gt;每天4-8个小时学了有两个月了。目前html和css基本可以熟练写出来。懂得基本的js基础，jquery反而比较熟悉，因为jquery比js更加简单易学，我先上手的jquery。能够熟悉使用css库bootstrap。对于angularjs只能说过了一遍教程，知道是怎么回事，目前还在继续学习中。 后台方面完整学了PHP和一点MySQL，能够简单的编写php和mysql通讯。基本情况是这样，下面说下我最近做的作品，虽然比较简陋。&lt;br&gt;---------------------------------------------------------------------------------------------------------------&lt;br&gt;因为参照知乎大神的说法，一个非专业出生的菜鸟想要转行，最好就是能够带一个作品去打动HR，于是我就做了一个知乎（笑），叫《问提社区》,其实就是一个简化版的论坛，从前端到后台都是我一个人完成的。&lt;br&gt;---------------------------------------------------------------------------------------------------------------&lt;br&gt;&lt;p&gt;主要功能：&lt;/p&gt;
&lt;p&gt;会员：提问题/回复评论/点赞/更换主题/更换头像等等等。&lt;/p&gt;
&lt;p&gt;游客：浏览帖子。&lt;/p&gt;
&lt;p&gt;社区：登陆/注册/更改各种账户设置/发帖/回复支持图片和排版等等。&lt;/p&gt;
&lt;p&gt;运用的技术：&lt;/p&gt;
&lt;p&gt;html+css：社区共有5-6个页面，html格式规范，语义化明显。结构样式分离。&lt;/p&gt;
&lt;p&gt;js+jquery：页面的交互等功能大多数用jquery，代码良好，各种注释。并且动态加载html页面，jquery代码模块化。&lt;/p&gt;php：后台的数据读取/写入。各种数据的验证，负责和mysql对接。…
&lt;a href="javascript:;" class="toggle-expand"&gt;显示全部&lt;/a&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
谢邀。&lt;br&gt;首先我也是同题主一样，今年刚好大三。而且好运参加了今年的实习招聘并拿到某讯的offer。所以刚好回答一下题主的问题。就题主写的个人技能评价来说，有些略显单薄。我所接触到互联网公司在招聘前端岗位的时候，所注重的不仅仅只有html css js这些，还关注于计算机网络，操作系统，前端安全，数据结构和算法，前端新技术这些，所以我觉得我好运的原因就是我在面试的时候碰到面试官这方面的问题我都略有了解。至于前端的重点js就要看面试官了，有的会问很多，会问的比较深入，有的也只提一点。所以我个人看来，js的一定要熟。我不清楚题主的水平到底到了什么程度，不过至少要能全部理解《js高级编程》这本书的水平应该就可以了。如果有别的闪光点，尤其是nodejs方面的理解，那就更好了。还有模块化，promise之类。至于服务端开发，我感觉是至少会一门，最好是nodejs。我看了下题主的作品，题主应该没问题。看看php的一些考点，和node的区别，mysql的引擎之类的也就差不多了。题主的作品在应届生里已经很多错了，最好能上线，是一个闪光点。对了，如果题主能参与或发起一些来源项目，我估计就稳妥了。对了，简历很重要
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46276690/answer/100713215</link>
  <guid isPermaLink="false">1154448</guid>
  <pubDate>Fri, 13 May 2016 03:55:04 -0700</pubDate>
 </item>
 <item>
  <title>



React 组件设计思路？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10406048" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;最近在开发一些通用的 React 组件，但是当一个组件功能越来越多，比如：&lt;br&gt;&lt;br&gt;椅子 VS 带轮子的黑色真皮椅&lt;br&gt;&lt;br&gt;不想把所有可能的功能集成到一个组件下（例如某 dataTable 插件几千行代码。。。），我的想法是组件独立：椅子、带轮子的椅子，但是继续增加功能点的话，组件的数量是指数级的（排列组合），也想到用高阶组件的方式去组合。&lt;br&gt;&lt;br&gt;现在比较迷惑，总觉得没有完美的方式。软件开发中，这种情况业界有一些比较认同的思想去解决吗？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
写通用组建比写项目组建复杂度提升很多。我能想到三种方式，高阶组件，wrapper，属性。&lt;br&gt;&lt;br&gt;高阶组件 higher order component：首先要搞清楚什么是高阶组件，这是一个参数和返回值都是React Component的函数，一般给组建添加比较通用的功能的时候用。 比如题主例子里带轮子的就适合使用高阶组件实现，它可以被抽象出来用于不同的组件。 比如 带轮子的() 这个高阶组件，可以接受 &amp;lt;桌子&amp;gt; 或者 &amp;lt;椅子&amp;gt; 当参数，返回 &amp;lt;带轮子的椅子&amp;gt; 或者 &amp;lt;带轮子的桌子&amp;gt;。 如果要对这个轮子做自定义，那么可以变成 带轮子的(options)(组件)的形式。&lt;br&gt;&lt;br&gt;wrapper就是一个容器组件，比如一个桌子，上面摆了各式各样的东西，那 桌子 这个组件就是wrapper，并对自己的children做规范。 使用实例就是 &lt;br&gt;&amp;lt;桌子 大小={500}&amp;gt;&lt;br&gt;    &amp;lt;笔 /&amp;gt;&lt;br&gt;    &amp;lt;纸 /&amp;gt;&lt;br&gt;    &amp;lt;... 其他什么东西 /&amp;gt;&lt;br&gt;&amp;lt;/桌子&amp;gt;&lt;br&gt;&lt;br&gt;属性就好理解了，就是对组件本身定义。&lt;br&gt;&lt;br&gt;题主的例子 带轮子的真皮黑色椅子 就可以理解为带轮子是一个功能，能适用于其他组建，黑色和真皮都是描述这个椅子的，所以用属性。 就是&lt;br&gt;带轮子的(&amp;lt;椅子 材质="真皮" 颜色="黑色" /&amp;gt;)。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/45484086/answer/100685814</link>
  <guid isPermaLink="false">1153082</guid>
  <pubDate>Fri, 13 May 2016 01:54:14 -0700</pubDate>
 </item>
 <item>
  <title>



花整个大学的时间研究前端好吗？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10696744" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;现在大一（女生），对于后端开发感觉自己学不下去也没兴趣，正在自学前端基础，想成为前端工程师，想花大学这几年好好学前端，这值得吗？现在确定方向会太早了吗？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
等你学了前端你就会想去接触后端的，哈哈。不过前端的确也没有像前面有人说的花几个月就能学好的。web前端的范围还是比较广的，尤其现在前端在开发中承担越来越多的责任。&lt;br&gt;如果真的要把前端做好，用大学四年的时间来学习是可以的，当然这个学习要包括很多的项目经验，个人认为前端可以走两条路线：&lt;br&gt;1.偏设计。前端是最靠近用户的一个领域，你可以把页面做得很好看，交互做得很舒服。一般比较大的公司会有专门的ui工程师，你可以在学习前端的同时学习设计。其实css也没有想象的那么容易，要做出好看的效果不仅需要基础扎实，还需要有想象力、设计能力以及很大的脑洞。&lt;br&gt;2.偏业务逻辑。你喜欢做业务，享受实现业务逻辑的过程，那你需要很多的项目经历，你需要有后端的支持，或者自己学点简单的后端（后面基本都会接触后端的）。偏业务的话你需要能够深刻理解需求，然后你需要加快自己的开发速度。在一些公司这一块是由后端做的，不过现在越来越多的公司都把这一块让前端来做了。为了加快速度你肯定会接触很多的前端框架、类库、组件库等，甚至自己也会开发一些组件库，所以，也不是很单调呀~&lt;br&gt;3.专注js开发。并不是说javascript是一门多么好的语言，只是它现在实在太火了。web客户端脚本基本都是js，现在node.js的兴起又让js在服务端领域也风生水起。另外js在桌面端也有了自己的一席之地，总之还是很有前景的。&lt;br&gt;反正就看自己的兴趣吧！另外，后端也是很好玩的！
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46207738/answer/100690355</link>
  <guid isPermaLink="false">1153081</guid>
  <pubDate>Fri, 13 May 2016 01:54:14 -0700</pubDate>
 </item>
 <item>
  <title>



深圳不是说很缺前端吗？为什么我找了半个月工作还是没找到前端的工作？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10708424" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;之前下班每天坚持自学四个小时以上，学了四个月。比较熟悉html、css，会用jquery、js写一些常见的动画，仿了一些页面。但是投了挺多简历，结果大部分都是培训机构通知我去面试。正常的公司都想要能独立做项目的。我对待遇要求不高，想先学好技术，真正入门，怎么找工作那么难呢？&lt;br&gt;在深圳做前端的知友们，如果可以的话帮我推荐一份要求不那么高的前端工作，感激不尽&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
1、题主你自己都说了正常的公司都想要能独立做项目的，既然你达不到要求，那么没人要是非常合情合理的。&lt;br&gt;2、你是想进到公司里面去学技术吗，既然你做不了事情，那么公司凭什么要给你发薪，还得供着你学习呢？&lt;br&gt;3、公司不是学校，也不是慈善机构，不养闲人。&lt;br&gt;PS：待遇要求不高可以具体一点吗。2000、3000还是5000呢？这些是完全不同的概念，如果你达不到别人的要求，那么你愿意为此付出什么呢？会愿意降低待遇要求，甚至以无偿工作来换取学习和成长的机会吗？
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46236752/answer/100668003</link>
  <guid isPermaLink="false">1150614</guid>
  <pubDate>Thu, 12 May 2016 23:54:20 -0700</pubDate>
 </item>
 <item>
  <title>



丧失了思考的能力，该怎么办？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10711851" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;本人是一名设计师，算了，还是称之为美工吧。在一家旅游公司作图，以淘宝美工这个职业，艰难的存活在这个时代。说说工作，详情页出图，可以说完全照抄别人的版式来做的，偶尔会出现几个自己花心思做的图，个人也认为不错。没有很高的要求，时间很赶，就像做图机器一样，靠产量来决定，上班时间大概10个小时。现在发现大脑已经无法正常运行了，很死板的套路，花了很长时间也无法做好一张图了。但是要我去模仿可以很快实现，内心是拒绝的。现在的状态，没人可以交流，美工单独的一间，除了客服就是客服了，内心还是充满孤独的，可是又无法做出很洒脱的样子，我可以一直做着不动一天，行为和表达很僵硬，想要和别人亲近些，发现沟通都有点障碍了。大部分时间就是作图，看新闻。屌丝味十足。这里吸引我的无非就是点工资了，4.5k，吃住也算不错。这是我在其他任何一家，可能都拿不到的。我理想的状态是每天回寝室看课程来提高自己，但发现也只是看过而已，明天还是一样，感觉陷入死循环。阿，这死板的大脑。本人很喜欢收集大量的课程，在云盘中。之前学的ui(培训机构)，所以都懂点，就只是懂点，也只能是廉价劳动力了，现在有了好课程，比如ui，网页，手绘。课程好长阿，时间都是一个小时以上，扣扣手机，回去就没时间看了。我希望能成为会手绘的ui，懂前端的代码(只是基本，够用来切图)。能够在一线城市发展几年。今年最关键了，出去要不然就废了，要不然带着自学的技能，冲出去，拥有一片小小的天空。本人连大专都不是，但涉足了这一行，不关是技术，学历也受到很大的限制，但入这行，感觉已经回不了头了，即使没学历的同学靠着手艺，也可以活的很不错。而我很焦虑，过的很累，也没去努力过，觉得努力也没什么用了，有时候充满了悲观失望，但还是这样的生活着。可能说的跑题了，或许我只是想好好的释放一下。&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
做一点与你本职工作无关（也不是完全没有关联），能够辅助你本职工作的其它工作，调节你的思维，比如你画图画多了，可以玩玩程序，代码写多了，画画图，代码和图弄多了，爬爬山，拿笔纸画画，或者练习下英文书法等等。&lt;br&gt;看看电影，正太的，萝莉的，色情的，看看动漫，实在不行打打飞机。&lt;br&gt;还有，多上google看老外的东西，文章等等，不一定看那些知名的，根据情况感兴趣的搜索即可。你会发现很多东西真的很棒！
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46245352/answer/100668715</link>
  <guid isPermaLink="false">1150613</guid>
  <pubDate>Thu, 12 May 2016 23:54:20 -0700</pubDate>
 </item>
 <item>
  <title>



怎样才能写出一个兼容性很好的网站？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="2968784" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
那第一个问题肯定是，你要兼容哪些设备上的哪些浏览器？&lt;br&gt;这是必须明确的前提，否则谈兼容就毫无意义了。这将是所有兼容策略的出发点。&lt;br&gt;具体的兼容手段实在很多，说也说不完，处理兼容问题的方式大概有两类：&lt;br&gt;1. 对不兼容的特性进行封装，使其对开发人员一致。polyfill和shim即是这类思想，有一些库也为浏览器兼容做了很多努力，如jQuery.&lt;br&gt;2. 体验差异化处理。在兼容性不好的浏览器里提供基本支持，而在更优秀的浏览器里做更完美的实现。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/26964522/answer/100674488</link>
  <guid isPermaLink="false">1150612</guid>
  <pubDate>Thu, 12 May 2016 23:54:20 -0700</pubDate>
 </item>
 <item>
  <title>



极客学院推出的5k左右的前端就业班值得报名学习吗？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="6851176" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;本人今年环境工程本科毕业，来到一家小的制造业企业做EHS，可是公司不会重视EHS这块，自己现在也是做一些打杂的活，还在职。&lt;br&gt;于是想另寻出路，长远打算，准备入行互联网，现在从前端入手，已经学习了一个半月，都是在空闲的时间通过看书（head first系列），和观看一些视频来自学。现在感觉学习进度慢了很多，而且也没啥实战经验。所以就想到报名培训班，可通过在知乎上了解的信息，发现那些线下的培训班，不但价格高，效果也不好，还有被骗的风险，于是放弃这方面的考虑。&lt;br&gt;这两天我又在极客上看到他们有推出web前端线上的培训课程，费用5k的样子，而且学习时间也比较自由，我想问一下极客学院靠谱不？这样的培训班值得一报吗？最好有正在学习的同学来说一下体验，或者各位大神能给我指点一下学习方法，感谢各位！&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
&lt;p&gt;我参加极客学院就业班的理由很简单，就是希望在最短时间里学会IOS的开发，最早接触极客学院是在去年12月左右，当然也接触了别的学习网站比如慕课网等，但还是被极客学院比较完善的视频库所吸引。当时是充了会员，看的是一些python的相关课程，创业伙伴回去上班后，我就想自己学习APP开发，但是后来发现，自己看视频，知识不成体系，自己不知道一个完整的APP开发周期所需要的知识点，就不能针对性的找相关知识点的视频来学习，这就浪费了很多时间，自己看视频也没有练习题巩固，囫囵吞枣的看到后面，前面看的可能又忘了，这样会浪费掉很多时间。春节过后看到IOS就业班，就毫不犹豫的报名了，成了第四期就业1班第一个加群入班级群的同学。&lt;br&gt;   极客学院就业班的课程设计类似一些游戏里的解锁过关设计，不完成当前任务就无法进入下一任务，根据当前任务完成情况给予对应的激励，不得不说这个激励效果很好，同学们都力求完善拿到奖励。作业布置和所授课程是有关联性、一致性和扩展性的，作业有点难，却又没有难到解决不了，通过作业的完成可以巩固概念，加深理解，也慢慢的培养未来程序员们解决问题的方式或者方法。&lt;br&gt;  报名就业班后，我将自己的社交应酬时间降到了最低，休息的时间也压缩了，有时候加班回来，很累也很想直接休息，但一想到任务倒计时剩余时间一直在无情的减少，只能再次打开电脑......&lt;/p&gt;
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/36610007/answer/100674765</link>
  <guid isPermaLink="false">1150611</guid>
  <pubDate>Thu, 12 May 2016 23:54:20 -0700</pubDate>
 </item>
 <item>
  <title>



javascript中var变量的声明和赋值分开的意义是什么？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10701242" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;其实问题的问法不太准确，希望有能get到我想说的点的朋友帮我公共编辑一下。&lt;br&gt;前端小白一枚，在对作用域链的案例中发现一些不太明白的地方。希望能得到大神的指导，先谢过。&lt;img src="https://pic1.zhimg.com/8b5e8e6d61f8b894d12bdc7c6c935b80_b.png" data-rawwidth="1095" data-rawheight="548" class="origin_image zh-lightbox-thumb" data-original="https://pic1.zhimg.com/8b5e8e6d61f8b894d12bdc7c6c935b80_r.png"&gt;&lt;br&gt;想说的都在图里，在我的理解里，没有var 就相当于是全局变量，此例中就可以将全局变量的值给覆盖，为什么会是查找失败呢？难道赋值和声明分的如此的清楚？希望大神解惑。小白自学不容易&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
实验说话，把var foo=1删除，会发现结果没变，所以第二次查询是成功的，并不是b()里面的foo没声明就查询失败，--------------------------------不请自来，不喜勿喷，纯属个人理解，仅供参考，后果自负。---------------------------------------------------&lt;br&gt;1.首先，你有没有怀疑过你看到的这个文档对这部分的描述是否正确？&lt;br&gt;2.我是个新手，昨天刚看的作用域这部份内容，javascript高级程序设计。在函数查询变量时，是从最前端开始查，查到了想要的变量名就会停止.&lt;br&gt;3.你的这个函数查到第二个作用域时查到了foo，此时foo没有用var声明，你调用的函数把这个foo理解成全局变量，这次查询是有效的，根据javascript的查询机制，到这里查询就停止了，也就是说，其实第二次查询成功了！
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46218865/answer/100666908</link>
  <guid isPermaLink="false">1150610</guid>
  <pubDate>Thu, 12 May 2016 23:54:20 -0700</pubDate>
 </item>
 <item>
  <title>



一个关于js的变量赋值和变量声明的疑问？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10701741" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;
&lt;img src="https://pic1.zhimg.com/8b5e8e6d61f8b894d12bdc7c6c935b80_b.png" data-rawwidth="1095" data-rawheight="548" class="origin_image zh-lightbox-thumb" data-original="https://pic1.zhimg.com/8b5e8e6d61f8b894d12bdc7c6c935b80_r.png"&gt;&lt;br&gt;为什么foo只是赋值，而没有声明？没有加var的变量不是就相当于全局变量吗？本人小白，望大神解答。&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
看黄书《你不知道的JavaScript（上卷）》&lt;br&gt;1.注意有var和没var&lt;br&gt;2.感觉作用域是比较自然的，这上面写的反而弄的复杂，你这个是嵌套的自内向外找，注意又var和没有var（变量的遮蔽和赋值，另外非严格模式未声明过的变量没有var会创建个全局变量）就可以，而比如是在b里用var foo=3；在c里调用一个全局里声明的function d(){console.log(foo)}  这个时候就要仔细看js的作用域了，这个foo是多少
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46220084/answer/100645838</link>
  <guid isPermaLink="false">1148121</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



javascript call不解的地方，上代码?


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10701714" data-action="/question/detail"&gt;


&lt;textarea class="content hidden"&gt;call在这里有什么用,在es6中有什么比较优雅的写法吗？&amp;lt;br&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;div class="highlight"&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;code class="language-js"&amp;gt;&amp;lt;span class="nx"&amp;gt;Router&amp;lt;/span&amp;gt; &amp;lt;span class="o"&amp;gt;=&amp;lt;/span&amp;gt; &amp;lt;span class="kd"&amp;gt;function&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;)&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{&amp;lt;/span&amp;gt;
  &amp;lt;span class="kd"&amp;gt;function&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;router&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;req&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;,&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;res&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;,&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;next&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;)&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{&amp;lt;/span&amp;gt;
    &amp;lt;span class="nx"&amp;gt;router&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;dispatch&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;req&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;url&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;,&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{&amp;lt;/span&amp;gt;
      &amp;lt;span class="nx"&amp;gt;request&amp;lt;/span&amp;gt;&amp;lt;span class="o"&amp;gt;:&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;req&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;,&amp;lt;/span&amp;gt;
      &amp;lt;span class="nx"&amp;gt;response&amp;lt;/span&amp;gt;&amp;lt;span class="o"&amp;gt;:&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;res&amp;lt;/span&amp;gt;
    &amp;lt;span class="p"&amp;gt;},&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;next&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;);&amp;lt;/span&amp;gt;
  &amp;lt;span class="p"&amp;gt;}&amp;lt;/span&amp;gt;

 &amp;lt;span class="p"&amp;gt;........&amp;lt;/span&amp;gt;

  &amp;lt;span class="c1"&amp;gt;// always good to have options&amp;lt;/span&amp;gt;
  &amp;lt;span class="k"&amp;gt;this&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;configure&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;call&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;router&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;,&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;);&amp;lt;/span&amp;gt;


  &amp;lt;span class="c1"&amp;gt;// let client and server side routing doing different things here&amp;lt;/span&amp;gt;
  &amp;lt;span class="k"&amp;gt;this&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;init&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;call&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;router&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;,&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;);&amp;lt;/span&amp;gt;

  &amp;lt;span class="p"&amp;gt;.....&amp;lt;/span&amp;gt;

  &amp;lt;span class="k"&amp;gt;return&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;router&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;;&amp;lt;/span&amp;gt;
&amp;lt;span class="p"&amp;gt;};&amp;lt;/span&amp;gt;

&amp;lt;span class="nx"&amp;gt;Router&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;prototype&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;init&amp;lt;/span&amp;gt; &amp;lt;span class="o"&amp;gt;=&amp;lt;/span&amp;gt; &amp;lt;span class="kd"&amp;gt;function&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;)&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{};&amp;lt;/span&amp;gt;

&amp;lt;span class="nx"&amp;gt;Router&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;prototype&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;configure&amp;lt;/span&amp;gt; &amp;lt;span class="o"&amp;gt;=&amp;lt;/span&amp;gt; &amp;lt;span class="kd"&amp;gt;function&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;)&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{&amp;lt;/span&amp;gt;
  &amp;lt;span class="kd"&amp;gt;var&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;self&amp;lt;/span&amp;gt; &amp;lt;span class="o"&amp;gt;=&amp;lt;/span&amp;gt; &amp;lt;span class="k"&amp;gt;this&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;;&amp;lt;/span&amp;gt;

  &amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt; &amp;lt;span class="o"&amp;gt;=&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt; &amp;lt;span class="o"&amp;gt;||&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{};&amp;lt;/span&amp;gt;

  &amp;lt;span class="kd"&amp;gt;var&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;toArray&amp;lt;/span&amp;gt; &amp;lt;span class="o"&amp;gt;=&amp;lt;/span&amp;gt; &amp;lt;span class="kd"&amp;gt;function&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;value&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;)&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{&amp;lt;/span&amp;gt;
    &amp;lt;span class="k"&amp;gt;if&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="o"&amp;gt;!&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;value&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;)&amp;lt;/span&amp;gt;
      &amp;lt;span class="k"&amp;gt;return&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;[];&amp;lt;/span&amp;gt;

    &amp;lt;span class="k"&amp;gt;if&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;_&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;isArray&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;value&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;))&amp;lt;/span&amp;gt;
      &amp;lt;span class="k"&amp;gt;return&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;value&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;;&amp;lt;/span&amp;gt;

    &amp;lt;span class="k"&amp;gt;return&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;value&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;];&amp;lt;/span&amp;gt;
  &amp;lt;span class="p"&amp;gt;};&amp;lt;/span&amp;gt;

  &amp;lt;span class="c1"&amp;gt;// e.g. before: fn OR before: [fn1, fn2]&amp;lt;/span&amp;gt;
  &amp;lt;span class="nx"&amp;gt;_&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;each&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;Iron&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;Router&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;HOOK_TYPES&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;,&amp;lt;/span&amp;gt; &amp;lt;span class="kd"&amp;gt;function&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;eachHookType&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;type&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;)&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{&amp;lt;/span&amp;gt;
    &amp;lt;span class="k"&amp;gt;if&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;type&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;])&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{&amp;lt;/span&amp;gt;
      &amp;lt;span class="nx"&amp;gt;_&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;each&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;toArray&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;type&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;]),&amp;lt;/span&amp;gt; &amp;lt;span class="kd"&amp;gt;function&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;eachHook&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;hook&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;)&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{&amp;lt;/span&amp;gt;
        &amp;lt;span class="nx"&amp;gt;self&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;addHook&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;type&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;,&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;hook&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;);&amp;lt;/span&amp;gt;
      &amp;lt;span class="p"&amp;gt;});&amp;lt;/span&amp;gt;

      &amp;lt;span class="k"&amp;gt;delete&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;type&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;];&amp;lt;/span&amp;gt;
    &amp;lt;span class="p"&amp;gt;}&amp;lt;/span&amp;gt;
  &amp;lt;span class="p"&amp;gt;});&amp;lt;/span&amp;gt;

  &amp;lt;span class="k"&amp;gt;this&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt; &amp;lt;span class="o"&amp;gt;=&amp;lt;/span&amp;gt; &amp;lt;span class="k"&amp;gt;this&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt; &amp;lt;span class="o"&amp;gt;||&amp;lt;/span&amp;gt; &amp;lt;span class="p"&amp;gt;{};&amp;lt;/span&amp;gt;
  &amp;lt;span class="nx"&amp;gt;_&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;extend&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="k"&amp;gt;this&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;,&amp;lt;/span&amp;gt; &amp;lt;span class="nx"&amp;gt;options&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;);&amp;lt;/span&amp;gt;

  &amp;lt;span class="k"&amp;gt;return&amp;lt;/span&amp;gt; &amp;lt;span class="k"&amp;gt;this&amp;lt;/span&amp;gt;&amp;lt;span class="p"&amp;gt;;&amp;lt;/span&amp;gt;
&amp;lt;span class="p"&amp;gt;};&amp;lt;/span&amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/textarea&gt;
&lt;div class="zh-summary summary clearfix"&gt;
call在这里有什么用,在es6中有什么比较优雅的写法吗？&lt;br&gt;&lt;blockquote&gt;Router = function (options) {
  function router (req, res, next) {
    router.dispatch(req.url, {
      request: req,
      response: res
    }, next);
  }

 ........

  // always good to have options
  this.configure.call(router, options);


  // let client and server side routing doing different things here
  this.init.call(router, options);

  .....

  return router;
};

Router.prototype.init = function (options) {};

Router.prototype.configure = function (options) {
  var self = this;

  options = options || {};

  var toArray = function (value) {
    if (!value)
      return [];

    if (_.isArray(value))
      return value;

    return [value];
  };

  // e.g. before: fn OR before: [fn1, fn2]
  _.each(Iron.Router.HOOK_TYPES, function eachHookType (type) {
    if (options[type]) {
      _.each(toArray(options[type]), function eachHook (hook) {
        self.addHook(type, hook);
      });

      delete options[type];
    }
  });

  this.options = this.options || {};
  _.extend(this.options, options);

  return this;
};
&lt;/blockquote&gt;…
&lt;a href="javascript:;" class="toggle-expand"&gt;显示全部&lt;/a&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
我也是刚刚接触meteor不久，说得不对的地方多多包涵。&lt;br&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="language-text"&gt;1.调用Router时返回router
2.router是私有的
3.调用Router时将router经过configure和init两道工序加工后返回
(call 不是这里唯一的写法，但call可以变得更清晰，只要在configure里面用self|this就可以访问到router,若是直接this.configure(option,router); 那么在configure里面或许将通篇出现router，或者说argument[x])

(这像什么模式来着，我记不得了。)

优雅的写法。。。或许es6的class|extend|get|set能帮到你
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46220025/answer/100652809</link>
  <guid isPermaLink="false">1148120</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



微信内置浏览器 x5内核 有哪些坑及解决方案？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="4368722" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
我只是单纯来吐槽泄愤的。头一次在知乎这样的平台上发这么激进的文字，请见谅。如果有认识微信的某位工程师的大咖的帮忙艾特一下。&lt;br&gt;&lt;br&gt;作为一个搞前端的。已经要适配各种屏幕已经够蛋疼的了。张晓龙还带着一大堆标准都看不懂的垃圾工程师来搞了个垃圾浏览器内核。在所有手机浏览器里都能正常运行的代码，偏偏在叉张晓龙浏览器里运行不了。说他是手机的ie6，简直是侮辱ie6，至少ie6还是有一大堆适配文档的。&lt;br&gt;&lt;br&gt;微信公众号的开发体验也特别差，调试要上服务器。那个调试工具还和屎一样难用，各种bug也敢放出来。&lt;br&gt;&lt;br&gt;玛德，不说了，要去改微信网站上的bug了。腾讯x5浏览器的工程师们，祝你们全家安好。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/30465777/answer/100648010</link>
  <guid isPermaLink="false">1148119</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



极客学院推出的5k左右的前端就业班值得报名学习吗？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="6851176" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;本人今年环境工程本科毕业，来到一家小的制造业企业做EHS，可是公司不会重视EHS这块，自己现在也是做一些打杂的活，还在职。&lt;br&gt;于是想另寻出路，长远打算，准备入行互联网，现在从前端入手，已经学习了一个半月，都是在空闲的时间通过看书（head first系列），和观看一些视频来自学。现在感觉学习进度慢了很多，而且也没啥实战经验。所以就想到报名培训班，可通过在知乎上了解的信息，发现那些线下的培训班，不但价格高，效果也不好，还有被骗的风险，于是放弃这方面的考虑。&lt;br&gt;这两天我又在极客上看到他们有推出web前端线上的培训课程，费用5k的样子，而且学习时间也比较自由，我想问一下极客学院靠谱不？这样的培训班值得一报吗？最好有正在学习的同学来说一下体验，或者各位大神能给我指点一下学习方法，感谢各位！&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
&lt;p&gt;我最先了解到在线教育这个概念是在2013年，因为那一年刚刚上大学，知道了coursera，edx，以及后来又知道了学堂在线等在线教育平台（从这个时候开始，我的自学生涯就开始了）。&lt;/p&gt;
&lt;p&gt; 在2013年的时候，我就用上了上述所提到的coursera 和 edx两个平台，那时候主要学习一些理论知识，学习一些大学中的课程，比如算法，数据库，离散数学等课程，关于这些课程，上述平台上的老师的确是讲得很好，我的收获也特别大。那时候我才大一，对我所学的一些方向比较无知，但是我认为的计算机专业的学生应该是学习做网站，做手机应用，所以当时也没管那么多，然后就开始在coursera 上搜索关于做web的课程，不过收获不大，少之又少，并且几乎是英文的。大概是在2014年的时候，我在百度上检索有关于做网站的学习资料的时候，偶然进入了极客学院的网站，那时候，极客学院的课程还不算太多，我开始看了一些 web 的入门课程视频，渐渐地学习了 html，css，JavaScript。学完了以后，就开始和同学组了一个团队一起尝试做网站了，那时候还只会做一些静态页面，根本不会搭后台，然后学习了一段时间php，然后又上网搞了几个现成的后台，勉强把网站搭了起来，第一个网站就是这样做出来的吧。后来慢慢的熟练了，还干起了仿站，在猪八戒网上开起了店铺，帮别人做做小网站，几乎接的任务都是一些几百块钱的小任务，但是这毕竟是自己第一次挣钱，所以虽然遇到了不少困难，心里还是十分高兴的，下图就是那时候做的一些记录，集中在14年的时候，因为那时候刚开始学习一些技术。&lt;/p&gt;

&lt;img src="https://pic4.zhimg.com/c266680524d931d69649d13b415414bb_b.png"&gt;
&lt;img src="https://pic3.zhimg.com/14ac6140b32fbb0c7eeff86ebbfc55fa_b.png"&gt;
&lt;img src="https://pic3.zhimg.com/13c7357bd306b99300778900b8bb1592_b.png"&gt;&lt;p&gt; 后来做了一段时间外包，觉得一直用现成的后台自己不会写也没意思，后来又学了php，用来搭建后台，建立了我们自己的官网，然后开始做上几千块钱的网站了，就这样持续了一段时间吧，下面是一些做过的例子：&lt;/p&gt;

&lt;img src="https://pic2.zhimg.com/35793eb8bbf40f30bd81eee47e148571_b.png"&gt;
&lt;img src="https://pic2.zhimg.com/51800bc3a05493b59090fc832674da09_b.png"&gt;&lt;p&gt;其他的我就不一一举例了，不过这样下去，我们慢慢觉得没意思了，因为这样重复的建立网站，没有学到新的知识，所以又想和同学做做自己的产品，所以开始在极客学院自学java，学android，同样还是采取看视频和看书来学习，不过遇到了一些问题就是，很多时候，看视频进度特别慢，并且配置环境的时候，有一些差别，偶然，我们发现了极客学院的wiki，那时候也是第一次接触到了wiki，因为需要安装配置环境，并且开发周期比较短，而视频比较长，所以慢慢的从视频开始转向文字了，比如android sudio的操作手册&lt;a href="//link.zhihu.com/?target=http%3A//wiki.jikexueyuan.com/project/android-studio-guide/" class=" wrap external" target="_blank" rel="nofollow noreferrer"&gt;Android Studio操作手册_Android Studio开发中文手册[PDF]下载&lt;i class="icon-external"&gt;&lt;/i&gt;&lt;/a&gt;，看wiki特别直观，也特别节约时间，后来还看了很多关于php的视频和wiki，已经一些版本控制工具等等等等。后来开发了我们自己的一款android电商产品，虽然没有运营起来，不过对整个开发过程还算是有些理解了，如下图：&lt;/p&gt;

&lt;img src="https://pic3.zhimg.com/0529d0509080c1608893662fbc284b5e_b.png"&gt;&lt;p&gt;学习的过程十分漫长，说也说不完，从和极客学院第一次见面以后一直都是在学习。所以学习的事情也就先说到这里。&lt;/p&gt;
&lt;p&gt;最后，来谈点自己的看法吧：&lt;/p&gt;
&lt;p&gt;1.通过在线学习，真的是可以学会，并且做出来产品的（但是是有前提的，看第3条）。&lt;/p&gt;
&lt;p&gt;2.关于极客学院的视频和wiki的作用，个人觉得，初学者应该先看视频，等到有一定基础之后，然后再转向wiki，结合着使用，结合自己的水平，选择性的观看一些视频。&lt;/p&gt;
&lt;p&gt;3.只看视频和wiki，不实战，是学不会的，所有有些人会说总是学不会，那是因为你没有去找个项目来撸撸代码。看老师讲课的视频，不要只下载源码下来看，要自己一行一行的撸代码。&lt;/p&gt;
&lt;p&gt;4.代码要天天撸，不然会忘记的。&lt;/p&gt;
&lt;p&gt;5.实践-》学理论-》再实践-》再学理论。。。。。。不要怂，就是干。&lt;/p&gt;
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/36610007/answer/100648688</link>
  <guid isPermaLink="false">1148118</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



乐车邦app 前端用的什么框架和技术?


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="7048298" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;最近用了一下乐车邦。发现他们的ios App和微信版本其实是同一个，都是使用的html5 页面。第一次感受到这个级别的app ,用html5代替原生开发完全够了，也是我接触过的html5应用中体验最好的。不知道他们用了一些什么框架和技术  以下是他们app的链接 ，居然自动广告了。&lt;br&gt;&lt;a href="//link.zhihu.com/?target=http%3A//m.lechebang.com/webapp" class=" wrap external" target="_blank" rel="nofollow noreferrer"&gt;乐车邦 - 指尖上的养车神器&lt;i class="icon-external"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
欠人去黑的玩意儿
&lt;img data-rawwidth="640" data-rawheight="1136" src="//zhstatic.zhihu.com/assets/zhihu/ztext/whitedot.jpg" class="origin_image zh-lightbox-thumb lazy" width="640" data-original="https://pic4.zhimg.com/37bbd8e828688591e1a0d3f7c0d28893_r.png" data-actualsrc="https://pic4.zhimg.com/37bbd8e828688591e1a0d3f7c0d28893_b.png"&gt;对不起我答不对题了，老子没车也从来没去注册过，给我发这两条短信前听都没听说过什么漏车帮谢谢
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/37103412/answer/100649149</link>
  <guid isPermaLink="false">1148117</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



大三97女生决定从事web前端，目前自我评价零基础，求大神给我点建议如何到九月份可以找工作easy？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="9806993" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;上半年就在纠结以后从事什么工作，也奉献了在知乎第一个问题，那时候想做数据分析，运营or产品，被建议好好想想做什么。大概三个月过去了有做项目助理或者erp咨询顾问的想法，当然最终决定做web前端，因为它有设计的概念。&lt;br&gt;&lt;br&gt;我一直就想做设计，报考执念土木，结果为了走一本报了信息管理与信息系统，幸运的是我还挺喜欢，因为什么都学…，我对java，html，css有专业课的基础，但是就是简单的按照老师给的指导书敲代码运行，dreamweaver可以自己做简单的静态嵌套网页。&lt;br&gt;&lt;br&gt;       我看了好几个女生前端关键词的问题，也知道了一点点，还是想自己提问一下，先谢谢回复我的各位。&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;        背景介绍完，开始正文，目标城市青岛，web前端设计，9月开始找工作。&lt;br&gt;&lt;br&gt;     目前4.24到9.1，四个月中有一个月我们专业实训，公司的人来学校，主要是小组形式做个小项目，前端，java，andior三个方面。打算利用这四个月时间，好好学一下，9月份可以找到一个满意工作。加班什么的我在结婚前可以接受，只要年假正常休就可以。&lt;br&gt;&lt;br&gt;我昨天开始了第一天的学习，在慕课网看的，主要是sublimtext。&lt;br&gt;       现在问题来了：&lt;br&gt;1.各位可以回答我一下这个行业女生前景发展方向？&lt;br&gt;2.会不会排斥女生？&lt;br&gt;3.找前端工作必须会哪些有关的能力？&lt;br&gt;4.可以推荐一下书或者网站吗？&lt;br&gt;6.js。jq 。还有什么啊……？&lt;br&gt;5.我英语四级，听力太悲催，书写ok!&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
我不是前端工程师，所以以下内容是都是瞎扯。&lt;br&gt;&lt;br&gt;第一，选择职业问题&lt;br&gt;1，无任何歧视，普遍情况表现为女生的逻辑一般不太好于男生。所以对于程序员这种工作来说，有一定难度，当然我周围的女工程师也不少，只是说出来自己的担心。&lt;br&gt;2，关于是应该做哪个行业，我看了你的介绍，觉得选择还是蛮简单的，几乎都停留在表象上，而没有真实的接触过哪个职业的真实工作情况到底是怎么样的。建议在多些了解，当然没毕业呢，各种行业都可以试试。&lt;br&gt;第二，学习问题&lt;br&gt;我高中的时候周围朋友都是为高考努力，我在搭网站，看php。。。虽然后来也没什么好结果。&lt;br&gt;后来大学又看了一些前端，swift等，所以说，学习不分早晚，技术最重要的是实践。&lt;br&gt;当时最重要能支撑我一直读下去的原因是我想做个东西。。。而不是我想了解一门语言。&lt;br&gt;回到英语上这个问题，我一直觉得自己连一级水平都不到，所以一切问题都不是问题。重要的是你能否坚持。就像跑步一样，很简单，坚持天天跑的就不多了。&lt;br&gt;关于具体哪些书什么的，这就太多了，大家给的也都不错，一搜索就有拉，不讲了。&lt;br&gt;第三，行业前景&lt;br&gt;这世界发展太快太快，谁都很难给一个准确的定论，但这几年来看，互联网公司越来越多，人力需求也水涨船，至少这几年还是不错的。而且技术的追求又不止步于前端。技术能创造太多太多。而且不会消亡。&lt;br&gt;第四，女生&lt;br&gt;我想说这太牛了好么，程序猿这么多男生，你问什么问题，都一堆堆的围着你身边讲。多了很多免费的老师啊。但程序员加班也挺常态的，按时按点的下班这个想法可能得收敛一下。好好保护皮肤得多下点功夫。&lt;br&gt;第五，选择职业机会&lt;br&gt;我不知道你为什么选择在青岛这个城市，但按照我个人所想，想要有些发展，最好还是在互联网行业氛围比较浓的地方。北上广都不错。加油吧同学。坚持学，几个月时间找个实习不是很难。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/43992505/answer/100651178</link>
  <guid isPermaLink="false">1148116</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



React Native和React有啥区别？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="4369078" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
编程思路会有所不同，react 直接渲染dom，而rn生成id，用bridge（最新用c++实现了）变成一个表，等待 native 去调用，写react可以用前端知识直接上手，rn虽然也可以，但是深入下去没有native知识支持很难，有时候也无法理解一些现象，正在努力学习oc。&lt;br&gt;&lt;br&gt;又比如单元测试，react可以用e2e的集成测，而rn要用到react中的shadow renderer，思路上也不同&lt;br&gt;&lt;br&gt;利益相关：&lt;br&gt;前段时间写了一个较为完整的app，已上架&lt;br&gt;&lt;a href="//link.zhihu.com/?target=https%3A//github.com/fakefish/Weekly75" class=" wrap external" target="_blank" rel="nofollow noreferrer"&gt;GitHub - fakefish/Weekly75: react-native iOS版奇舞周刊&lt;i class="icon-external"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/30466658/answer/100652041</link>
  <guid isPermaLink="false">1148115</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



极客学院推出的5k左右的前端就业班值得报名学习吗？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="6851176" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;本人今年环境工程本科毕业，来到一家小的制造业企业做EHS，可是公司不会重视EHS这块，自己现在也是做一些打杂的活，还在职。&lt;br&gt;于是想另寻出路，长远打算，准备入行互联网，现在从前端入手，已经学习了一个半月，都是在空闲的时间通过看书（head first系列），和观看一些视频来自学。现在感觉学习进度慢了很多，而且也没啥实战经验。所以就想到报名培训班，可通过在知乎上了解的信息，发现那些线下的培训班，不但价格高，效果也不好，还有被骗的风险，于是放弃这方面的考虑。&lt;br&gt;这两天我又在极客上看到他们有推出web前端线上的培训课程，费用5k的样子，而且学习时间也比较自由，我想问一下极客学院靠谱不？这样的培训班值得一报吗？最好有正在学习的同学来说一下体验，或者各位大神能给我指点一下学习方法，感谢各位！&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
&lt;p&gt; 我报的是web前端，&lt;/p&gt;

&lt;img src="https://pic1.zhimg.com/30abaaed042b8d533ad28d7eb9cc0c6c_b.png"&gt;&lt;p&gt;我的作息时间6：30起床，晚上11：30睡，就这样还TM的胖到了160斤，之前120斤左右浮动，报告我身高180。&lt;/p&gt;
&lt;p&gt;现在对于我来说写个一般的企业站页面，是多么简单的事情，想要自适应就自适应，想要多少个端，就写多少个端。&lt;/p&gt;
&lt;p&gt;然后在这里还是想吐槽，JS太TM的难了，要记得属性太多太多了。。。。。&lt;/p&gt;
&lt;p&gt;对于学习的事情，我有话说，极客学院的视频很容易就看懂了，基本上我手机上去看视频，都调速到1.5-1.7倍，一看就懂，一做就错，然后再看又懂，然后再做又错……。这个时候就凸显出就业班的重要了，首先就业班的课程注重实战，是所有视频中的精华；其次有老师一对一批改作业，可以提交5次，整个4个月学习就可以提交200多次，200多个互联网大公司的工程师给你批改作业，还学不会吗？但是我就是一个慢的学员，所以应该在很久以后我还在极客学院里面在啃JS，我只想告诉你们我一直在，哈哈哈哈哈哈。。。&lt;/p&gt;
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/36610007/answer/100652045</link>
  <guid isPermaLink="false">1148114</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



ie8兼容background-size？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="5113401" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
&lt;b&gt;方法一：&lt;/b&gt;&lt;br&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="language-css"&gt;&lt;span class="nt"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;progid&lt;/span&gt;&lt;span class="nd"&gt;:DXImageTransform&lt;/span&gt;&lt;span class="nc"&gt;.Microsoft.AlphaImageLoader&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
&lt;span class="nt"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'images/logo.gif'&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nt"&gt;sizingMethod&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'scale'&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="nt"&gt;-ms-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"progid:DXImageTransform.Microsoft.AlphaImageLoader(&lt;/span&gt;
&lt;span class="s2"&gt;src='images/logo.gif',&lt;/span&gt;
&lt;span class="s2"&gt;sizingMethod='scale')"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;①不能指定任意大小background百分比，可用cover，&lt;br&gt;②用于单张图片不能使用图片精灵等拼图，&lt;br&gt;③兼容ie7，8&lt;br&gt;&lt;br&gt;&lt;b&gt;方法二：&lt;/b&gt;&lt;br&gt;&lt;blockquote&gt;.selector { background-size: cover; -ms-behavior: url(/backgroundsize.min.htc); }&lt;br&gt;&lt;p&gt;&lt;a href="//link.zhihu.com/?target=https%3A//github.com/louisremi/background-size-polyfill" class=" wrap external" target="_blank" rel="nofollow noreferrer"&gt;GitHub - louisremi/background-size-polyfill: Adds support for background-size "cover" and "contain" to IE8&lt;i class="icon-external"&gt;&lt;/i&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;①可指定百分比，&lt;/p&gt;
&lt;p&gt;②兼容ie8不兼容ie7&lt;/p&gt;
&lt;p&gt;不同场景选择对应的方法比较好，还是觉得方法一比较简便，&lt;/p&gt;
&lt;p&gt;参考答案：&lt;a href="//link.zhihu.com/?target=http%3A//stackoverflow.com/questions/4885145/ie-8-background-size-fix" class=" wrap external" target="_blank" rel="nofollow noreferrer"&gt;IE 8: background-size fix [duplicate]&lt;i class="icon-external"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/32285092/answer/100653514</link>
  <guid isPermaLink="false">1148113</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



花整个大学的时间研究前端好吗？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10696744" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;现在大一（女生），对于后端开发感觉自己学不下去也没兴趣，正在自学前端基础，想成为前端工程师，想花大学这几年好好学前端，这值得吗？现在确定方向会太早了吗？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
个人观点！！！我是个打好基础的受害者，基础理论知识你学习的时候没有运用场景根本就是各种无味，甚至影响你整个的学习动力。我觉得还是要结合起来，纯基础的东西搞2年，反正我是受不了的。我更喜欢先造一个房子，再去完善里面的砖。学校的东西也要学，但是自己做的东西先提前学的东西，等学的时候会有新的感触。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46207738/answer/100654589</link>
  <guid isPermaLink="false">1148112</guid>
  <pubDate>Thu, 12 May 2016 21:55:14 -0700</pubDate>
 </item>
 <item>
  <title>



React 组件设计思路？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10406048" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;最近在开发一些通用的 React 组件，但是当一个组件功能越来越多，比如：&lt;br&gt;&lt;br&gt;椅子 VS 带轮子的黑色真皮椅&lt;br&gt;&lt;br&gt;不想把所有可能的功能集成到一个组件下（例如某 dataTable 插件几千行代码。。。），我的想法是组件独立：椅子、带轮子的椅子，但是继续增加功能点的话，组件的数量是指数级的（排列组合），也想到用高阶组件的方式去组合。&lt;br&gt;&lt;br&gt;现在比较迷惑，总觉得没有完美的方式。软件开发中，这种情况业界有一些比较认同的思想去解决吗？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
早上刚翻了一下：《React 引领未来的用户界面开发框架》的   序。。。&lt;br&gt;引用一下刘平川的序3：&lt;blockquote&gt;越靠近用户端变化越快，用枚举组件的思路在高速迭代快速变化的互联网中开发，将会使UI组件库逐渐变得臃肿和难以维护。....  UI组件受具体业务场景的约束。&lt;br&gt;&lt;br&gt;而组件库在公司级别难抽象，对整体技术的挑战比较大，且收效不确定。于是只能将组件场景定位到更具体的某一类型的业务线再进行抽象。从而让组件库变得轻量、灵活。&lt;/blockquote&gt;我觉得题主的问题不在于如何用react或者其他框架提供一个功能丰富的椅子。而是应该根据业务场景，定制靠谱的通用的几把椅子。拒绝生产造型奇葩、功能小众的椅子，为个别合理的特殊需求的椅子预留一下开发接口
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/45484086/answer/100656037</link>
  <guid isPermaLink="false">1148111</guid>
  <pubDate>Thu, 12 May 2016 21:55:13 -0700</pubDate>
 </item>
 <item>
  <title>



如何看待 Reaktor Hello World 卫星将搭载 node.js 程序?


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10653493" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;在 2016 年底即将发射的 Reaktor Hello world 号卫星上，科学家将搭载一个简单的 nodejs 环境来运行一些程序监控和优化卫星的传感器，同时也想验证高级语言在太空运行的可能性，以此为以后的太空 IoT 做准备&lt;br&gt;&lt;br&gt;&lt;a href="//link.zhihu.com/?target=https%3A//reaktor.com/blog/node-js-satellite-means-anyone-can-space-programmer/" class=" wrap external" target="_blank" rel="nofollow noreferrer"&gt;Node.js on a satellite means anyone can be a space programmer&lt;i class="icon-external"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
记得之前有看说外太空温度条件气压条件和地面不一样，结果现在常用的芯片到天上都没法用，于是太空站什么都用的旧设备，搞得像几十年前一样。nodejs 本身倒是不小，一个 v8 一个 libuv 就够了，然后还要占用一大堆的模块，还好 npm 包是没重量的。挺好奇的这卫星有什么配置了。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46100153/answer/100660903</link>
  <guid isPermaLink="false">1148104</guid>
  <pubDate>Thu, 12 May 2016 21:54:57 -0700</pubDate>
 </item>
 <item>
  <title>



如何让缩略图正好显示在一张图片的关键位置？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10708177" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;一张高大于宽的长图，人脸的部分在图片的上三分之一位置，做缩略图，由于固定了宽高，想让人脸的那部分正好显示在缩略图位置，如何实现？QQ空间说说里的每一张缩略图都有个marginTop来设置位置，但marginTop值是不固定的，如何来计算这个值 正好让一张图的关键位置呈现在缩略图里？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
最好还是统一一下图片与人脸位置的相关比例才行 比如统一所有图片中人脸都在图片高度的三分之一处，然后就可以粗略的计算出来那个margin-top的值，然后设定就好，比图图片高度100，那么人脸就在30左右，然后就只显示那部分区域。&lt;br&gt;如果图片比例乱七八糟的话，就难了，也不是不能解决，jquery有个人脸识别插件，能够获取每张图片人脸位置参数，然后得根据这个参数每张图片逐张计算。&lt;br&gt;其实我觉得缩略图这东西差不多就好，下载个缩略图插件，弄上就行，然后发表文章的时候找合适的图片设置为缩略图就行，用运营手段解决部分技术问题。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46236151/answer/100662320</link>
  <guid isPermaLink="false">1148103</guid>
  <pubDate>Thu, 12 May 2016 21:54:57 -0700</pubDate>
 </item>
 <item>
  <title>



为什么Echarts 3.0 这么碉堡的黑科技不能做成能在线傻瓜式编辑图表的功能呢？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10540720" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;
&lt;img src="https://pic2.zhimg.com/5c7346e4a0e2d2b2de723ff0044068b1_b.jpg" data-rawwidth="1895" data-rawheight="909" class="origin_image zh-lightbox-thumb" data-original="https://pic2.zhimg.com/5c7346e4a0e2d2b2de723ff0044068b1_r.jpg"&gt;不懂代码的小白有什么简便的步骤编辑？&lt;br&gt;需要用到哪些工具？&lt;br&gt;--------------------------------------------------------------------------------------&lt;br&gt;要是做成像魔晶这样能直接输入数值的多方便啊&lt;br&gt;&lt;img src="https://pic4.zhimg.com/d3c7e3cb1279011a2c1262ede6e90923_b.jpg" data-rawwidth="1908" data-rawheight="925" class="origin_image zh-lightbox-thumb" data-original="https://pic4.zhimg.com/d3c7e3cb1279011a2c1262ede6e90923_r.jpg"&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
如果说做一个图形库的难度是10，那把这个库改成傻瓜式编辑器的难度至少是50；还想这个编辑器各种用户友好，特效爆炸，至少再乘10。&lt;br&gt;&lt;br&gt;不信的自己尝试写个给程序员用的chart库就明白了。&lt;br&gt;不用你真去做个傻瓜式工具。&lt;br&gt;&lt;br&gt;光是这个库本身的各种trade off就够你喝一壶了，不用你考虑用户永远嫌你不够傻瓜式这种终极问题。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/45819907/answer/100626629</link>
  <guid isPermaLink="false">1146756</guid>
  <pubDate>Thu, 12 May 2016 19:54:30 -0700</pubDate>
 </item>
 <item>
  <title>



React 组件设计思路？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10406048" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;最近在开发一些通用的 React 组件，但是当一个组件功能越来越多，比如：&lt;br&gt;&lt;br&gt;椅子 VS 带轮子的黑色真皮椅&lt;br&gt;&lt;br&gt;不想把所有可能的功能集成到一个组件下（例如某 dataTable 插件几千行代码。。。），我的想法是组件独立：椅子、带轮子的椅子，但是继续增加功能点的话，组件的数量是指数级的（排列组合），也想到用高阶组件的方式去组合。&lt;br&gt;&lt;br&gt;现在比较迷惑，总觉得没有完美的方式。软件开发中，这种情况业界有一些比较认同的思想去解决吗？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
react 说到底也只是通过程序提供的工具，仅仅是工具，而且是受到一些程序限制的工具。实际业务当中遇到的各种各样的抽象，我认为是另一个纬度的东西。react 的设计足够灵活，但未必意味着适合做全部的抽象。而组件的问题并不是 react 带来或者能解决的问题，而是所有程序面临的问题。我倾向于认为 react 没有完美的解法。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/45484086/answer/100628112</link>
  <guid isPermaLink="false">1146755</guid>
  <pubDate>Thu, 12 May 2016 19:54:30 -0700</pubDate>
 </item>
 <item>
  <title>



OSR（On-Stack Replacement）是怎样的机制？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10577326" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;关于OSR，我差不多能明白，这是一种运行时替换栈帧的技术。但我在看V8的代码的时候，还是会感觉一头雾水。求指教。&lt;br&gt;我现在大概知道的是这样的：&lt;br&gt;1. Hydrogen IR中会创建OsrEntry。&lt;br&gt;2. profiler, builtins, runtime中与OnStackRelacement相关的代码。单独看好像是看明白了，但是想串成一整块，好像又与自己理解的不同。&lt;br&gt;3. 与execution还有一些关系?&lt;br&gt;希望高手解答。&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
On-Stack Replacement (OSR) 是一种对提升benchmark跑分非常有效的技术，而对普通的结构良好的程序…（咳咳&lt;br&gt;&lt;br&gt;OSR是一种在运行时替换正在运行的函数/方法的栈帧的技术。但它是手段，不是目的——是出于某种目的需要在运行时替换栈帧。&lt;br&gt;使用OSR最常见的目的就是在一个函数/方法的执行过程中，在执行引擎的不同优化层级之间切换，可以是从低优化层级向高优化层级切换，也可以反过来。这也就隐含了一个假设——这个执行引擎有多个层级的优化，可能是&lt;br&gt;&lt;ul&gt;
&lt;li&gt;一个解释器与一个JIT编译器的结合，例如以前老的HotSpot JVM，或者比较早期的Chakra，或者加入了Ignition解释器之后的V8；&lt;/li&gt;
&lt;li&gt;一个无优化JIT编译器与一个优化JIT编译器的结合，例如JRockit JVM、Crankshaft时代的V8；&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;或者甚至一个解释器与多个JIT编译器的结合，例如现在的HotSpot JVM、现在的SpiderMonkey、JavaScriptCore；或者一个解释器与支持多种不同优化层级的同一个JIT编译器，例如IBM J9 JVM、现在的Chakra等；&lt;/li&gt;
&lt;li&gt;还可以跟AOT结合，例如一个只做（相对比较）少量优化的AOT编译器，跟一个更优化的JIT编译器结合使用，例如计划于Oracle JDK9的某个更新版推出的AOT编译器，或者IBM J9 JVM。&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;在多层优化的执行引擎中，OSR可以为两种目的服务：&lt;br&gt;&lt;ul&gt;
&lt;li&gt;从低优化向高优化迁移：为了平衡启动性能（启动速度快，所以要初始开销小的执行模式）和顶峰性能（顶峰速度快，所以要更优化的执行模式，即便优化需要较大开销）&lt;/li&gt;
&lt;li&gt;从高优化向低优化迁移：这可以细分为许多情况，例如：&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;在高优化层级做了很激进的优化（例如假设某个类不会有别的子类、某个引用一定不是null、某个引用所指向的对象一定是某个具体类型，等），而这个激进的假设假如失效了的话，就必须退回到没有做这些优化的“安全”的低优化层级去继续执行&lt;/li&gt;
&lt;li&gt;高优化层级不便于对代码做调试，如果某个方法之前已经被JIT优化编译了，而后来有调试器动态决定调试该方法，则让它从高优化层级退回到便于调试的低优化层级（例如解释器或者无优化的JIT编译版本的代码）去执行。&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br&gt;OSR还有若干其它叫法。&lt;br&gt;IBM曾经在J9 JVM中把OSR叫做“dynamic loop transfer”（DLT）。这个纯属傲娇，DLT与OSR说的就是一件事。&lt;br&gt;而HotSpot VM也有自己的傲娇：它把从低优化层级向高优化层级的迁移叫做OSR，而把高优化层级向低优化层级的迁移叫做“去优化”（deoptimize），也叫做“uncommon trap”。其实deoptimize也是OSR的一种情况，能理解这个就够了。&lt;br&gt;&lt;br&gt;把OSR机制推广开来，所谓generalizing on-stacking replacement，其实就是trace-based compilation中会用到的一种基础技术。Trace编译后，进入trace和离开trace其实都要做OSR。&lt;br&gt;在trace-based compilation的上下文中，离开trace的OSR的某些情况会叫做“side-exit”，其实就跟上面提到的“deoptimize”是一个道理。&lt;br&gt;&lt;br&gt;tl;dr：&lt;b&gt;“执行引擎有多个不同优化程度的层级，一个函数正在执行的过程中可以在不同优化层级之间迁移”就是OSR的重点&lt;/b&gt;。&lt;br&gt;知道这个之后，下面都是废话。不怕我啰嗦的话请继续看下去…&lt;br&gt;&lt;br&gt;===========================================&lt;br&gt;&lt;br&gt;OSR是在1980年代末1990年代初的Self VM就发展成熟的技术，在JVM上得到了广泛应用，现在各大JavaScript引擎上也普遍采用了该技术。所以下面先用Java来举例，然后再回到JavaScript（V8）的情况。&lt;br&gt;&lt;br&gt;试想一个microbenchmark，我们想测试Java的Math.sin()方法的速度，要怎么测？&lt;br&gt;入门级程序员（或者从C/C++之类的通常不动态编译的语言转到Java的程序员）会这样写：&lt;br&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="language-java"&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;BadMicrobenchmark&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;startTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;nanoTime&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10_000_000&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;Math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sin&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;endTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;nanoTime&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"duration (ns): "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;endTime&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;startTime&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;&lt;i&gt;在主流环境中&lt;/i&gt;，JVM拿到手的是含有Java字节码的Class文件，并不能直接在硬件上执行，而需要JVM要么解释执行之，要么做JIT编译后执行。为了平衡启动性能与顶峰性能的需求，现代主流JVM都引入了多层编译机制，在刚开始的时候采用比较低优化的层级来执行，等某块代码热了之后再使用较高优化的层级来执行。&lt;br&gt;这大背景请参考下面俩传送门：&lt;br&gt;&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.zhihu.com/question/26913901/answer/35303563" class="internal"&gt;HotSpot是较新的Java虚拟机技术，用来代替JIT技术,那么HotSpot和JIT是共存的吗？ - RednaxelaFX 的回答&lt;/a&gt;&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://zhuanlan.zhihu.com/p/19977592" class="internal"&gt;JIT编译，动态编译与自适应动态编译 - 编程语言与高级语言虚拟机杂谈（仮） - 知乎专栏&lt;/a&gt;&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;但是问题就来了：这些主流JVM通常是以“方法”（或者笼统的说，“函数”）为单位来JIT编译的。一个方法新JIT编译后的版本，在编译好之后，要等到下一次该方法被调用时才能用上，而无法顾及当前正在执行的方法的情况。&lt;br&gt;以上面的microbenchmark例子看，这个main()方法在整个程序的执行过程中只会被调用一次，就算JVM知道它很热而把它给JIT编译了，也没有机会等到它第二次被调用的时候跳进JIT编译的版本里。这样跑benchmark不就废了么？&lt;br&gt;&lt;br&gt;于是OSR机制就来救场了！&lt;br&gt;&lt;br&gt;与其编译整个方法，我们可以在发现某个方法里有循环很热的时候，选择只编译方法里的某个循环，或者是从某个循环开始的代码。编译好之后，执行引擎便在仍在执行该方法的情况下，从原本的层级跳转到这个新JIT编译好的版本的代码去。&lt;br&gt;还是以上面的代码为例，我们可以只编译循环的这部分（情况A）：&lt;br&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="language-java"&gt;    &lt;span class="n"&gt;startTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;???;&lt;/span&gt; &lt;span class="c1"&gt;// not used in this compilation, but used by deoptimization&lt;/span&gt;
    &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;???;&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt; &lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10_000_000&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;Math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sin&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;Runtime&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;deoptimize&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;startTime&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// tail call: deoptimize and go back to interpreter&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;或者只编译从这个循环开始的部分（情况B）：&lt;br&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="language-java"&gt;    &lt;span class="n"&gt;startTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;???;&lt;/span&gt;
    &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;???;&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt; &lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10_000_000&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;Math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sin&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;endTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;nanoTime&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"duration (ns): "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;endTime&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;startTime&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// end of method, normal return&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;注意：我们要发现一个循环很热，肯定是已经执行了该循环很多次了，并且在触发该循环的JIT编译时该循环还没执行完。&lt;br&gt;所以我们JIT编译的并不是完整的该循环（用上例说就是 i = 0 开始），而是该循环可能已经执行了很多次之后再进入的该循环（所以上面就用i = ??? 表示）。&lt;br&gt;&lt;br&gt;于是我们就需要从原本该方法所执行的层级的栈帧中，把需要的状态找出来，然后迁移到新的优化层级的栈帧去。在上面的情况B中，我们显然需要从原本的栈帧中找出局部变量 startTime 与 i 的值，并将其迁移到新编译的版本的代码的栈帧去。&lt;br&gt;假如我们通过一个叫做“OSR buffer”的地方来从低优化层级向高优化层级传递值，那么上面情况B所编译的代码的样子就会是这样的：（伪代码）&lt;br&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="language-java"&gt;  &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main$osr_at_bci$21&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;OsrBuffer&lt;/span&gt; &lt;span class="n"&gt;osrbuf&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// OSR entry&lt;/span&gt;
    &lt;span class="n"&gt;startTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;osrbuf&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;startTime&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// osrbuf.slots[1]&lt;/span&gt;
    &lt;span class="n"&gt;i&lt;/span&gt;         &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;osrbuf&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;i&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;         &lt;span class="c1"&gt;// osrbuf.slots[3]&lt;/span&gt;
    &lt;span class="c1"&gt;// actual body&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt; &lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10_000_000&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;Math&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;sin&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;endTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;nanoTime&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"duration (ns): "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;endTime&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;startTime&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// end of method, normal return&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;而情况A版的代码，末尾有个奇怪的东西：Runtime.deoptimize()这个伪代码。这是干嘛的呢？&lt;br&gt;情况A中，我们只编译了当前正在执行的这个循环，循环前和循环后的代码都没有编译。那么如果跳到该版本的代码去跑，跑到循环结束后怎么办？简单，回到低优化层级（例如解释器）去执行就好了嘛。&lt;br&gt;所以这个Runtime.deoptimize()所代表的意思就是，把低优化层级的执行所需要的状态打包起来传递下去，然后回到低优化层级去继续执行。&lt;br&gt;&lt;br&gt;例子说到这里想必题主已经获得足够信息来把V8 Crankshaft的OSR机制串起来了。码字太累，先写到这里…&lt;br&gt;（待续）
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/45910849/answer/100636125</link>
  <guid isPermaLink="false">1146754</guid>
  <pubDate>Thu, 12 May 2016 19:54:30 -0700</pubDate>
 </item>
 <item>
  <title>



深圳不是说很缺前端吗？为什么我找了半个月工作还是没找到前端的工作？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10708424" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;之前下班每天坚持自学四个小时以上，学了四个月。比较熟悉html、css，会用jquery、js写一些常见的动画，仿了一些页面。但是投了挺多简历，结果大部分都是培训机构通知我去面试。正常的公司都想要能独立做项目的。我对待遇要求不高，想先学好技术，真正入门，怎么找工作那么难呢？&lt;br&gt;在深圳做前端的知友们，如果可以的话帮我推荐一份要求不那么高的前端工作，感激不尽&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
我也在深圳，跟题主情况差不多。。自学两三个月就找到工作了。。给题主一些可操作性的建议吧。。。。看到一些回答都是嘲讽题主的，还是感觉蛮心酸的。。。因为自己刚经历过不久。。。唉，本来写了一堆的，又怕被嘲讽。。。简单点写吧&lt;br&gt;1.不要在58，赶集投任何简历，大部分都是骗子和培训机构。前程无忧和智联是比较靠谱的。&lt;br&gt;2.很少有公司愿意录用新人，这第一个靠运气，第二个就稍微胡编一下吧。没办法的，公司都要有经验的，你就说做了一年的网站维护吧。。。有自信的话就多吹点。。只要能有机会入门。。社会的现状就是这样，没有经验都不让你进门。。。我也是跟题主水平差不多，不过运气好，没有撒谎，就实话实说没经验，问了我几个简单的技术问题，答上来了刚好。刚工作了一个月。小公司的前端没那么难，不会的东西可以百度。。。就是开始一段时间痛苦点，天天在地铁上看锋利的jQuery，晚上回家了还要查资料解决白天不会的问题。。刚开始去就做项目，还是web app。。。开始几天痛苦死了。。&lt;br&gt;3.建议你可以百度一下it修真院看看，我就是在里面自学的。。。不收任何费用，没有视频和资料，只有任务和要求。。。就是实战做任务。。。不知道里面的css任务做完了算什么水平。。。有大牛可以进去看看告诉我们一下。。。我对初级中级前端完全没概念。。。在里面做任务的好处我觉得大概有两点。。&lt;br&gt;第一，是锻炼解决问题的能力，你可以到处找资料，只要能完成任务，在工作中的好处就是可以很快的解决自己不会的部分。。&lt;br&gt;第二，在里面认识一些志同道合的朋友，大家都是从零开始，没经验。。。我就认识了一个学习能力超强的。。他比我早一个多月完成任务出来工作。。。我很多不会的，实在是找不到怎么做的地方就问他。。。哪怕有时侯他不会给我回复，我心里也会很有底，因为总有多一个人帮我分担。。我们一起找资料。。当然很多时候他给我提供一个思路感觉就顺畅很多了。。。这是我们老大写的文章，你可以看看。。。 &lt;a data-hash="579c732d98e3797028793bb456af7b2b" href="//www.zhihu.com/people/579c732d98e3797028793bb456af7b2b" class="member_mention" data-tip="p$b$579c732d98e3797028793bb456af7b2b"&gt;@xdyl&lt;/a&gt; 手机打的。。。不会复制文章的链接。。反正你看看吧。。。写的文章都不错。。。对我们这种新手帮助还是蛮大的。。。（真的是对我帮助很大，很感谢 &lt;a data-hash="579c732d98e3797028793bb456af7b2b" href="//www.zhihu.com/people/579c732d98e3797028793bb456af7b2b" class="member_mention" data-tip="p$b$579c732d98e3797028793bb456af7b2b"&gt;@xdyl&lt;/a&gt;，被说是做广告也没什么啦 ）&lt;br&gt;4.找半个多月工作算是正常的。。。我当时也差不多。。。你要多投简历。。再一个要优化简历。。。。找不到链接了。。当时也是开始投了没反应。。。然后修真院的那个朋友给我了一个教你怎么写简历的链接。。总之就是1.2.3.4条理写清楚点。。贴个图给你看吧。。不知道有没有帮助&lt;br&gt;
&lt;img src="https://pic2.zhimg.com/4ce46b3eb002f50e5959ab690673530d_b.png"&gt;。。。。&lt;br&gt;希望你也能早日找到工作。。。。&lt;br&gt;不要心急。。。。边学变找也是不错的选择。。。。&lt;br&gt;加油。。。。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46236752/answer/100628557</link>
  <guid isPermaLink="false">1146753</guid>
  <pubDate>Thu, 12 May 2016 19:54:29 -0700</pubDate>
 </item>
 <item>
  <title>



有什么适合碎片时间看的计算机基础书籍推荐？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="9651618" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;目前在学JS。我每天碎片时间太多，无法直接敲代码练习，实操的练习时间还是有的。只是不想浪费这些碎片时间。有没有书可以推荐下，比如计算机基础类的，算法等等&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
学js?看来是要入前端坑啊。。。推荐几本看过的&lt;br&gt;从你的需求来看，比较适合中低深度的科普性书籍&lt;br&gt;&lt;br&gt;1.『图解HTTP』&lt;br&gt;做前端不可避免的要了解 HTTP 协议，官方协议文档虽然准确，却充满着通篇晦涩的术语。这本薄薄的书入门是一个很好的选择。&lt;br&gt;图文并茂，准确生动。建议最好看完一部分用chrome看看网络请求对照理解。&lt;br&gt;&lt;br&gt;2. 『JavaScript 高级程序设计』&lt;br&gt;就是大家口中的红宝书，刚入行的时候也被这『高级』二字吓到，只敢远观不敢亵玩。&lt;br&gt;直到某天在公交车上看到一个哥们在看这书（看来学js的真是烂大街了），跑过去聊了会。这哥们当时在淘宝实习的，跟我说这书非常基础。。后来自己看了果然写的很直白。&lt;br&gt;所以千万别被书名忽悠啊，大胆看吧~&lt;br&gt;&lt;br&gt;3.『编程大师访谈录』&lt;br&gt;顶级程序猿们的日常，有种读小说的感觉，无阅读压力。&lt;br&gt;不是教你锯木头，而是让你产生对大海渴望。&lt;br&gt;&lt;br&gt;4.『颈椎病康复指南』&lt;br&gt;哈哈，此乃程序猿终极读物，推荐这个主要希望你入行就能关注自己的健康。&lt;br&gt;就想某同事说的，做什么工作最终拼的都是身体素质啊~&lt;br&gt;&lt;br&gt;还有一些什么『黑客与画家』、『编码』、『大话数据结构』，都只看过小部分，有兴趣也可以了解了解。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/43605497/answer/100631030</link>
  <guid isPermaLink="false">1146752</guid>
  <pubDate>Thu, 12 May 2016 19:54:29 -0700</pubDate>
 </item>
 <item>
  <title>



React 组件设计思路？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10406048" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;最近在开发一些通用的 React 组件，但是当一个组件功能越来越多，比如：&lt;br&gt;&lt;br&gt;椅子 VS 带轮子的黑色真皮椅&lt;br&gt;&lt;br&gt;不想把所有可能的功能集成到一个组件下（例如某 dataTable 插件几千行代码。。。），我的想法是组件独立：椅子、带轮子的椅子，但是继续增加功能点的话，组件的数量是指数级的（排列组合），也想到用高阶组件的方式去组合。&lt;br&gt;&lt;br&gt;现在比较迷惑，总觉得没有完美的方式。软件开发中，这种情况业界有一些比较认同的思想去解决吗？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
所以定义边界是一项很重要的事情。就算是通用部件，也不可能适合所有情况。我更倾向于，在特定的应用范围做到 部件本身更轻量切适度的抽象（react感觉对于抽象的处理还是很简单和局限的），然后在用到实际项目中 ，来不断丰富特性吧……然后越来越重，越来越不通用。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/45484086/answer/100632300</link>
  <guid isPermaLink="false">1146751</guid>
  <pubDate>Thu, 12 May 2016 19:54:29 -0700</pubDate>
 </item>
 <item>
  <title>



怎样才能写出一个兼容性很好的网站？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="2968784" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
泻药啊，这个问题挺难回答，谁知道接下来会发现啥奇葩兼容问题。。。&lt;br&gt;&lt;br&gt;我就写写我遇到过的一些解决方法吧，在此也算是做个整理了。&lt;br&gt;&lt;br&gt;1、在head里加&amp;lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&amp;gt;让ie以最高级模式渲染文档，这能解决ie各版本之间的部分兼容问题；&lt;br&gt;2、掌握一些css Hack手段，这些一搜一大把；&lt;br&gt;3、如果需要，在head里引入html5.js这个文件，搜吧，网上也有，解决低版本ie中html5标签不识别问题，当然，没特殊需求也可以选择不用html5标签。&lt;br&gt;4、ie6还是ie8版本以下浏览器来的，好像不支持css的"&amp;gt;"选择器，即div&amp;gt;span 这样的是渲染不出来的，所以也要慎重；&lt;br&gt;5、说个微信浏览器里的一个坑：不知道是个例还是普遍，之前需要给元素添加border-radius：5px与transform: matrix(1, 0, 0, 1, 0, 0);两个css属性，如果就这样加上，圆角失效，如果改成border-radius：5px;-webkit-ransform: matrix(1, 0, 0, 1, 0, 0);就没问题；如果改成transform: matrix(1.1, 0, 0, 1, 0, 0);即只要matrix里不是1,0,0,1,0,0就没问题，是不是很神奇~导致原因在此表示不知道。。。所以css3里的一些属性也要慎重使用，说不定你也会碰到很多坑。&lt;br&gt;6、这几天刚遇到的，有时候我们在手机浏览器中需要input框，但是点击输入的时候手机输入法的面板会弹出挡住input框，网上搜索，发现可以用js检测window.innerHeight这个属性来解决，因为输入法面板弹出来的时候window.innerHeight会变小，是个完美的解决方案，但是，如果把input设置为position:fixed,那么有的微信浏览器的window.innerHeigh没有变化，这也是个坑。&lt;br&gt;7、再说个JS的，360浏览器里貌似保存不了图片对象，比如有时候我们需要定义一个图片对象：&lt;br&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;code class="language-text"&gt;var newImg = new Image();
newImg.src = "图片路径";
if (!newImg.complete) {
    newImg.onload = function() {
       //代码
    }
}else{
  //代码
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;一般情况下，一张图片加载成功后再通过其他的事件打开的时候就不会再newImg.onload了，但是360浏览器，只要调用这个图片对象，他就会再onload一遍，浪费啊浪费；哦，对：src 属性写在onload前面的话，好像在ie低版本中会出错。&lt;br&gt;8、我又想起一个jquery的坑，因为jquery的版本也一直更新，所以很多用习惯的方法也会被遗弃，这不算兼容问题，就是遇到某个方法不能用，就考虑考虑是不是用的方法与当前引入的jq版本不一致，比如：自从jquery1.7版本以后bind()函数推荐用on()来代替；&lt;br&gt;9、说起bind，我又想起js的添加事件方法：addEventListener()，这东西也是ie8以前版本不支持；&lt;br&gt;10、说到js，难免会想到选择器，后来的querySelector系列选择方法也是ie8以下版本不能用，不光ie，其他的也一样；&lt;br&gt;11、一说兼容这丧良心的东西，多如牛毛，感觉一下好多问题都涌到嘴边我又一时整理不出不知如何说，这不我又想起了css的一个经典问题：垂直居中。。。这个不多说了，解决办法往上也有很多。。。&lt;br&gt;12、啊对了，还有input的placeholder、number等新属性。。。&lt;br&gt;先写这么多吧，想起来再补充。。。&lt;br&gt;---------------------------------------------&lt;br&gt;忽然发现，写这么多貌似不太对题啊。。。&lt;br&gt;其实写一个兼容好的网站，我觉得还是套用框架吧，比如bootstrap等，他们已经解决了很多兼容问题了，然后再根据自己项目的个性化部分好好精雕细琢。也需要去借鉴那些好的站是怎么写的，有用的地方就直接扒下来。&lt;br&gt;我总觉得难点还是在与ie8以下的浏览器的兼容，其实可以写两套方案，针对ie8一下的，还是降低一些要求吧，只要布局大致相同，展示出核心功能就好，然后加个换浏览器的提示就好。具体情况具体对待吧。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/26964522/answer/100632620</link>
  <guid isPermaLink="false">1146750</guid>
  <pubDate>Thu, 12 May 2016 19:54:29 -0700</pubDate>
 </item>
 <item>
  <title>



极客学院推出的5k左右的前端就业班值得报名学习吗？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="6851176" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;本人今年环境工程本科毕业，来到一家小的制造业企业做EHS，可是公司不会重视EHS这块，自己现在也是做一些打杂的活，还在职。&lt;br&gt;于是想另寻出路，长远打算，准备入行互联网，现在从前端入手，已经学习了一个半月，都是在空闲的时间通过看书（head first系列），和观看一些视频来自学。现在感觉学习进度慢了很多，而且也没啥实战经验。所以就想到报名培训班，可通过在知乎上了解的信息，发现那些线下的培训班，不但价格高，效果也不好，还有被骗的风险，于是放弃这方面的考虑。&lt;br&gt;这两天我又在极客上看到他们有推出web前端线上的培训课程，费用5k的样子，而且学习时间也比较自由，我想问一下极客学院靠谱不？这样的培训班值得一报吗？最好有正在学习的同学来说一下体验，或者各位大神能给我指点一下学习方法，感谢各位！&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
&lt;p&gt;你以为默默地看着极客学院的视频默默地coding那你就错了，虽然我最初也是这么认为的。它是练出来的。极客的课程比精炼，时间不长，还把要说的都讲了。后来我就是跟着极客的课程一步一步的学习，跟着上面动手练习。时间一长，也就熟练了，后来老师要交一个植物大战僵尸的作业，我还是第一个完成的呢！没办法，练出来了。学完web前段基础课程之后，我发现自己比较喜欢后端开发，于是我就开始学jsp，servlet这些课程。由于我一直坚持练习，动手能力也得到了很大提高，还和学长完成了个小项目。虽然不是很熟练，但是和刚刚接触开发时的我相比，已经进步很大了。所以同意很多同学提出的，代码就是干，不撸是不出效果的。&lt;/p&gt;
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/36610007/answer/100634723</link>
  <guid isPermaLink="false">1146749</guid>
  <pubDate>Thu, 12 May 2016 19:54:29 -0700</pubDate>
 </item>
 <item>
  <title>



学web前端是自学好还是去培训机构？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="4112183" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;问题已关闭&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
其实web前端很简单，自学完全可以入门。&lt;br&gt;首先你必须学会java，因为这是最基础，以后你找工作也是最常用到的一个软件，所以前期可以上网找一些java教程、书籍之类的看看，把基础知识学会。&lt;br&gt;然后学一下ps、平面设计软件等等，找工作时也会用到。&lt;br&gt;但是会这些你就会web前端开发了吗？当然不是，前端工程师是一门讲究创意的学问，没有开发经验很多都是空谈，作出来的作品也是差的很。所以平时要多积累素材，最好建立自己的素材库，没事的时候拿出来分析分析别人为什么做的好。&lt;br&gt;最后如果你实在没有什么好的方向，可以报一家web前端设计培训机构&lt;a href="//link.zhihu.com/?target=http%3A//www.scdingyu.cn/kcdq/web/" class=" external" target="_blank" rel="nofollow noreferrer"&gt;&lt;span class="invisible"&gt;http://www.&lt;/span&gt;&lt;span class="visible"&gt;scdingyu.cn/kcdq/web/&lt;/span&gt;&lt;span class="invisible"&gt;&lt;/span&gt;&lt;i class="icon-external"&gt;&lt;/i&gt;&lt;/a&gt;，鼎育教育就可以，报培训班的好处就是有人教，比较系统。&lt;br&gt;还有就是有同学跟你一起讨论，加速自己成长。最后，祝你学习成功，找到好工作
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/29823703/answer/100635432</link>
  <guid isPermaLink="false">1146748</guid>
  <pubDate>Thu, 12 May 2016 19:54:29 -0700</pubDate>
 </item>
 <item>
  <title>



DOM 元素ID是全局变量？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10701342" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;浏览器是怎么把拥有id的元素成为window对象的，对于网页来说全局变量越少越好，也就是说id名也不能太多？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
根据 HTML 规范——&lt;a href="//link.zhihu.com/?target=https%3A//html.spec.whatwg.org/multipage/browsers.html%23named-access-on-the-window-object" class=" wrap external" target="_blank" rel="nofollow noreferrer"&gt;HTML Standard&lt;i class="icon-external"&gt;&lt;/i&gt;&lt;/a&gt;，拥有 id 属性的任何元素，其属性值将作为 window 对象的属性（自然也就是全局变量）。至于浏览器是怎么弄的，浏览器都能解析 DOM 树了，处理个属性有啥稀奇的？&lt;br&gt;&lt;br&gt;“对于网页来说全局变量越少越好”主要是为了防止与其他全局变量发生命名冲突。&lt;br&gt;&lt;br&gt;首先，同页面元素 id 不应重复，这就已经杜绝了一部分命名冲突。&lt;br&gt;&lt;br&gt;其次，由于 HTML id 和 JS 变量的命名规范不同（比如 id 允许连字符而变量名反之），我们一般也不直接把 id 值作为变量使用，而是更倾向使用标准的 DOM 方法，所以即使有其他全局变量覆盖了 id 的命名，也无伤大雅。&lt;br&gt;&lt;br&gt;另外，如果我们努力执行“全局变量越少越好”的编码方式，尽量少地声明全局变量，那么与现有 id 发生冲突的几率将更小。&lt;br&gt;&lt;br&gt;当然，如果你习惯直接把 id 值作为变量使用，那确实要小心谨慎些了。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46219118/answer/100637327</link>
  <guid isPermaLink="false">1146747</guid>
  <pubDate>Thu, 12 May 2016 19:54:29 -0700</pubDate>
 </item>
 <item>
  <title>



花整个大学的时间研究前端好吗？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10696744" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;现在大一（女生），对于后端开发感觉自己学不下去也没兴趣，正在自学前端基础，想成为前端工程师，想花大学这几年好好学前端，这值得吗？现在确定方向会太早了吗？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
我觉得大学真正教会我们的，倒不是书本那些知识，而且那些知识也确实太落后了。&lt;br&gt;&lt;br&gt;大学给我们带来的应该是一个良好的学习环境和与人交流学习的平台。&lt;br&gt;&lt;br&gt;我从大一下学期开始，到大四毕业，几乎就没上过课了，我在干什么，我在学前端，是的，我大学一直在默默的从0到1研究前端。&lt;br&gt;&lt;br&gt;我上的并不是什么名牌大学，学的专业也跟互联网不沾边，但我就是热爱前端，所以我不顾一切的在做自己认为正确的事情，这也导致我大学重新了3门，挂了5科，但顺利的是最后还是成功的拿到了毕业证和学位证（能毕业还是要毕业的好，毕竟我们不是乔布斯和马克扎克伯格）。&lt;br&gt;&lt;br&gt;其实这样的选择有时是挺痛苦的，因为那时候确实感觉很难，尤其是JS方面。那时候主要是看书，很多次都是半途而废，后来JS实在学不下去了，然后知道了有个东西叫jQuery，感觉学了之后整个人都好起来了，于是终于可以自己做出来些效果了。&lt;br&gt;&lt;br&gt;再后来就做了越来越多的独立产品，直到做了一个校园webapp，2个星期就拥有2000用户后，感觉真是整个大学最开心的时候了。那时真是感觉自己吊爆了。&lt;br&gt;&lt;br&gt;然后紧接着就去腾讯实习了俩月，回来后拉着好哥们开始做了一个hybrid app，具体可以看这个问题&lt;a href="https://www.zhihu.com/question/22138674" class="internal"&gt;今天我开发的校园社交APP上线，但是我不懂运营怎么办？ - 产品经理&lt;/a&gt; 做完这个，大学也就结束了，然后找工作却成了头疼的事，那时候应届嘛，第一想法当然是想进百度腾讯这样的互联网公司，但笔试面试了很多，尤其是百度，最后一面给我的感觉就是肯定没有问题了，但仅仅是感觉而已，就这样，所有的校招都没有了联系。&lt;br&gt;&lt;br&gt;这样玩下来，总体的感觉是：大学虽然一直在学前端，也一直没有放弃，但最终学到的还不如自己在工作半年学到的多，但这不能证明在大学不学习前端，在工作中学习就可以了，这是不可能的，没有前面的铺垫，是不可能一步到位的。做开发，天赋很重要，但过程更重要。&lt;br&gt;&lt;br&gt;先写到这吧，后面有机会再续后面的故事吧。&lt;br&gt;&lt;br&gt;顺路打个小广告，欢迎大家入驻高逼格程序员社区&lt;a href="//link.zhihu.com/?target=https%3A//www.talkingcoder.com/" class=" wrap external" target="_blank" rel="nofollow noreferrer"&gt;TalkingCoder&lt;i class="icon-external"&gt;&lt;/i&gt;&lt;/a&gt;
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46207738/answer/100640419</link>
  <guid isPermaLink="false">1146746</guid>
  <pubDate>Thu, 12 May 2016 19:54:29 -0700</pubDate>
 </item>
 <item>
  <title>



react native 适配安卓有难度么？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="4046251" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;为什么react native 目前只适配ios&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
组里开发android的小朋友， 使用RN也有一段时间了，有一天忽然和我说：“我觉得React IOS是亲儿子， React Android是捡来的”&lt;br&gt;&lt;br&gt;当然看得出React IOS更加成熟，开发工具更好用。 &lt;br&gt;&lt;br&gt;React Android确实有很多意想不到的坑， 适配虽然不会比IE7的适配更难， 但问题在于RN Android的hack技术， 还是un documented。 这给RN的适配带来了很大难度， 我们组遇到的很多问题，一开始都抱头痛哭。  &lt;br&gt;&lt;br&gt;我不是来黑RN的， 我是RN的支持者。 总体来说VIEW层80%兼容吧。 虽然还是有很多问题，在Android机器上，比如说TouchableX里面直接放Text， 有时候会触发Bug。 再比如说TouchableX可能会需要较多操作的setState产生线程冲突造成死锁……万恶的touchableX外， 还有RN android的线程处理，有一定的问题。 虽然官方承诺正在修复。&lt;br&gt;&lt;br&gt;我还是觉得IOS，android工程师一起开发体验感觉很好，毕竟牛X的工程师，合起来用，就更牛X。 创造力当然是在叠加…… &lt;br&gt;&lt;br&gt;卡顿的地方，都有相应的黑技巧。 有时候是requestAnimationFrame， 有时候是更换下布局。 有时候是缓存VIEW。 真的非常追求体验的工程师， android上要下功夫了。 但所有的问题， 都是"solve once, use anywhere” ……历经辛苦，我们已经顺利的在200元左右的安卓机器上跑了非常流畅的RN应用，当然我们还没有来得及将所有的经验公布出来。 &lt;br&gt;&lt;br&gt;&lt;br&gt;今天早起了，说说原理吧。 Android如果卡顿了， UI的FPS仍然有60左右， 往往是js渲染线程被无限制拖低了？ 可是， 哪有那么多JS要跑？ 何况是virtual DOM ＋ reconciliation技术的RN ? 所以肯定是死锁。 在 js的main线程setState， 改变了virtual DOM 准备往真的RN android上同步时候， React Native Bridge的调度算法出了问题（一定是deal lock， 没有其它可能，因为IOS不卡）。 所以优化技巧往往是让JS的代码在时序上下功夫， 比如在setState时候注意加requestAnimationFrame。 &lt;br&gt;&lt;br&gt;当然还有一个更彻底的解法， 就是弄清楚RN的源代码然后去提PR。 其实从virtual DOM和android同步渲染的reconciliation算法，我觉得是这块需要优化～～ &lt;br&gt;&lt;br&gt;&lt;br&gt;总的来说，瑕不掩瑜。 虽然github上android的PR已经堆积如山， 虽然react android不是fb亲生的儿子， 但在注入了community的灵魂后， 我还是非常看好 React Android。至少对于读过RN android代码的我， 比起某国产开源轮子的源代码， 我更加愿意去使用 React Android。 而且我发现， RN正在给Android开发带来更先进的理念。至少可以畅想， 至少自由 ，至少我们可以想想如何用cycle.js去实现整个APP的架构。 或者使用actor,curry～～ 去让APP更加富有活力。 
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/29658748/answer/100615181</link>
  <guid isPermaLink="false">1143525</guid>
  <pubDate>Thu, 12 May 2016 15:54:40 -0700</pubDate>
 </item>
 <item>
  <title>



React Native有什么优势？能跟原生比么？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="6896401" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;团队开发一直在用原生开发，最近有人提议用React Native，有这个必要么？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
先抛开最原始的问题“团队是一个native团队， 使用rn有必要么？ ”&lt;br&gt;&lt;br&gt;先说说RN ,我们组用RN已经有一段时间了， 开发出了体验很流畅的纯RN产品， 以及相关的工具，比如处理安全问题、更新问题。 &lt;br&gt;&lt;br&gt;首先，必须承认，RN不是JS工程师就可以搞定的。 不懂IOS还好， 只是有问题，无法解（但问题不多）。 团队没有懂android整个架构的工程师， android就可能有各种问题。 优化android是一件非常繁琐的事情。 具体可以看我在另一个地方的回答，大家就知道优化android需要很多的黑科技。&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;卡顿的地方，都有相应的黑技巧。 有时候是requestAnimationFrame， 有时候是更换下布局。 有时候是缓存VIEW。 真的非常追求体验的工程师， android上要下功夫了。 但所有的问题， 都是"solve once, use anywhere” ……历经辛苦，我们已经顺利的在200元左右的安卓机器上跑了非常流畅的RN应用，当然我们还没有来得及将所有的经验公布出来。 &lt;br&gt;&lt;br&gt;&lt;br&gt;今天早起了，说说原理吧。 Android如果卡顿了， UI的FPS仍然有60左右， 往往是js渲染线程被无限制拖低了？ 可是， 哪有那么多JS要跑？ 何况是virtual DOM ＋ reconciliation技术的RN ? 所以肯定是死锁。 在 js的main线程setState， 改变了virtual DOM 准备往真的RN android上同步时候， React Native Bridge的调度算法出了问题（一定是deal lock， 没有其它可能，因为IOS不卡）。 所以优化技巧往往是让JS的代码在时序上下功夫， 比如在setState时候注意加requestAnimationFrame。&lt;/blockquote&gt;
&lt;br&gt;其次我想说， RN也不是Native工程师可以顺利搞定的。 native工程师做的时候会束手束脚，其实这和npm生态有关。 在开发native产品时候， 大部分需要用到的架构（只说架构，不说一些library），都是官方搞定的。 而RN如果说， 架构很好， 那是社区搞定的。 所以对于刚刚接触RN的native工程师， 会觉得RN非常难以架构， 没有架构的工具。 比如之前某朋友提到不知道怎么databinding，不知道怎么用rx。 所以说RN不是native工程师，就可以规划得非常合理。&lt;br&gt;&lt;br&gt;最后我想说说，RN的一些优势和问题。 1. 两端并行开发（共享智慧） 2. 热更新（升级） 3.Open standard（React redux cycle...）。4. 社区力量。  这些优势，利用好并不容易。如果团队在RN上有足够技术积累，当然开发会变快。 体验可以做到更好，力量可以更集中。 这是RN存在的价值。&lt;br&gt;&lt;br&gt;&lt;br&gt;我花了篇幅陈述了上述三个问题后， 我现在回答最开始抛出的问题“团队是一个native团队， 使用rn有必要么？ ”。我想说， RN的学习成本很高。 所以用不用取决于你对团队掌握这样一门跨语言的技巧有多大的信心。 团队足够优秀， 固然没有问题；团队水平一般， 其实就很难推进。 毕竟无论是native工程师， 还是前端js工程师， 组成一个team互相学校到精华， 并不是所有人都开心， 而且还会有人因此丢了饭碗。 如果整个团队用了rn就意味着有人要离去。 &lt;br&gt;&lt;br&gt;其实既然大家舍不得分离，那就不如等待未来的来临，等到不得不改变的时候再去改变，那时才有改变的理由和勇气。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/36722811/answer/100615845</link>
  <guid isPermaLink="false">1143524</guid>
  <pubDate>Thu, 12 May 2016 15:54:40 -0700</pubDate>
 </item>
 <item>
  <title>



为什么用Unity3D开发游戏是用C#，JS开发而不是用C++？U3D的设计者是怎样考虑的？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="1860995" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;正常来说用C++性能方面不会好一点么？没学过C#和JS，不太了解选择C#和JS优势是在哪方面呢？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
首先，我想表达我的观点：&lt;br&gt;并非是Unity选择了C#，而是Mono支持C#，并且C#在Mono支持的编程语言中相对优秀和成熟。&lt;br&gt;&lt;br&gt;Unity 引擎底层是用C++写的，而Mono为它提供了脚本化的环境，所以说Unity选择什么编程语言来作为它的脚本语言，很大程度上取决于Mono，Mono目前支持的语言有C#、Visual Basic、JavaScript、Python等等，只要官方愿意做这样的事情，编程语言都不是问题。&lt;br&gt;&lt;br&gt;为什么选择C#呢？因为C#是.NET/Mono的主流语言，相对其它语言来说，是一门优秀而成熟的语言，背后由微软提供强力支持；为什么不选择C++呢？答案是为了降低门槛。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/24197727/answer/100586971</link>
  <guid isPermaLink="false">1141178</guid>
  <pubDate>Thu, 12 May 2016 13:54:16 -0700</pubDate>
 </item>
 <item>
  <title>



深圳不是说很缺前端吗？为什么我找了半个月工作还是没找到前端的工作？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10708424" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;之前下班每天坚持自学四个小时以上，学了四个月。比较熟悉html、css，会用jquery、js写一些常见的动画，仿了一些页面。但是投了挺多简历，结果大部分都是培训机构通知我去面试。正常的公司都想要能独立做项目的。我对待遇要求不高，想先学好技术，真正入门，怎么找工作那么难呢？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
先来说下我自己，大三，本科，非985.211的末流一本，学了一个半月了，一般的企业网站的静态拿到手切图制作，一天可以做一个页面，是我目前的速度，主要练手太少，累积才练了几个简单的页面，JavaScript dom 看了一半了，JavaScript权威指南也在啃，毕竟很全，配合着JavaScript语言精粹对重点部分深入学习！互联网公司的校招9月也要开始，也就是说我还能学三四个月就得去申请各种网申了，你每天四个小时，学到个啥水平我也估计不出，反正我觉得自己自学起来效率不是太高，每天有六个小时以上的学习时间，周末是从早坐到晚，12小时以上，然而我是没信心能在校招拿到一个还算可以的offer的，毕竟和全国的学生在竞争而我也学习太晚了，但是可以积累很多经验，笔试面试，知道自己不足，在明年的这个时候，我想一年的学习也能厚积薄发了！&lt;br&gt;好了开始说你吧！我认识很多自学的朋友，转行的也很多，有培训班出身，有自学几个月找到工作的！其实可以给你点建议，你可以伪造下工作经验，一年就行，手上没项目经验就自己写个博客，记住别套模板，把自己能想到的都写进去，参考下好看的个人博客，排版和主色调注意下，找个4.5千的工作我想不会难的！自学不易，且行且珍惜！
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46236752/answer/100595299</link>
  <guid isPermaLink="false">1141177</guid>
  <pubDate>Thu, 12 May 2016 13:54:16 -0700</pubDate>
 </item>
 <item>
  <title>



json 指的是字符串还是对象？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="5993682" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;对于原生的api：JSON.parse和JSON.stringify来说，stringify是“把…变成字符串”的意思，parse是“转换”，这两个方法还好理解，前者把json对象转成json字符串，后者反之，在这里我们是否可以认为我们所说的JSON指的是json对象。&lt;br&gt;但在angular里面有下图这两个函数:&lt;br&gt;&lt;img src="https://pic3.zhimg.com/a77eef89ae40ca7170e73ce12aa99b46_b.png" data-rawwidth="493" data-rawheight="193" class="origin_image zh-lightbox-thumb" data-original="https://pic3.zhimg.com/a77eef89ae40ca7170e73ce12aa99b46_r.png"&gt;&lt;img src="https://pic2.zhimg.com/02430bc8856c83616a6707ec6da3a7b5_b.png" data-rawwidth="392" data-rawheight="127" class="content_image"&gt;&lt;br&gt;假如我不看源码不看api说明，我怎么知道toJson是转成对象呢还是转成字符串呢？这里的意思似乎JSON指的是JSON字符串。那么，事实上，到底该怎么理解？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
JSON不是对象，是一种格式。也就是文本了。&lt;br&gt;想想看我们要能存储数据，并可以让别人读取，怎么办？&lt;br&gt;显然，我们规定某一种格式，按照这个格式存数据，别人按照这个格式就能获取一模一样的数据。&lt;br&gt;&lt;br&gt;许多动态语言里，对象的本质都是一个哈希表，把对象变成一个json字符串，就是把这个哈希表里的数据变成一个字符串的过程，也就是序列化。从这个字符串我们按照json的规则可以在读出一模一样的数据结构来。&lt;br&gt;&lt;br&gt;同样，类似的格式还有yaml。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/34468150/answer/100595988</link>
  <guid isPermaLink="false">1141176</guid>
  <pubDate>Thu, 12 May 2016 13:54:16 -0700</pubDate>
 </item>
 <item>
  <title>



深圳不是说很缺前端吗？为什么我找了半个月工作还是没找到前端的工作？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10708424" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;之前下班每天坚持自学四个小时以上，学了四个月。比较熟悉html、css，会用jquery、js写一些常见的动画，仿了一些页面。但是投了挺多简历，结果大部分都是培训机构通知我去面试。正常的公司都想要能独立做项目的。我对待遇要求不高，想先学好技术，真正入门，怎么找工作那么难呢？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
还是要想想你自己的问题。&lt;br&gt;当时找工作的时候自己在家想了半天，觉得花在js上面的时间确实是很少，写 java去了。好像是马士兵说的话，你们先把java学完再学js，否则会搞混。这是个实话。学完一个再学第二个。&lt;br&gt;挑好老板很重要，不过学生基本是不太可能自己找一个好老板出来的，你很难有这种好运气，你只能换到一个好老板出来。&lt;br&gt;至于以前的老板封杀你，其实只有李开复，傅盛这种级别的才会被封杀。封杀也不是你能决定的，听天由命，这个就是天将降大任于斯人也了。&lt;br&gt;我见过很多人跟我说考研的话不能有任何一门挂科，天津师范的人跟我说的，我一进那个校园，就不停地有人和我说考研千万不能挂科，挂一科，老师就认为你大学没好好学习。复试会被踢出来，还有人说六级不到550会被踢出来，而六级考试大多数人这辈子也考不了几次。&lt;br&gt;我压根就没打算考研，随便看看数学而已。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46236752/answer/100600592</link>
  <guid isPermaLink="false">1141175</guid>
  <pubDate>Thu, 12 May 2016 13:54:16 -0700</pubDate>
 </item>
 <item>
  <title>



花整个大学的时间研究前端好吗？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10696744" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;现在大一（女生），对于后端开发感觉自己学不下去也没兴趣，正在自学前端基础，想成为前端工程师，想花大学这几年好好学前端，这值得吗？现在确定方向会太早了吗？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
大学四年需要学习的东西很多。&lt;br&gt;&lt;br&gt;我同学大学没怎么听课，自学三个月前端拿到9k的offer。&lt;br&gt;&lt;br&gt;遂得出结论，大学四年不如自学，要是早点自学分分钟进BAT。&lt;br&gt;&lt;br&gt;其实我觉得科班要明白这些专业课程的意义，就像高中学习的知识，也许除了高考不会帮助你很多，但是让你可以理解更多的东西。
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46207738/answer/100604100</link>
  <guid isPermaLink="false">1141174</guid>
  <pubDate>Thu, 12 May 2016 13:54:16 -0700</pubDate>
 </item>
 <item>
  <title>



深圳不是说很缺前端吗？为什么我找了半个月工作还是没找到前端的工作？


</title>
  <description>&lt;div id="zh-question-detail" class="zm-item-rich-text" data-resourceid="10708424" data-action="/question/detail"&gt;

&lt;div class="zm-editable-content"&gt;之前下班每天坚持自学四个小时以上，学了四个月。比较熟悉html、css，会用jquery、js写一些常见的动画，仿了一些页面。但是投了挺多简历，结果大部分都是培训机构通知我去面试。正常的公司都想要能独立做项目的。我对待遇要求不高，想先学好技术，真正入门，怎么找工作那么难呢？&lt;/div&gt;


&lt;/div&gt;&lt;div style='margin: 3px 0px; border-top-width: 2px; border-top-style: solid; border-top-color: #EEEEEE; font-size: 3px'&gt;　&lt;/div&gt;&lt;div class="zm-editable-content clearfix"&gt;
谢邀！&lt;br&gt;从题主的问题来问答：&lt;br&gt;&lt;b&gt;1 深圳不是说很缺前端吗&lt;/b&gt;&lt;br&gt;安利一下，是个互联网公司都缺工程师，缺好的技术。我所在的公司招聘一个前端工程师，花了二个月还是没有招聘到合适的前端。所以，公司都缺人，找不到合适的人，一直都在招聘。&lt;br&gt;再说题主说的深圳，不要听说，听别人说很缺，听别人说前端很火。题主在自学前端，已经打算入工程师的门，就可以试着用技术来实现一些很酷的想法，比如这几位的实现方式，&lt;br&gt;&lt;a href="https://www.zhihu.com/question/36763466" class="internal"&gt;如何从拉勾网往里面来看互联网企业里面的数据挖掘现状如何？ - Python&lt;/a&gt;&lt;br&gt;&lt;a href="http://link.zhihu.com/?target=http%3A//www.cnblogs.com/zery/p/5132065.html" class="internal"&gt;让数据决策你的行为--拉勾网数据分析&lt;/a&gt;&lt;br&gt;对，让数据来决定你的行为，题主打算入行前端，可以学着用node.js写个爬虫，把数据爬到文本或者数据库中，做一下数据分析，相信不是一件很难的事情。&lt;br&gt;就这个帮你解决问题的程序就是你的一个实战项目，解决了你的问题，还有了项目经验。写到简历里，证明了几个问题：1 你是一个技术热爱型的选手 2 学习能力不错。&lt;br&gt;回答你的问题&lt;br&gt;&lt;b&gt;不缺前端，缺优秀的前端工程师。&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;2 为什么我找了半个月工作还是没找到前端的工作&lt;/b&gt;&lt;br&gt;我觉得有必要普及一下 公司需要的前端工程师 你理解的前端工程师&lt;br&gt;&lt;br&gt;简单判断一下你理解的前端工程师：&lt;br&gt;1、会ps切图，把设计图转化成网页；&lt;br&gt;2、可以用jquey或者js编程，为网页制作动画交互效果；&lt;br&gt;3、用HTML和CSS编程，实现页面效果。&lt;br&gt;&lt;br&gt;可能一个前端工程师在做的是：&lt;br&gt;1、在设计师和工程师之间创建可视化的语言；&lt;br&gt;2、和后端工程师定制约定的交互接口，理解web运行机制&lt;br&gt;3、保证后台连接安全，防止跨站点脚本（ XSS）和跨站点请求伪造（ CSRF ）&lt;br&gt;4、更好的语义化结构，考虑SEO等&lt;br&gt;5、程序在不同设备上的兼容性，适配等；&lt;br&gt;6、页面加载速度，性能优化&lt;br&gt;等等&lt;br&gt;&lt;br&gt;理解你要求职的职位要求，对你大大有好处，还有时间多去学习。&lt;br&gt;&lt;br&gt;&lt;b&gt;3 如何找到一份前端的工作&lt;/b&gt;&lt;br&gt;看到提问和一些回答还是想简单说一下如果才能找到一份前端的工作。&lt;br&gt;先纠正几个回答或是提问的观点：&lt;br&gt;&lt;br&gt;1 我对待遇要求不高，想先学好技术&lt;br&gt;我要告诉你的是企业不是学校，公司也是发福利的地方，招聘你进去就是要你能贡献价值，如果你没有价值，你每个月不要工资给公司钱都不会有公司招聘你。所以，让自己有价值，你的价值会值钱。&lt;br&gt;&lt;br&gt;2 性别歧视&lt;br&gt;不存在！不存在！不存在！&lt;br&gt;&lt;br&gt;3 不想招基础一般般或者没项目经验的&lt;br&gt;有项目经验会加分，没有不会就没有公司招聘。解决问题的思路都比基础重要&lt;br&gt;&lt;br&gt;如何找一份前端工作&lt;br&gt;1 对技术狂热，不想发狂的话那就热爱技术。爱上这个东西，你就会想到很多很酷的东西去实现，不会觉得写代码干一天在坐牢：）&lt;br&gt;2 基础知识很重要，灵活的运用基础知识解决问题很重要。这部分可以看我之前回答的如果准备面试来学习 &lt;a href="https://www.zhihu.com/question/26814439/answer/95140039" class="internal"&gt;还有半年时间，怎么准备前端工程师的校招？ - 秦墨鱼的回答&lt;/a&gt;&lt;br&gt;3 项目实战。题主也提到公司很关心这个问题，是的。公司很希望通过你的实际项目来了解你在前端岗位上的能力。所以去自己完成几个项目，把项目托管到线上，面试找工作的时候展示一下。&lt;br&gt;&lt;br&gt;最后如果题主真的花一周的时间，使用数据来决定你的行为，完成一个用node.js写个爬虫，抓取拉勾数据，存储到数据库，然后做一个炫酷的页面展现你的分析数据。我觉得离你找你工作很近啦
&lt;/div&gt;</description>
  <link>http://m.zhihu.com/question/46236752/answer/100604308</link>
  <guid isPermaLink="false">1141173</guid>
  <pubDate>Thu, 12 May 2016 13:54:16 -0700</pubDate>
 </item>

</channel>
</rss>
