XMTD-薇 v9412b怎么样接线

请输入您的产品关键词,多个词请用逗号隔开(例:变压器,电缆)
您当前位置:&&&&&&&&&
汽车实训中心设备中标结果
汽车实训中心设备中标结果
来自:采招网(http://www.bidcenter.com.cn/)
注册即可查看免费招标信息&&
服务热线:400-810-9688
如果您已经是会员请先
福建省教育招标采购服务中心-MJZ中标公告
闽财购计【号
MJZ 福建省教育招标采购服务中心
1、招标公告编号:
MJZ3闽财购计[闽财购计【号]号)
2、采购单位名称:
福建省教育生产供应管理办公室
3、采购单位地址:
福州市杨桥东路126号
4、联系人:
5、联系方式:
********或后可见
6、招标代理机构名称:
福建省教育招标采购服务中心
7、招标代理机构地址:
福州杨桥东路126号福建教育装备大楼六楼
8、联系人:
中国采招网,( bidcenter.com.cn)林星炜
9、联系方式:
****-********或后可见传真:****-********或后可见
10、招标公告日期:
11、采购单位确认日期:
12、中标情况:
详见下表:
简要技术指标
预算金额(元)
中标金额(元)
节约金额(元)
合同履行日期
第一包:汽车实训中心设备
详见招标文件
*******或后可见.00
*******或后可见.00
福建鸿马汽车检测设备有限公司
13、评委会成员:
王长平、吴苏宁、黄祖勇、沈沪瑛、苏金辉、李秀全、陈其生
投标供应商对中标有异议的,请在中标公告发布之日起七个工作日内,以书面的形式向招标采购单位提出质疑。
福建省教育招标采购服务中心
供应商服务
供应信息发布
采购商服务
手机客户端
微信公众号
全国免费咨询热线:400-810-9688
,即可查看免费招标信息
法人/总经理
招投标负责人(招投标办)
销售人员(业务部)
后勤人员(行政部)
我同意接受网站《用户服务条款》
服务热线:400-810-9688
,即可查看免费招标信息
服务热线:400-810-9688
,优先匹配项目,提高中标率!
电子邮箱:
填写您所关注的产品关键词分,以便我们将优质招标、项目及是发送至您的邮箱。&figure&&img data-rawheight=&1150& src=&https://pic4.zhimg.com/v2-e6be3f2b63e1de4e50ddf_b.jpg& data-size=&normal& data-rawwidth=&1642& class=&origin_image zh-lightbox-thumb& width=&1642& data-original=&https://pic4.zhimg.com/v2-e6be3f2b63e1de4e50ddf_r.jpg&&&/figure&&ol&&li&你的 JS 代码还没运行的时候,JS 环境里已经有一个 window 对象了&/li&&li&window 对象有一个 Object 属性,window.Object 是一个函数对象&/li&&li&window.Object 这个函数对象有一个重要属性是 prototype,干什么用的等会说&/li&&li&window.Object.prototype 里面有这么几个属性 toString(函数)、valueOf(函数)&/li&&/ol&&p&好,目前先知道这些就够了。&/p&&p&然后我们写一句代码&/p&&div class=&highlight&&&pre&&code class=&language-text&&var obj = {}
obj.toString()
&/code&&/pre&&/div&&p&这句代码做了啥?为什么 obj 有 toString() 属性?&/p&&figure&&img data-rawheight=&1202& src=&https://pic3.zhimg.com/v2-b922d48b00aab4a12d27de1ffc9659fa_b.jpg& data-size=&normal& data-rawwidth=&1432& class=&origin_image zh-lightbox-thumb& width=&1432& data-original=&https://pic3.zhimg.com/v2-b922d48b00aab4a12d27de1ffc9659fa_r.jpg&&&/figure&&p&这句话大概是让 obj 变量指向一个空对象,这个空对象有个 &code&__proto__&/code& 属性指向 window.Object.prototype。&/p&&p&这样你在调用 obj.toString() 的时候,obj 本身没有 toString,就去 obj.__&i&proro&/i&__ 上面去找 toString。&/p&&p&所以你调用 obj.toString 的时候,实际上调用的是 window.Object.prototype.toString&/p&&p&那么 window.Object.prototype.toString 是怎么获取 obj 的内容的呢?&/p&&p&那是因为 obj.toString() 等价于 obj.toString.call(obj) &/p&&p&同时 obj.toString.call(obj) 等价于 window.Object.prototype.toString.call(obj)&/p&&p&这句话把 obj 传给 toString 了。&/p&&p&&br&&/p&&h2&再看复杂一点的&/h2&&p&回到第一幅图&/p&&figure&&img data-rawheight=&504& src=&https://pic3.zhimg.com/v2-bbeb97fe60f9e18a9271aa_b.jpg& data-size=&normal& data-rawwidth=&720& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&https://pic3.zhimg.com/v2-bbeb97fe60f9e18a9271aa_r.jpg&&&/figure&&p&我们写一句代码&/p&&div class=&highlight&&&pre&&code class=&language-text&&var arr = []
arr.push(1) // [1]
&/code&&/pre&&/div&&p&请问这两句话做了什么?&/p&&figure&&img data-rawheight=&1366& src=&https://pic4.zhimg.com/v2-ad47ad13ffce5c03f4fbb_b.jpg& data-size=&normal& data-rawwidth=&1756& class=&origin_image zh-lightbox-thumb& width=&1756& data-original=&https://pic4.zhimg.com/v2-ad47ad13ffce5c03f4fbb_r.jpg&&&/figure&&p&看红色部分,var arr = [] 大概会让 arr 指向一个空对象,然后 arr.__&i&proto&/i&__ 指向 window.Array.prototype。(其实 arr 有一个 length:0,不过这里就忽略吧)&/p&&p&这样你在调用 arr.push 的时候,arr 自身没有 push 属性,就去 arr.__&i&proto&/i&__ 上找 push&/p&&p&因此 arr.push 实际上是 window.Array.prototype.push&/p&&p&arr.push(1) 等价与 arr.push.call(arr,1) &/p&&p&arr.push.call(arr,1) 等价于 window.Array.prototype.push.call(arr, 1)&/p&&p&&br&&/p&&h2&再再复杂一点&/h2&&p&arr.valueOf() 做了什么?&/p&&p&arr 自身没有 valueOf,于是去 arr.__&i&proto&/i&__ 上找&/p&&p&arr.__&i&proto&/i&__ 只有 pop、push 也没有 valueOf,于是去 arr.__&i&proto&/i&__.__&i&proto&/i&__ 上找&/p&&p&arr.__&i&proto&/i&__.__&i&proto&/i&__ 就是 window.Object.prototype&/p&&p&所以 arr.valueOf 其实就是 window.Object.prototype.valueOf&/p&&p&arr.valueOf() 等价于 arr.valueOf.call(arr)&/p&&p&arr.valueOf.call(arr) 等价于 window.Object.prototype.valueOf.call(arr)&/p&&p&&br&&/p&&p&看,JavaScript 其实很优美很简单。&/p&&p&只是你想复杂了而已:&/p&&p&prototype 指向一块内存,这个内存里面有共用属性&/p&&p&__&i&proto&/i&__ 指向同一块内存&/p&&p&prototype 和 __&i&proto_&/i&_ 的不同点在于&/p&&p&prototype 是构造函数的属性,而 __&i&proto&/i&__ 是对象的属性&/p&&p&&br&&/p&&p&难点在于……构造函数也是对象!&/p&&p&&br&&/p&&p&如果没有 prototype,那么共用属性就没有立足之地&/p&&p&如果没有 __&i&proto&/i&__,那么一个对象就不知道自己的共用属性有哪些。&/p&&p&&br&&/p&&h2&反证法&/h2&&p&假设我们把 __&i&proto&/i&__ 去掉,那么&/p&&div class=&highlight&&&pre&&code class=&language-text&&var obj = {}
obj.toString() // 报错,没有 toString 方法
&/code&&/pre&&/div&&p&所以你只能这样声明一个对象咯:&/p&&div class=&highlight&&&pre&&code class=&language-text&&var obj = {
toString: window.Object.prototype.toString,
valueOf: window.Object.ptototype.valueOf
obj.toString() // '[object Object]'
&/code&&/pre&&/div&&p&知道 __&i&proto&/i&__ 帮你省多少代码了吗?&/p&&p&&br&&/p&&p&假设我们删掉 prototype,包括 window.Object.prototype 和 window.Array.prototype。&/p&&p&那么 window.Object.prototype.toString 也一并被删除了。&/p&&p&然后我们基本就没法写代码了……&/p&&div class=&highlight&&&pre&&code class=&language-text&&var obj = {}
obj.toString() // toString 不存在,因为 toString 没有定义过啊
&/code&&/pre&&/div&&p&prototype 的意义就是把共有属性预先定义好,给之后的对象用。&/p&&p&自己想想吧~&/p&&p&&br&&/p&&p&新人搞不懂原型大抵是因为&/p&&ol&&li&不懂内存、引用&/li&&li&不懂链表、树等数据结构&/li&&li&不知道函数是一种对象&/li&&li&被 Java 的 class 关键字毒害了&/li&&li&还有一种可能是因为没遇到我&/li&&/ol&&p&&br&&/p&&p&&br&&/p&&a href=&https://zhuanlan.zhihu.com/p/& data-draft-node=&block& data-draft-type=&link-card& class=&internal&&方应杭:「每日一题」什么是 JS 原型链?&/a&&a href=&https://zhuanlan.zhihu.com/p/& data-draft-node=&block& data-draft-type=&link-card& class=&internal&&方应杭:JS 的 new 到底是干什么的?&/a&&a href=&https://zhuanlan.zhihu.com/p/& data-draft-node=&block& data-draft-type=&link-card& class=&internal&&方应杭:this 的值到底是什么?一次说清楚&/a&&p&以上是「方三篇」新人一定要看哦。想看视频版本可以购买我的网课(收费):&/p&&a href=&//link.zhihu.com/?target=https%3A//xiedaimala.com/courses/24ff-4de7-bf5b3181& data-draft-node=&block& data-draft-type=&link-card& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JS 深入浅出 - 写代码啦!&/a&&p&&br&&/p&&p&这幅图我还可以继续讲,把 JS 所有基础知识都能串起来。&/p&&p&&br&&/p&&p&比如很多人不懂什么是伪数组,很简单:&/p&&ol&&li&如果一个数组的 __&i&proto&/i&__ 直接或间接指向 Array.prototye(用到了数组的共用属性),那么就是真数组&/li&&li&如果一个数组的 __&i&proto&/i&__ 没有直接或间接指向 Array.prototye,那么就是伪数组&/li&&/ol&&div class=&highlight&&&pre&&code class=&language-text&&var realArr = {0: 'a', 1:'b', length: 2}
realArr.__proto__ = Array.prototype
// 这就是真数组(并不完全是)
// 基本等价于 realArr = ['a', 'b']
realArr.push !== undefined // true
var fakeArr = {0: 'a', 1:'b', length: 2}
// 这就是伪数组
realArr.push === undefined // true
&/code&&/pre&&/div&&p&完。&/p&
你的 JS 代码还没运行的时候,JS 环境里已经有一个 window 对象了window 对象有一个 Object 属性,window.Object 是一个函数对象window.Object 这个函数对象有一个重要属性是 prototype,干什么用的等会说window.Object.prototype 里面有这么几个属性 toStr…
&figure&&img src=&https://pic4.zhimg.com/v2-cf11c79806d21_b.jpg& data-rawwidth=&1101& data-rawheight=&678& class=&origin_image zh-lightbox-thumb& width=&1101& data-original=&https://pic4.zhimg.com/v2-cf11c79806d21_r.jpg&&&/figure&&p&关于对齐的常见问题:&/p&&ol&&li&浏览器本身如何对齐图标和文本?&/li&&li&如何封装一个图标组件,使其无论大小如何变化,都能自动对齐临近的文本?&/li&&li&为什么明明使用了 flex,图标还是看起来差了 1 像素没对齐?&/li&&/ol&&hr&&p&有两种让浏览器自行对齐的方式(&a href=&https://link.zhihu.com/?target=https%3A//codepen.io/ambarli/pen/vWLova%3Feditors%3D0010& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CodePen demo:浏览器对齐&/a&):&/p&&p&&b&一、 flex container&/b&&/p&&div class=&highlight&&&pre&&code class=&language-js&&&span&&/span&&span class=&o&&&&/span&&span class=&nx&&button&/span& &span class=&nx&&style&/span&&span class=&o&&=&/span&&span class=&p&&{{&/span&&span class=&nx&&display&/span&&span class=&o&&:&/span& &span class=&s1&&'inline-flex'&/span&&span class=&p&&,&/span& &span class=&nx&&alignItems&/span&&span class=&o&&:&/span& &span class=&s1&&'center'&/span&&span class=&p&&}}&/span&&span class=&o&&&&/span&
&span class=&o&&&&/span&&span class=&nx&&Icons&/span&&span class=&p&&.&/span&&span class=&nx&&Heart&/span& &span class=&o&&/&&/span&
&span class=&nx&&Like&/span&
&span class=&o&&&&/span&&span class=&err&&/button&&/span&
&/code&&/pre&&/div&&p&缺陷:需要创建 flex 容器来包裹图标和文本,而不是仅仅通过修改图标的样式。&/p&&p&&b&二、 vertical-align middle&/b&&/p&&div class=&highlight&&&pre&&code class=&language-js&&&span&&/span&&span class=&o&&&&/span&&span class=&nx&&button&/span&&span class=&o&&&&/span&
&span class=&o&&&&/span&&span class=&nx&&Icons&/span&&span class=&p&&.&/span&&span class=&nx&&Heart&/span& &span class=&nx&&style&/span&&span class=&o&&=&/span&&span class=&p&&{{&/span&&span class=&nx&&verticalAlign&/span&&span class=&o&&:&/span& &span class=&s1&&'middle'&/span&&span class=&p&&}}&/span& &span class=&o&&/&&/span&
&span class=&o&&&&/span&&span class=&nx&&span&/span& &span class=&nx&&style&/span&&span class=&o&&=&/span&&span class=&p&&{{&/span&&span class=&nx&&verticalAlign&/span&&span class=&o&&:&/span& &span class=&s1&&'middle'&/span&&span class=&p&&}}&/span&&span class=&o&&&&/span&&span class=&nx&&Like&/span&&span class=&o&&&&/span&&span class=&err&&/span&&/span&
&span class=&o&&&&/span&&span class=&err&&/button&&/span&
&/code&&/pre&&/div&&p&缺陷:需要创建额外标签将文本包裹起来,并且文本偏移了 baseline(将影响上下间距和相邻元素的对齐)。&/p&&hr&&p&虽然上面的方式达到了对齐效果,但浏览器本身如何决定图标放置,参照什么来放置?&/p&&p&可以先从字体特征与 CSS &code&vertical-align&/code& 开始探索:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-9f85ce06fb_b.jpg& data-size=&normal& data-rawwidth=&2048& data-rawheight=&542& class=&origin_image zh-lightbox-thumb& width=&2048& data-original=&https://pic1.zhimg.com/v2-9f85ce06fb_r.jpg&&&figcaption&图 1:vertical-align&/figcaption&&/figure&&p&简要说明:&/p&&ul&&li&最左侧是一个已对齐的图标,尺寸为 1.2em&/li&&li&最右侧文字标注了横向参考线,除 &code&cap-line&/code& 外都是 &code&vertical-align&/code& 的可选值&/li&&li&&code&vertical-align&/code& 作用于文本和非文本(如图片元素)效果不同,以应用 &code&vertical-align: baseline&/code& 样式为例:&/li&&ul&&li&同一行内不同字体类型、字体大小或不同行高的文本对齐在相同 baseline 上&/li&&li&同一行内不同尺寸的图片底边对齐在 baseline 上&/li&&/ul&&li&&code&xHeight&/code& 为小写字母 x 的高度(CSS 有
&code&ex&/code& 单位表示它,&code&1ex&/code& 约为 &code&0.5em&/code& 左右 ), &code&vertical-align: middle&/code& 的定义就是它的一半高度,因此仅仅对图片应用 &code&vertical-align: middle&/code&样式图片会看起来太靠下&/li&&li&&code&capHeight&/code& 为大写字母高度(CSS/JS 均无法获取,多数字体约为 &code&0.7em&/code&)&/li&&/ul&&h2&近似对齐:放置在 cap-line 与 baseline 中间&/h2&&p&从图 1 的直接猜测是把图片对齐在大写字母中间,即在 baseline 往上移动 &code&capHeight&/code& 的一半。&/p&&p&这种对齐有两种实现方式(&a href=&https://link.zhihu.com/?target=https%3A//codepen.io/ambarli/pen/NwNKwN%3Feditors%3D0010& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CodePen demo:Cap 对齐&/a&):&/p&&p&&b&一、从 baseline 开始偏移&/b&&/p&&p&默认,图标底边贴在 baseline 上,先移动图标自身 50% 使图标中间对齐 baseline,然后上移&code&capHeight&/code&的一半。&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&c&&/* 计算公式:capHeight / 2 / unitsPerEm ≈ 0.35em */&/span&
&span class=&nc&&.center&/span& &span class=&p&&{&/span&
&span class=&nb&&vertical-align&/span&&span class=&o&&:&/span& &span class=&nb&&baseline&/span&&span class=&p&&;&/span&
&span class=&n&&transform&/span&&span class=&o&&:&/span& &span class=&n&&translateY&/span&&span class=&p&&(&/span&&span class=&n&&calc&/span&&span class=&p&&(&/span&&span class=&m&&50%&/span& &span class=&o&&-&/span& &span class=&m&&.35em&/span&&span class=&p&&))&/span&
&span class=&p&&}&/span&
&span class=&c&&/* 或者将 `capHeight` 可能成变量,动态获取 */&/span&
&span class=&c&&/* translateY(calc(50% - var(—capHeight, .35em))) */&/span&
&/code&&/pre&&/div&&p&缺陷:添加 CSS 动画会因占用了属性而冲突。&/p&&p&&b&二、&/b&从 &b&middle-line 开始偏移&/b&&/p&&p&图标中央就在 middle-line 上,因此先下移&code&xHeight&/code&的一半,再上移&code&capHeight&/code&的一半。&/p&&div class=&highlight&&&pre&&code class=&language-js&&&span&&/span&&span class=&cm&&/*&/span&
&span class=&cm&&// 计算公式&/span&
&span class=&cm&&top&/span&
&span class=&cm&&
= (xHeight/2 - capHeight/2) / unitsPerEm &/span&
&span class=&cm&&
≈ .5em/2 - .7em/2&/span&
&span class=&cm&&
≈ -.1em&/span&
&span class=&cm&&// 或复用 ex 单位来计算&/span&
&span class=&cm&&top&/span&
&span class=&cm&&
= 1ex/2 - capHeight/2 / unitsPerEm&/span&
&span class=&cm&&
≈ calc(0.5ex - 0.35em)&/span&
&span class=&cm&&*/&/span&
&span class=&c1&&// JSX&/span&
&span class=&o&&&&/span&&span class=&nx&&button&/span&&span class=&o&&&&/span&
&span class=&o&&&&/span&&span class=&nx&&Icons&/span&&span class=&p&&.&/span&&span class=&nx&&Heart&/span&
&span class=&nx&&style&/span&&span class=&o&&=&/span&&span class=&p&&{{&/span&
&span class=&nx&&verticalAlign&/span&&span class=&o&&:&/span& &span class=&s1&&'middle'&/span&&span class=&p&&,&/span&
&span class=&nx&&position&/span&&span class=&o&&:&/span& &span class=&s1&&'relative'&/span&&span class=&p&&,&/span&
&span class=&nx&&top&/span&&span class=&o&&:&/span& &span class=&s1&&'-.1em'&/span&&span class=&p&&,&/span&
&span class=&p&&}}&/span&
&span class=&o&&/&&/span&
&span class=&nx&&Like&/span&
&span class=&o&&&&/span&&span class=&err&&/button&&/span&
&/code&&/pre&&/div&&p&无论选择哪种偏移方式,偏移值都会根据当前字体不同而有细微差异,见下图的高亮列:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-3aee1a3fbf1_b.jpg& data-size=&normal& data-rawwidth=&2110& data-rawheight=&627& class=&origin_image zh-lightbox-thumb& width=&2110& data-original=&https://pic2.zhimg.com/v2-3aee1a3fbf1_r.jpg&&&figcaption&图 2:Font Metrics&/figcaption&&/figure&&h2&精确对齐:对齐定高文本&/h2&&p&「精确」指达到与浏览器自行对齐相同的效果。需求来自问题 2,如何封装一个图标组件,仅通过修改图标本身来对齐相邻文本。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-cf11c79806d21_b.jpg& data-size=&normal& data-rawwidth=&1101& data-rawheight=&678& class=&origin_image zh-lightbox-thumb& width=&1101& data-original=&https://pic4.zhimg.com/v2-cf11c79806d21_r.jpg&&&figcaption&图 3:三种 line-height&/figcaption&&/figure&&p&这个图很有趣,内联元素在不同条件下产生了不同的边界(颜色填充区域),简要说明(&a href=&https://link.zhihu.com/?target=https%3A//codepen.io/ambarli/pen/bYpbvp%3Feditors%3D0010& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CodePen demo:浏览器本身如何对齐&/a&):&/p&&ul&&li&&code&j&/code& 表示基础的 &code&line-height&/code&,也就是 &code&1em&/code& 高,等同于当前的 &code&font-size&/code& 100px,当 inline-block 元素(也可以是 inline-flex item)设置为 &code&line-height: 1&/code& 时可以得到它。值得注意 &code&j&/code& 的边界不在任何参考线上。此图也能说明不要误用这个值,有可能(如应用 overflow 样式)内容溢出导致截断。&/li&&li&&code&x&/code& 表示安全的 &code&line-height&/code&,是 inline 元素默认的高度(也是 &code&text-top&/code& 到 &code&text-bottom&/code& 的距离)。也可以由图 2 中的 &code&(ascender + descender) / unitsPerEm&/code& 计算得到(当前字体对应表格中第三行的值,1.1777)。&/li&&li&&code&S&/code& 表示实际的 &code&line-height&/code& ,是 inline-block 或 inline-flex 元素默认高度(也是&code&top&/code& 到 &code&bottom&/code& 的距离)。当设置父容器 &code&line-height: 1.7&/code& 时,实际 &code&line-height&/code& 将是 &code&100px * 1.7 = 170px&/code&。&/li&&/ul&&p&有了上面的图例,精确对齐思路可以借鉴 CSS 规范中的 &a href=&https://link.zhihu.com/?target=https%3A//www.w3.org/TR/CSS22/visudet.html%23strut& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&strut&/a& 概念,创建一个局部的容器,生成不可见文本(零宽空格,模拟 strut),让不可见文本对齐 line-box 中其他文本,让图标对齐这个不可见文本:&/p&&blockquote&On a &a href=&https://link.zhihu.com/?target=https%3A//www.w3.org/TR/CSS22/visuren.html%23block-boxes& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&block container element&/a& whose content is composed of &a href=&https://link.zhihu.com/?target=https%3A//www.w3.org/TR/CSS22/visuren.html%23inline-level& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&inline-level&/a& elements, 'line-height' specifies the &i&minimal&/i& height of line boxes within the element. The minimum height consists of a minimum height above the baseline and a minimum depth below it, exactly as if each line box starts with a zero-width inline box with the element's font and line height properties&a href=&https://zhuanlan.zhihu.com/p//edit& class=&internal&&.&/a& We call that imaginary box a &strut.&&/blockquote&&p&局部容器的高度可以是上图 &code&S&/code& 的高度(inline-flex 居中),也可以跟随图标的高度(图标绝对定位,保持与容器位置相同),也可以固定(图标绝对定位居中,但缺陷是不能太大超过行高)。&/p&&p&精确对齐的两种实现方式(&a href=&https://link.zhihu.com/?target=https%3A//codepen.io/ambarli/pen/NwNPpo%3Feditors%3D0010& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CodePen demo:模拟浏览器对齐&/a&):&/p&&p&&b&一、&code&inline-block&/code&&/b& &b&hack&/b&&/p&&div class=&highlight&&&pre&&code class=&language-js&&&span&&/span&&span class=&kr&&const&/span& &span class=&nx&&MyIcon&/span& &span class=&o&&=&/span& &span class=&p&&({&/span&&span class=&nx&&width&/span&&span class=&p&&,&/span& &span class=&nx&&height&/span&&span class=&p&&})&/span& &span class=&o&&=&&/span& &span class=&p&&(&/span&
&span class=&o&&&&/span&&span class=&nx&&span&/span&
&span class=&nx&&style&/span&&span class=&o&&=&/span&&span class=&p&&{{&/span&
&span class=&nx&&position&/span&&span class=&o&&:&/span& &span class=&s1&&'relative'&/span&&span class=&p&&,&/span&
&span class=&nx&&display&/span&&span class=&o&&:&/span& &span class=&s1&&'inline-block'&/span&&span class=&p&&,&/span&
&span class=&nx&&lineHeight&/span&&span class=&o&&:&/span& &span class=&nx&&height&/span&&span class=&p&&,&/span& &span class=&c1&&// 使文本高度为图标高度&/span&
&span class=&nx&&width&/span&&span class=&p&&,&/span& &span class=&c1&&// 占住横向空间&/span&
&span class=&p&&}}&/span&
&span class=&o&&&&/span&
&span class=&p&&{&/span&&span class=&s1&&'\u200b'&/span&&span class=&cm&&/* ZWSP(zero-width space) */&/span&&span class=&p&&}&/span&
&span class=&o&&&&/span&&span class=&nx&&svg&/span&
&span class=&nx&&width&/span&&span class=&o&&=&/span&&span class=&p&&{&/span&&span class=&nx&&width&/span&&span class=&p&&}&/span&
&span class=&nx&&style&/span&&span class=&o&&=&/span&&span class=&p&&{{&/span&&span class=&nx&&position&/span&&span class=&o&&:&/span& &span class=&s1&&'absolute'&/span&&span class=&p&&,&/span& &span class=&nx&&left&/span&&span class=&o&&:&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&nx&&top&/span&&span class=&o&&:&/span& &span class=&mi&&0&/span&&span class=&p&&}}&/span&
&span class=&o&&/&&/span&
&span class=&o&&&&/span&&span class=&err&&/span&&/span&
&span class=&p&&)&/span&
&/code&&/pre&&/div&&p&对齐效果完美。&/p&&p&&b&二、&code&inline-flex&/code&&/b& &b&hack(推荐)&/b&&/p&&div class=&highlight&&&pre&&code class=&language-js&&&span&&/span&&span class=&kr&&const&/span& &span class=&nx&&MyIcon&/span& &span class=&o&&=&/span& &span class=&p&&(&/span&&span class=&nx&&props&/span&&span class=&p&&)&/span& &span class=&o&&=&&/span& &span class=&p&&(&/span&
&span class=&o&&&&/span&&span class=&nx&&span&/span& &span class=&nx&&style&/span&&span class=&o&&=&/span&&span class=&p&&{{&/span&
&span class=&nx&&display&/span&&span class=&o&&:&/span& &span class=&s1&&'inline-flex'&/span&&span class=&p&&,&/span&
&span class=&nx&&alignItems&/span&&span class=&o&&:&/span& &span class=&s1&&'center'&/span&&span class=&p&&,&/span&
&span class=&p&&}}&/span&&span class=&o&&&&/span&
&span class=&p&&{&/span&&span class=&s1&&'\u200b'&/span&&span class=&cm&&/* ZWSP(zero-width space) */&/span&&span class=&p&&}&/span&
&span class=&o&&&&/span&&span class=&nx&&svg&/span& &span class=&p&&{...&/span&&span class=&nx&&props&/span&&span class=&p&&}&/span& &span class=&o&&/&&/span&
&span class=&o&&&&/span&&span class=&err&&/span&&/span&
&span class=&p&&)&/span&
&/code&&/pre&&/div&&p&对齐效果完美(不支持过时的浏览器 &a href=&https://link.zhihu.com/?target=http%3A//caniuse.com/%23search%3Dflex& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&caniuse.com/flex&/a&)。&/p&&hr&&h2&为什么明明使用了 flex,图标还是看起来差了 1 像素没对齐?&/h2&&p&图标与文本的对齐误差取决于 &code&iconSize&/code&、&code&fontSize&/code& 和 &code&lineHeight&/code& 之间奇偶关系(不同浏览器表现可能不同,&a href=&https://link.zhihu.com/?target=https%3A//codepen.io/ambarli/pen/ZaWJQg%3Feditors%3D0010& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CodePen demo: 奇偶对齐&/a&):&/p&&p&&img src=&https://www.zhihu.com/equation?tex=%5Cbegin%7Barray%7D+%5Ctext%7BiconSize%7D+%26+%5Ctext%7BfontSize%7D+%26+%5Ctext%7BlineHeight%7D+%5C%5C+%5Chline+%E5%A5%87%E6%95%B0+%26+%E5%81%B6%E6%95%B0+%26+%E5%A5%87%E5%81%B6%E6%94%B9%E5%8F%98%E4%B8%8D%E5%BD%B1%E5%93%8D%E5%9B%BE%E6%A0%87%E5%AF%B9%E9%BD%90%5C%5C+%5Chline+%E5%81%B6%E6%95%B0+%26+%E5%A5%87%E6%95%B0+%26+%E5%A5%87%E5%81%B6%E6%94%B9%E5%8F%98%E4%B8%8D%E5%BD%B1%E5%93%8D%E5%9B%BE%E6%A0%87%E5%AF%B9%E9%BD%90%5C%5C+%5Chline+%E5%81%B6%E6%95%B0+%26+%E5%81%B6%E6%95%B0+%26+%E5%81%B6%E6%95%B0%E5%AF%B9%E9%BD%90%EF%BC%8C%E5%A5%87%E6%95%B0%E5%81%8F%E4%B8%8A+1px%5C%5C+%5Chline+%E5%A5%87%E6%95%B0+%26+%E5%A5%87%E6%95%B0+%26+%E5%A5%87%E6%95%B0%E5%AF%B9%E9%BD%90%EF%BC%8C%E5%81%B6%E6%95%B0%E5%81%8F%E4%B8%8A+1px%5C%5C+%5Chline+%E5%B0%8F%E6%95%B0%EF%BC%88.2%2F.5%2F.8%EF%BC%89%26+%E5%A5%87%E6%95%B0+%26+%E5%A5%87%E5%81%B6%E6%94%B9%E5%8F%98%E4%B8%8D%E5%BD%B1%E5%93%8D%E5%9B%BE%E6%A0%87%E5%AF%B9%E9%BD%90%EF%BC%8C%E9%83%BD%E4%B8%8A%E5%81%8F+1px%EF%BC%88%E5%81%B6%E6%95%B0%E6%97%B6%E5%9B%BE%E6%A0%87%E7%BA%B5%E5%90%91%E6%8B%89%E4%BC%B8%E4%BA%86+1px%EF%BC%89%5C%5C+%5Chline+%E5%B0%8F%E6%95%B0%EF%BC%88.2%2F.5%2F.8%EF%BC%89+%26+%E5%81%B6%E6%95%B0+%26+%E5%81%B6%E6%95%B0%E5%AF%B9%E9%BD%90%EF%BC%8C%E5%A5%87%E6%95%B0%E5%81%8F%E4%B8%8A+1px%EF%BC%88%E5%81%B6%E6%95%B0%E6%97%B6%E5%9B%BE%E6%A0%87%E7%BA%B5%E5%90%91%E6%8B%89%E4%BC%B8%E4%BA%86+1px%EF%BC%89%5C%5C+%5Cend%7Barray%7D%5C%5C& alt=&\begin{array} \text{iconSize} & \text{fontSize} & \text{lineHeight} \\ \hline 奇数 & 偶数 & 奇偶改变不影响图标对齐\\ \hline 偶数 & 奇数 & 奇偶改变不影响图标对齐\\ \hline 偶数 & 偶数 & 偶数对齐,奇数偏上 1px\\ \hline 奇数 & 奇数 & 奇数对齐,偶数偏上 1px\\ \hline 小数(.2/.5/.8)& 奇数 & 奇偶改变不影响图标对齐,都上偏 1px(偶数时图标纵向拉伸了 1px)\\ \hline 小数(.2/.5/.8) & 偶数 & 偶数对齐,奇数偏上 1px(偶数时图标纵向拉伸了 1px)\\ \end{array}\\& eeimg=&1&&&/p&&p&?测试环境:字体 PingFang SC,浏览器 Chrome,对齐 Flex。&/p&&h2&相关&/h2&&ul&&li&&a href=&https://link.zhihu.com/?target=https%3A//codepen.io/collection/XjyabO/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&How to Align - a Collection on CodePen&/a& 所有示例列表&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//ambar.li/reiconify/md.icons/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&md.icons&/a& 自动生成的全套 Material icons,添加了方便的对齐参数&/li&&li&&a href=&https://link.zhihu.com/?target=https%3A//www.w3.org/TR/CSS22/visuren.html%23inline-formatting& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&W3C: Visual Formatting Model&/a& 了解规范如何定义内联行为和行高计算&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Deep dive CSS: font metrics, line-height and vertical-align&/a& 感谢作者的精彩图解&/li&&li&&a href=&https://link.zhihu.com/?target=https%3A//github.com/yahoo/blink-diff& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&blink-diff&/a& 用工具需要对比生成的对齐效果,而不是用肉眼&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//designwithfontforge.com/zh-CN/What_Is_a_Font.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&什么是字体?&/a& 了解 unitsPerEm/ascender/descender 等概念&/li&&li&&a href=&https://link.zhihu.com/?target=https%3A//opentype.js.org/font-inspector.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&opentype.js&/a&、&a href=&https://link.zhihu.com/?target=https%3A//fontforge.github.io/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&FontForge&/a& 查询 font metrics&/li&&/ul&&h2&附&/h2&&p&图标转 React 组件工具,集成了本文提到的对齐属性(&code&center&/code&):&/p&&a href=&https://link.zhihu.com/?target=https%3A//github.com/ambar/reiconify& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic3.zhimg.com/v2-d5e2c334fe4c07b390c0b01dc8982fd6_ipico.jpg& data-image-width=&400& data-image-height=&400& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ambar/reiconify&/a&&p&&/p&
关于对齐的常见问题:浏览器本身如何对齐图标和文本?如何封装一个图标组件,使其无论大小如何变化,都能自动对齐临近的文本?为什么明明使用了 flex,图标还是看起来差了 1 像素没对齐?有两种让浏览器自行对齐的方式():一、 f…
&p&所谓“面试造火箭,干活拧螺丝”,都是前端仔,不拿点投名状怎么能让他上山呢。Homebrew的创始人max就因为不会写链表翻转被Google拒: &a href=&https://www.zhihu.com/question/& class=&internal&&如何看待 Max Howell 被 Google 拒绝?&/a& ,俺也曾被某厂要求判断js的[]和{}&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-eb9bbf1e930e743f8632_b.png& data-rawwidth=&500& data-rawheight=&302& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic3.zhimg.com/v2-eb9bbf1e930e743f8632_r.jpg&&&/figure&&p&怀着深深的恶意写下前端面试大纲&/p&&p&&br&&/p&&p&&b&一 HTML/CSS&/b&&/p&&p&1.1 盒模型 -& 标准盒、IE盒 -& 如何解决IE问题 -& DTD是什么 -& Html4中标准模式、兼容模式&/p&&p&1.2 布局( 相对、绝对、固定布局) -& flex,响应式框架(bootstrap等)&/p&&p&1.3 float -& 清除浮动 -& BFC、IFC&/p&&p&1.5 语义化 -& H5元素(canvas、video、localstorage、sessionstorage)&/p&&p&1.6 浏览器的加载顺序 -&(Dom tree,CSSOM, RenderTree,layout,painting) -&
首屏时间、白屏时间 -&如何用chrome的performance做性能优化&/p&&p&1.7 前端优化 -& yahoo 35 条军规&/p&&p&&br&&/p&&p&&b&二
JavaScript&/b&&/p&&p&2.1 JS内存模型 -& 值传递、引用传递 -& typeof&/p&&p&2.2 null、undefined
-& == && === (严格模式、隐式转化)&/p&&p&2.3 对象 -& 为何需要对象、产生对象的几种方式 -& new运算符-& 构造函数、this -& 原型、原型链 -&继承的五种方法 -& 源码、组件应用(underscore源码、做过组件没)&/p&&p&2.4 匿名函数和闭包 -& 闭包是用来做什么的 -&jQuery源码-& 循环中的闭包 -& 异步调用中的闭包 -&ES6有什么新的解决方案 -& let的实现原理
&a href=&//link.zhihu.com/?target=https%3A//segmentfault.com/a/8288& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JavaScript匿名函数以及在循环中的匿名函数 - 大杂烩 - SegmentFault&/a&&/p&&p&2.5 事件的冒泡机制 -& IE的冒泡机制区别&/p&&p&2.6 ajax-& 手写原生ajax -& Http协议 -&
tcp/ip的网络模型、三次握手、状态码 -& 请说出HTTP访问的25个步骤(变态指数满星) &a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&当你在浏览器中输入 baidu.com 并且按下回车后发生了什么?&/a&&/p&&p&2.7 跨域 Jsonp &/p&&p&2.8 cookie、session &a href=&//link.zhihu.com/?target=https%3A//segmentfault.com/a/7077& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&nodejs session 原理及实战&/a&&/p&&p&&br&&/p&&p&&b&三 Nodejs&/b&&/p&&p&3.1Nodejs是什么? -& 规范CMD, AMD -&模块(import,export、file)
&a href=&//link.zhihu.com/?target=https%3A//segmentfault.com/a/2892& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Javascript的模块管理 CMD AMD ES7等&/a&&/p&&p&3.2 单进程 -& 何为进程、线程、区别 -& 为何js是单进程 -& eventloop-&回掉-& 回掉地狱 -& promise -&手写promise实现 -& generator -&手写generator实现 -&aysnc -& 手写 async源码&/p&&p&3.3 测试-& 黑盒, 白盒 -&mocha &/p&&p&3.4 打包工具 -& webpack等&/p&&p&3.4 上线 -& linux,shell -& pm2&/p&&p&&br&&/p&&p&&b&四 算法 &/b&&/p&&p&4.1 二叉树 -& 树的各种操作:深度、广度、翻转 -& B+树、红黑树等 -& 数据库索引&/p&&p&4.2 排序 -& 冒泡、快速、归并排序、堆排序-& 冒泡排序的优化、快速排序的四层优化&/p&&p&4.3 搜索 -& 二分搜索&/p&&p&4.4 动态规划 -& 背包问题、最长非递增字符串、台阶问题&/p&&p&4.5 递归 -& N!、斐波那契级数、树的各种遍历&/p&&p&&br&&/p&&p&累了,有空继续撸&/p&
所谓“面试造火箭,干活拧螺丝”,都是前端仔,不拿点投名状怎么能让他上山呢。Homebrew的创始人max就因为不会写链表翻转被Google拒:
,俺也曾被某厂要求判断js的[]和{} 怀着深深的恶意写下前端面试大纲 一 HTML/CSS1…
&p&&b&谢邀。此文虽长9000字整 ! 全手码,预计花费您10分钟左右才能阅读完,建议不跳读。值得收藏。这是知乎朋友的热情啊,一个小时之内,就看到了收藏是点赞的三倍!!!哈哈,为什么! ! !&/b& &/p&&br&&p&&b&①时间&/b&&/p&&p&如果你想要在某个知识领域成为the best of the best,你必须要花至少10000小时实实在在的练习和学习。&b&然而,Josh Kaufman却推翻了这些观念,提出了你只需要20小时就能不错的掌握一个全新的知识和技能。&/b&
如果我们能在最初的20小时内熬过初学阶段的不适感和挫败感,我们其实能很轻松地掌握一个全新的领域。哈!20个小时=2个沉睡的夜晚=1周娱乐时间的总合,听起来的确很不错。
嗯,我的意思是用20小时学习一门大学教材。&/p&&br&&p&&b&②案例&/b& &/p&&br&&p&高效利用时间的&b&案例&/b&:&b&学更多更多的知识,做更多更多的事情。简直是知识、精神双饱满!!&/b&&a href=&//link.zhihu.com/?target=http%3A//www.scotthyoung.com/blog/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&斯考特·杨(Scott Young)&/a&12个月之内,&b&自学&/b&完成了传说中的&a href=&//link.zhihu.com/?target=http%3A//www.eecs.mit.edu/academics-admissions/undergraduate-programs/course-6-3-computer-science-and-engineering& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MIT计算机科学课程表&/a&的全部33门课,从线性代数到计算理论。按照他的进度,读完一门课程大概只需要&b&1.5&/b&个星期。&b&这是我见过的大学生里在学习方面活得最充实的人。&/b&
我曾经对他的学习方法做过超认真的整理:&a href=&http://www.zhihu.com/question//answer/& class=&internal&&怎样做才能不虚度大学的时光? - 白诗诗的回答&/a&&/p&&p&
关于他的学习方法,&a href=&http://www.zhihu.com/people/warfalcon& class=&internal&&warfalcon&/a& 评价如是:&/p&&br&&blockquote&评价a:&b&每天学习10小时,10天左右就要考试一次,并通过,这个学习效率非常高,更不用说重复了33次。在学习一门新的知识时短时间集中注意力不难&/b&,但持续一段时间之后,如果做不到很好的&b&放松&/b&,只要持续二、三个月左右就会达到一个瓶颈,理解能力和心理状态无法继续,这个&b&瓶颈&/b&会重复出现,就象考研时很多人前几个月都能坚持下去,但到6、8月之后就无法坚持。&b&重复三次左右会面临一个临界点,度过这后就很容易继续了。&/b&
评价b:刻意练习没有“寓教于乐”这个概念。&b&曾经有个著名小提琴家说过,如果你是练习手指,你可以练一整天;可是如果你是练习脑子,你每天能练两个小时就不错了。高手的练习每次最多1到1.5小时,每天最多4到5小时。没人受得了更多。&/b&一般女球迷可能认为贝克汉姆那样的球星很可爱,她们可能不知道的是很少有球员能完成贝克汉姆的训练强度,因为太苦了。&/blockquote&&br&&p&&b&③可实施性&/b&&/p&&br&&p&&b&“在学习一门新的知识时,短时间集中注意力不难” + “(刻意练习)高手的练习每次最多1到1.5小时,每天最多4到5小时。没人受得了更多”→→→→结合我们20小时学一门教材的目标,可以得出一个结论:&u&我们进行的不是严格意义刻意练习,我们的强度也没有那个国外小子那么高,而且一轮下来只要20小时,即便是用刻意练习的方式进行,也是可以接受的&/u&。学完一科,我们可以进行休整放松,不用严打紧逼。而且就我个人而言,一天高效学习时间安排在八个小时左右,是可以执行的。&/b&&/p&&p&&b&&u&但是,要保证利用好八个小时的高效时间&/u&。&/b&&/p&&br&&br&&p&&b&④如果保证利用好自己的高效时间?
学习仪式感:&/b&&/p&&p&&b&人,藉由这种仪式带来的仪式感,来给自己一种强烈的自我暗示---------这种自我暗示能够使自我变革,把自己的专注力、反应能力、运动能力迅速提升。&/b&&/p&&br&&p&为了保证高效时段得到利用,我把每一次学习当成月考甚至高考一样的对待。
为了高考你会提前准备什么?
物质准备:吃饱穿暖
精神准备:考前睡眠充足
知识储备:复习再复习
在高考之前,脑海里,我们已经把在考场上的表现重复了多遍。&/p&&p&再来看看,我是怎么为一次高效学习进行仪式感建立的:
&u&物质&/u&:水、巧克力、计算器、文具。在正式学习之前,我会在桌上一字排开,以防临时需要某些东西时手忙脚乱去到处翻。&/p&&br&&p&&u&精神&/u&:在前一天晚上,我就想好第二天又要进行高效学习了,所以我会安心睡去,而且如果你已经在前一天高效学好的话,会在一种满足感和新的期待中睡去。
&u&时间&/u&:比如,八点是我的正式学习时间,我会保证八点之前提前赶到那里,坐在椅子上调整出最舒服的学习姿态。
&b&提取半个小时&/b&到达学习现场,我会做以下工作:&/p&&p&&b&仪式第一步:启动
1.把准备好的物品摆在桌上。
2.深呼吸一口气,然后做眼保健操。
3.闭着眼按摩太阳穴一个八拍。&/b&
注:&b&眼保健操的第三个八拍和第四个八拍互换&/b&,多年的眼保健操经验告诉我,原本第四个八拍(轮刮眼眶)做完之后,眼睛睁开是会一片模糊感,眼液汪汪,十分不舒服。(ps.重新排版此文的时候我才发现,对于眼保健操我也是蛮有见解的嘛!!!哈哈哈&b&。)&/b&&/p&&br&&br&&p&&b&仪式第二步:预热&/b&&/p&&p&翻看即将在要来到的两个小时之内需要学习的内容,心里有个大概。我会多浏览几遍某些重要的概念以及例题,但是我不会把这个活动当做是我的正式学习的过程,就好像你考试之前翻书,多看几遍重难点考点只是为了考试更好的发挥,而不能把这个过程计入考试本身一样。我现在做的活动,只是为了等一下正式学习更好的强化效果。&/p&&br&&p&&b&仪式最后一步:静心&/b&&/p&&p&在八点之前的一分钟,我会盖上书本。静静等着一分钟的流逝,八点钟一到,就带着喜悦感平静地翻开书本。因为有了那么多前戏的酝酿,你都不知道我多么的期待这么一次高效的学习的来临啊。&/p&&br&&br&&p&大学学习的方法千差万别,比如,&b&有人有能耐能泡老师透到题,或者被老师泡也能泡到题,这种做法我认为是最高效的,有了考试题目就只需要锁定知识点夺取高分。这种做法我十分欣赏,&/b&但只有一点我不喜欢,那就是逃避了学习过程,没错,我也要考高分,但我只想踏踏实实的通过正常的学习完成这个过程。不过,我的踏踏实实要是和很多人一样一章一节的看下去,那就是侮辱我自己了,因为那样我会看不到最后,就止不住困倒在书上了。&/p&&br&&p&我个人的方法就是对这个踏实过程的一次优化,让自己在持续反馈之中达成&u&纯20小时高效学习一门学科&/u&的目的。&/p&&br&&p&&b&第三步:正式高效率学习&/b&&/p&&br&&p&&b&步骤如下:&/b&&/p&&p&&b&第A步:&/b&&/p&&br&&p&&b&第一遍阅读
1.&u&看目录&/u&知道这一章重点在哪一节,这一节大概用来解决什么问题
2.看章后习题,&u&圈出术语&/u&--------这个术语基本上就是本章的知识点了
3.根据术语去书中&u&划概念和术语解释&/u&--------如果有些术语不能理解,请使用网络百度术语名词解释
4.术语理解后带着术语去理解书中的&u&图表和例题以及案例&/u&&/b&&/p&&br&&p&&b&⑤为什么不首先直接去阅读文字呢?&/b&&/p&&br&&p&对此,我还当真有些个人的强烈认知:理工科的书在我看来是不能谈「理解」这个词的,&u&尤其是工科的书,&/u&我认为就是一份份的说明书,讲机械那就是机械的说明书,讲制图那就是制图的说明书,这些说明书和商品说明书没有本质区别,只是它们通过系统化的学术语言衔接成书、成册——但本质上一本说明书的集合。洗衣机说明书有什么作用?那就是告诉购买者如何操作、如何保养、注意事项。&u&平时我们会嘲笑某些人看不懂说明书,其实不是对方理解力有问题&/u&,而是我们市面上多少说明书简直垃圾,写的不够明确、简洁,导致阅读者操作困难。&/p&&br&&p&同样,我也认为我们的教科书并不都是一本本优秀的说明书合集,因为它们的书写内容是由个人写就,说明的操作细节根据他个人的智识水平书写,他并不曾统计所写的每一句话是不是让读者看起来更加容易形象的理解。&u&我是说,不好的说明书才需要额外的理解,好的说明书只需要我们按着步骤流程一步一步操作就可以达到目的,只有书写不明的说明书才考验读者额外的理解能力。&/u&&/p&&br&&br&&p&从某个意义上来说,你学习某一本书,如果看不进去,可能不是你理解有问题,你应该换一本书。我们什么时候讲理解能力?中文阅读理解,英文阅读理解,文学作品,“我爱你,你懂我心吗?”,那是中文,英文。感性表达的时候需要你的理解,文人思维表达的时候需要你的理解,读哈姆雷特的时候需要你的理解,需要一千个读者有一千个哈姆雷特的理解。&u&讲机械机构的时候如果你说不理解,那多半是书本表达的问题&/u&,不是你理解力有问题。可以长高宽表达的东西,你说你理解它干嘛?难道某个机械结构脉脉含情的给你传达某种信号,需要你理解她的弦外之音!?
以上是对教科书的微词。&u&我意思是这样的,大学本科教材有可能的话去换几本看看,可能有比较容易“理解”的书呢?&/u&中国大学教材烂,这也是为什么国外大学教材受欢迎的原因。
&u&但是,对于多数人而言,外文教材好啊好啊,其实都是喊在嘴巴上,看我这篇文章你都嫌长,你绕个远道去看外文教材?&/u&网上的公开课也比中国教授讲的好呀,推荐者万万众,实践者几几人!&u&更何况,多数人外文的书是看不懂的,那么,就踏踏实实的看你们学校的教材,照样可以学好,此时才显得我的这个&b&建议&/b&之有含量&/u&。&/p&&br&&p&&b&(在重新排版的时候,我请额外圈出一句话:&u&推荐者万万众,实践者几几人!&/u&——这句话太好了,且做我的名言2号。)&/b&
这个&b&建议&/b&是这样:&/p&&p&看书看不进,就牢牢抓住书本的&b&例题、案例、图表&/b&。因为&u&例题讲具体情境、图表具有可视化、案例就是讲具体的运用&/u&——&b&这些都比理解文字描述容易的多&/b&。而且,例题里面包含了对关键知识点的运用,案例和图表其实都是为了辅助你理解正文文字内容的。所以,&u&只要我们配合最少量的文字看懂了案例、图表,就达到了对知识的了解&/u&,&u&接着我们再去看例题就知道了知识运用场景&/u&,之后,&u&我们再反复地做题目,从而达到了对知识点的掌握&/u&。&/p&&br&&br&&p&这里还给你明确指明了什么叫了解、知道、掌握,课本往往会有学习要求,比如本节达到“掌握”的程度,而第二节只要“了解”就够了。那什么是“了解”、“知道”、“掌握”呢?光看这几个词汇,你是不是感觉在学习过程中,还是难以把握好“理解”等词汇的&b&度&/b&?&/p&&br&&p&从刚刚前段的描述中,其实已经给你活生生明确了呀:&/p&&br&&p&1.“配合&u&最少量的文字&/u&看懂了&u&案例、图表&/u&,就达到了对知识的&b&了解&/b&”。&/p&&p&2.“接着我们再去看&u&例题&/u&就&b&知道&/b&了知识运用的场景”。当然,这里的知道是对于“知识运用场景”的知道,如果是“知道某种知识”,那我给的定义是:当我提起某专有术语名词、某理论的时候,你能想得起来有那么一回事。比如我说到隔壁小王出轨了,你说“哦,那个小王八啊,我&b&知道&/b&”------那你就真的知道了,也许对于这种男女之事,你知道的还要更多,可能已经达到了掌握甚至熟练运用的程度。在这个男女例子的场景中,你表现的是一个好学生的角色——主动掌握的东西不由自主地就比“课标要求”的多得多。&/p&&p&3.“我们再&u&反复地做题目&/u&,从而达到了对知识点的&b&掌握”&/b&。&/p&&p&4.如果我们用所学知识去&u&解释问题&/u&、或者直接体现在&u&实际操作&/u&中,那就是&u&运用&/u&了。&/p&&br&&p&以上就是我们需要尽量弱化教材文字阅读的原因。&/p&&br&&p&学习请以&u&一章为单位&/u&,因为拉长战线会拉长反馈周期,对于学习实际效果不利。如述进行完以上的步骤,读完一章后,可以轻松休息片刻。在&a href=&http://www.zhihu.com/question//answer/& class=&internal&&哪些实用的小方法、小技巧、好习惯能让人每天进步? - 白诗诗的回答&/a&中,我提到,我会在这种休息间隙做&b&俯卧撑:&/b&&/p&&br&&blockquote&&b&有没有人认为健身必要但同时觉得浪费时间?&/b&工作间歇、课间休息期间,眼看四下无人,哗哗哗,30个俯卧撑一两分钟内已经完毕,我擦,不仅&b&劳逸结合&/b&,三头肌一个月内暴结实!!!&/blockquote&&p&放心:男孩子的话,这30个俯卧撑放心做好了。虽然方法是我提供的,但是我不向你要30个俯卧撑的版权!&/p&&br&&br&&p&&b&⑥这是我要提的另一个重点:能量分为身体能量和情绪能量。&/b&&/p&&br&&p&&u&学习过程中,比如在图书馆学习,我见到很多人在学习过程中是没有补充能量&/u&的,当然也有人吃些小吃和零食,但这个和我所说的能量没有屁毛的关系呀,多数人正式的能量补充时间是中午时段的午餐,&u&在我看来,对于一个有志于高效学习的学习者,只有午餐一个常规性能量补充时段,显然是严重不够的&/u&。&/p&&br&&p&&b&能量补充&/b&:&/p&&br&&p&1.&b&身体能量&/b&。&u&精深练习的人最多达到1个小时1.5个小时,这是很累的,也就是说,会消耗大量的能量。所以,你得需要及时补充能量&/u&。两个小时的高效学习期间,分为两段,一段五十分钟左右,中间休息,这个时候就可以补充能量。所以,巧克力就派上用场了。人和人千差万别,原因之一就在于人与人吃的方式不一样。&u&身体的直接能量是&b&葡萄糖&/b&,它把葡萄糖当资金一样运用&/u&。当身体能量不足时,首先剥夺的是心智能量,这时补充一些&b&糖类&/b&(&u&功能性饮料、奶昔、蜜水、果汁都是很好的能量来源&/u&),就会精力高涨,恢复冒险精神以及能够进行更加冷静的思考。&u&所以,巧克力是我个人选择&/u&。为了防止做广告,我绝不会告诉你是只是高力士牌而已……&/p&&br&&p&2.&b&情绪能量&/b&。很多人不知道情绪也是一种能量吧?一对夫妻,两个在公司都拼命工作,但一回到家里就经常吵架,是他们脾气不好喽?另外有对夫妻,下班很早,夫妻两个经常甜蜜去逛街么么哒,他们的脾气就好了?可是,这时候我告诉你,他们其实就是同一对夫妻,你又怎想?&/p&&br&&p&为什么这样?这是-------&u&因为拼命工作不仅仅需要物质能量,而且繁杂的工作在白天还消耗了他们大量的情绪能量&/u&,老板多给你任务,你心里不满意,你能表现吗?是不是没有表现出来呀?对呀,你没有表现出来,你压抑了心中的不满。压抑这个不满的情绪用什么?答案的确是物质能量-----因为身体时时刻刻都要消耗它,但是还不够,因为还有一个事实:&b&压制某一刻某一时的不满情绪,其实主要消耗的是情绪能量&/b&。那这样导致情绪能力下降,导致自控力下降,回家失控可不就吵起喽?&/p&&br&&p&&u&是的,情绪能量需要补充&/u&。&/p&&br&&br&&p&平时还有这样的例子,比如我决定跑步,开始信心满满要跑一个月,结果没有几天就懈怠了,不是累了,而是情绪上感到疲劳了,产生厌倦感了。&/p&&br&&p&这时候,&b&解决情绪疲劳,有一个方法:那就是放松&/b&。&/p&&p&听音乐吧,听好听的音乐,在这里,我要提一个建议:&u&在经济条件能承受的范围内,尽量买一根质量超好的耳机。羞涩的说,我有一根了,音效超级棒!同样,有可能就买一台超棒的音箱……这是和丁元英学习的&/u&。(《遥远的救世主》的男主,电视剧是个人超级推荐的,个人认为是一部比原著好看的老电视剧。)&/p&&br&&p&前面我也说了,还可以做运动。我看到某些办公室里面有健身器材,相当羡慕,不过作为学生,我只能四下下无人,那一段看来还得再引用一遍,反正是我自己的版权:&/p&&blockquote&&b&俯卧撑
有没有人认为健身必要但同时觉得浪费时间?&/b&工作间歇、课间休息期间,眼看四下无人,哗哗哗,30个俯卧撑一两分钟内已经完毕,我擦,不仅劳逸结合,三头肌一个月内暴结实!&/blockquote&&p&俯卧撑随便做,不收费!&/p&&br&&br&&p&解决&b&厌倦感&/b&,我也有一个办法:&/p&&br&&p&那就是,&u&完成规定任务量之后,在某一个热情高涨的时候索性中断学习&/u&。这边的需要&b&强调&/b&一下,&u&是完成规定任务量之后------中断这个动作是发生在整个学习的后期,而不是你学得一高兴就中断,你要是这么蠢,只能嫁给我了!!&/u&!
村上春树跑步几十年,我最喜欢他的一点,是他会在跑步感觉良好的时候主动结束,这样他就会对第二天的跑步充满期待。&u&因为人们对一些事情,总是能够清晰的记得事件的&b&开头&/b&和&b&结尾部分&/b&,在此基础上,我还要重点提醒的是,当时间一长,我们能记住关于一件事物的主要部分其实是&b&事物留给我们的感觉&/b&而不是事件本身&/u&。村上春树以充满愉悦感的时候作为结束点,跑步对他来说自然会是一种“愉悦感”能隔天连续的体验。这是很智慧的。&/p&&br&&p&更多的例子我不想举例了,比如长篇写作者中有许多作家也往往用这样的方法,比如写到高潮达到部分主动停下来,因为高潮情绪很强烈,在第二天接着创作是,就容易找回感觉,从而继续写下去。&/p&&br&&p&&b&事物的原因是一致的。所以,请你在晚上时段,即最后一个高效学习时段之后,接着再学习一段时间,正当感到愉悦、感到收获满满、感觉到学习仍然高效的时候&/b&——&b&立刻中断你的学习&/b&,收拾书本滚回家找对象玩耍吧。这么做的原因在于:&/p&&br&&p&理论上,你一天的高效学习已经接近极限了,这只不过是高效学习的余温而已,所谓的高效更可能是感觉上的高效,再继续进行下去只会让热情从峰值递减。&u&如果你在对学习感到糟糕的时候结束一天的学习,我想说,你真是愚蠢,总是竭尽全力的消耗完自己&/u&。你的确是拼命学到乏力的程度了,没错,确实可以承认你真的很拼很努力。如果学习只是一次性交易的话,你这种努力就值得嘉奖;可惜,学习它是一个长期的过程。&u&每一次,当你学到无力时才恋恋不舍地结束&/u&,你用“精疲力竭”给一天的学习画上了句号,很令人感动。&u&但是,你可知道,你每一天学习的最后体验点就是&/u&&b&&u&“累”&/u&!&/b&今天你是通过竭尽全力的方式学到很多东西,可是,&u&当“明天”来临的时候,你对于“今天”关于学习的最后印象只会是“&b&累&/b&”。“后天”、“大后天”......每一天都以“累”的感觉最为结尾点-----那么这个“累”就是你带给每一个“明天”的学习痛苦感。这种”&b&累&/b&“的感觉会累积变浓,因为每一天关于学习最后的那个感觉都会留下来,积累在你潜意识情绪认知里面。你因为一次次过度学习,从而导致了一次对学习的厌恶感的积累。——可笑你得不偿失!&/u&
而这正是多数人的做法:趁着精力十足拼命学习,学得无休无止,直到精疲力竭才罢休。哇塞,今天他妈的好有成就感,我学了满满一天,好有收获!——看到没,这种人很快会懈怠下来,你看到他第二天,第三天可能就去看电影去玩耍了,他说,那是劳逸结合,他说有学就要有玩……从我独特的角度来看,&u&此人每次如此耗尽一天“彻底”学习的后果是,在他潜意识印象中,会不断累积对学习的厌恶感,因为他总是在学习达到疲劳低谷点的时候才结束,自然有一种“学习使人疲累”的累积印象,所以,他的那种学习方法不长久&/u&,因为一个人如果不是经过科学合理的调节,自然而然做到一个“精力旺盛”+“想要学习”的每一天,那是很少见的。当然,有时候他也会精力状态,但没有合理利用起来,居然还被他一次性刷爆了!
&u&再者,他所谓的“收获满满”如果有一天遭受到打击,比如,现实证明他所学一无是处的时候,他心中就会倍加懊悔&/u&,懊悔当初那些拼命学习的付出是否值得,而这个&u&懊悔的对象无疑是「学习」&/u&,他以为无用的学习使得他之所学无用武之地,&u&在抱怨学错知识内容的同时不可避免的是他也会对「学习」行为本身产生一度的怀疑&/u&,你看,一个人对学习的厌恶,对学习的恐惧,就是如此积累而来的。现在,你说,一个人对学习的厌恶是自然由来的吗?人是不爱学习的吗?人是可以热爱学习的,但是需要方法,需要遵从人的心理特点。&u&当我说到这里的时候,请你听从我的建议:无论是什么学习,如果有这件事情来说对你重要,也有必要,但是你却讨厌它,那么请你在讨厌的时候立马去学习它,学到你喜欢它的时候立刻中断它。因为人都是追求快乐的,你学到情绪快乐的时候就中断,你的情绪就会带领你再来领略一次那种似曾相识的快乐,即便你的情绪不会主动带你来,也不要紧,因为你至少不会在心理上抗拒了&/u&。&/p&&br&&p&&u&当你看到以上的观念的时候,可以点赞加感谢甚至加关注了,因为我第一次在这里说这个东西,有幸,你也看到了。所以,是缘分,我谢谢我自己,这是一个多么好的观念呀,不敢说你在别的地方有没有见过,但是,在我的认知范围内,把这个观念用于学习,真是一种创造&/u&!&/p&&br&&br&&p&&b&第B步:回顾&/b&
看完一章之后,这一步简直轻松,一页一页翻过去,对主要知识点、概念,脑子里有一个回顾,知道这一章有讲什么内容。
&b&第C步:做题&/b&&/p&&p&&b&a计划&/b&.找例题,做例题。不看答案,能做多少就做多少,做完对答案,紧接着完整抄一遍标准答案→→去章后看看有没有会做的题目,有会做的就做下去→→没有就跳回来看第二个例题,方法一样→→如此循环往复&/p&&p&以上流程,如果五个例题抄完仍然没有头绪,那么太好了,说明你还没有理解教材,或者你的基础不扎实,这个就更好解决了:进行b计划
b计划&/b&:遇到这种阶段性的困难,只能加强对教材的针对性理解。在例题解答答案步骤中圈出那些重复出现的关键词以及章后题目含有的术语,再进一步去阅读相关知识点的概念、案例、图表。接着回来做题。如果不行,更加简单了:进行c计划
c计划&/b&:能让你进行到b步骤的书,我有理由相信那应该是类似《固体物理》一类的教材了,其他弱弱的学科如电工等等等等,基本上不会让你做了五个例题、抄了五个例题,你连一点头绪都没有。所以,你的操作如下:放下书本,去热爱生活吧。
&b&另外,我在送你一个礼物:&/b&当一本教材用如上的方式进行完毕,请你及时从网上寻找一份有详细答案的试卷做一次测试!
如果成绩达不到你心中的目标,请自觉决定安排时间重新学习、巩固、提高。这是对于自己有高要求的学霸说的。
&b&这个测试建议实际上对渣渣具有更多现实意义:如果在测试中不及格,你需要重新加强课本的学习。以此,拯救了一大片期末会挂科的渣渣们。你总不至于在看到这个特意提醒的时候,还清醒而且坚定的要和期末考做一锤子买卖吧!?&/b&
要讲的话讲完了,前前后后花了好多是时间修改文字。另外在补充一下我按这个方法进行时的一般作息:
1.我一般6点30分醒来,写晨间日记。上面会写“a.心态准备:我现在心情有点糟糕,还想睡觉,但是八点需要良好的心态来进行正式高效学习,所以,我必须振奋起来,加油!”“b.行动准备:为了确保八点正式高效的学习,我应该吃好早餐,天不冷的话,应该小跑一会儿,太冷的话,那就神伸懒腰好了,总之,要让心情愉悦起来”、“物质准备:应该去买水、巧克力……”写着写着,就清醒了过来。我不确定刚刚起床要不要再床上像猫一样的坐着不动停留几秒,听说有利健康,不错,很有利健康,我的尝试是这样的:为什么坐着?躺在不是更舒服吗?——没错,我又睡了几个小时!-----这就是好处吧吧吧。&/p&&br&&p&反正就是此类日记记录每天重复差不多的唠叨,长时间的进行,我发现,这对于我来说,最大的作用应该是暗示的作用——或者说,我有意于使它培养出一种条件反射,我喜欢这样,因为我喜欢——简单的勾勒,不是很长,我把笔记本放在床头,一起来,就里面写第一个字,“2015年……”之后就自然起来了,&b&朋友,记住一条简单的惯性定律:静止的倾向于静止,运动的倾向于运动。不知道一件事情怎么开始才合适?先去做10分钟。不知道怎么和女孩搭讪?立马过去说一声:“你好!……”后面的你自然会接着说。动起来,运动的倾向于运动。我真喜欢这句话。&/b&&/p&&p&2.我也有睡过头的时候。我看到有人因为一次计划的中断他就放弃了整个项目,我觉得他实在是愚蠢啊。比如我昨天打算早起学习的,可是济南雾太浓(刚刚接到济南大雾黄色预警,不妙啊),我以为是天没亮,结果晚起了两个小时。我难道不学了?对的,很多人正是这样做的。如果他在睡过头到中午才起来,他就很懊恼,麻痹,一天就这样悔了,算了,算了,今天下午还是好好玩吧,明天一定要早起!——这真是愚蠢啊,你没想到吧?第二天还是一样哎!长时间这样,效果很不好,你知道吗?当最后任务期限要截止的时候,你就焦躁不安了,你开始感叹时间他妈太快,自己不知不觉又荒废了这么多时间!……一连的情绪爆炸……哎。
&u&晚起了,就接着计划一天可利用的时间就行了嘛……有什么大不了?&/u& &u&同样,长期的计划要是因为不得已有一天两天的中断也没有关系,接着进行就行了嘛!……有什么大不了?非要让一时的缺失造成长期的隐患?!&/u&
3.能量值爆发期。
每个人的高能学习时间段可能不一样。但是我要强调一个词「预计」。观察自己长期的活动状态,我认为,预计自己能量爆发态出现在上午8~10,下午2~5点,晚上6:30~10点,一共八个半小时,所以,我会为了这八个小时坐着很多额外准备,比如,中午午睡就是必要工作;下午5点40左右,我可能会眯一会,这也是必要的工作;休息间隙用牛逼的耳机听喜欢的音乐,是必要的工作;个人爱好,俯卧撑也是必要工作;巧克力也是……总之,都是为了保证这八个半小时的高效利用而准备(实际上达不到8个半,8~10点休息10分钟,下午2~5点休息10*2,晚上6:30到10点,10*2,因此学习纯时间是7小时40分钟)。
因为里面提到下午5点40左右的小睡,那个时候并不困,是为了防止晚上三个半小时产生疲劳而提前进行的小睡眠的。&b&在疲劳来临之前休息放松是最好的缓解疲劳的方法,你没有听说过吗?你听说过,所以,我再一次提醒你而已。&/b&
ps.别以为这样学习苦逼,其实我是在极大愉悦度中进行的,伴随着强烈的仪式感,每一天都像朝圣之行。&/p&&br&&p&没有太多错别字,我不想修改太多次了,实在很耗费时间,但是如果你看到这里,我提醒你的是:&b&划线内容才是关键。&/b&&/p&&br&&p&(ps.在3月22号,达到吉利的88888赞之后,我才腼腆的放上自己的公众号吧——&/p&&br&&p&搜——「白诗诗」或者「baishishi100」即可。&/p&&br&&p&希望在日——本人发现被知乎流量被限制之后,可以带走一点读者吧,哎。)&/p&&br&&p&最后是我的名言:&/p&&br&&p&&b&为了学习,我今天有特意去买了一盒巧克力,预计前途是一片光明。&/b&&/p&&br&&br&&p&&b&++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&/b&&/p&&p&&b&这么有才的人当然需要做广告了,我被邀请太多,如果有以下相似问题,希望你们看过我答案后再邀请:&/b&&/p&&p&&b&哦,别忘了去微信公众号搜索---“白诗诗”,为什么呢,因为我也转移阵地了。&/b&&/p&&p&&b&以上是我最值得一看的答案:&/b&&/p&&p&&b&1.&/b&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&怎么背书最有效率? - 知乎&/a&&/p&&p&2.&/p&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&如何成为记忆高手? - 知乎&/a&&p&3.&/p&&a href=&http://www.zhihu.com/question//answer/& class=&internal&&应届大学毕业生面试中有哪些“黑技巧”可以提高面试成功几率? - 白诗诗的回答&/a&&p&4.&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&我所依赖的记忆方法 - 知乎专栏&/a&&/p&&p&5.&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&给高中小朋友的一些学习方法 - 知乎专栏&/a&&/p&&p&6.&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&那我就靠这篇文章卖钱了 - 知乎专栏&/a&&/p&&p&&b&好吧,只贴好几个相关的。随便看。&/b&&/p&&p&&b&最后为了凑字数,让我隆重的再说一次我的名言:&/b&&/p&&br&&br&&p&&b&为了学习,我今天有特意去买了一盒巧克力,预计前途是一片光明。&/b&&/p&&br&&p&&b&9000字&/b&&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//weixin.qq.com/r/60Snv5vEFsZprd-c9xH5& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&weixin.qq.com/r/60Snv5v&/span&&span class=&invisible&&EFsZprd-c9xH5&/span&&span class=&ellipsis&&&/span&&/a& (二维码自动识别)&/p&&p&为了方便大家关注,我特地去做了一个二维码!&/p&
谢邀。此文虽长9000字整 ! 全手码,预计花费您10分钟左右才能阅读完,建议不跳读。值得收藏。这是知乎朋友的热情啊,一个小时之内,就看到了收藏是点赞的三倍!!!哈哈,为什么! ! ! ①时间如果你想要在某个知识领域成为the best of the best,你必须要花…
不谢邀。&br&&br&评价就免了,槽点太多反而不好下手。但至少比较好的总结了阿当自己的观点,至少以后要论战不能以微博140字讲不清楚作为理由了。&br&&br&&br&本来前端圈子里对阿当(曹刘阳)的观点已经讨论过几波了,再来一次也无伤大雅。但是这次不太好的一点呢,是从CSDN/程序员这个老牌程序员媒体上发表的,就让前端圈之外的人误以为阿当的观点是前端行业的主流看法或者至少是有很大影响力的意见。这会误导其他技术人员(包括技术管理层)和非技术人员(如产品、设计)。我为什么敢说阿当的观点绝对不是主流,不是凭借我个人在前端行业的权威地位(自吹一下,反正不上税),而是这确实是业界共识(具体后面会说)。&br&&br&坦率说,这个事情呢,我也有微小的责任。因为程序员编辑部其实之前找过我,希望我来写2016前端技术盘点,我呢太忙了(年底事多,还要参加好多活动),就推说这题目太难。本来我也应该推荐一些其他人来写,比如 &a data-hash=&12b74fdb32dc5e8a03d1& href=&//www.zhihu.com/people/12b74fdb32dc5e8a03d1& class=&member_mention& data-editable=&true& data-title=&@黄玄& data-hovercard=&p$b$12b74fdb32dc5e8a03d1&&@黄玄&/a& 啊。写技术盘点这种题目非常重要的是技术视野和技术品味,黄玄这方面很好,而且对于2016年的热点如微信小程序、(被很多人忽视的)PWA等都有很深入的观察,而且他最近应该也比较空。但是不幸的,因为程序员编辑部的工作人员在微博私信上联系的,我现在刷微博比较少,后来就把这个事情忘记了。但我确实也没想到最后他们会找阿当来写。毕竟我印象里历史上程序员杂志的编辑还是有眼力劲的,比如在2013年年初请 &a data-hash=&cfdec6226ece879d2571fbcf& href=&//www.zhihu.com/people/cfdec6226ece879d2571fbcf& class=&member_mention& data-editable=&true& data-title=&@尤雨溪& data-hovercard=&p$b$cfdec6226ece879d2571fbcf&&@尤雨溪&/a& 撰写的《&a href=&//link.zhihu.com/?target=http%3A//history.programmer.com.cn/15552/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&开源前端框架纵横谈&/a&》,那时小右甚至还没开始vue的开发(不知道是不是写了这盘点之后才下决心自己写一个的)。当时我也还不认识小右,但那文章给我留下了印象,所以现在还记得。&br&&br&其实那期是前端专刊(&a href=&//link.zhihu.com/?target=http%3A//www.csdn.net/article//2815113& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《程序员》2013年3月刊:前端-CSDN.NET&/a&),我们看下目录:&br&&br&&a href=&//link.zhihu.com/?target=http%3A//www.csdn.net/article//2814893& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&开源前端框架纵横谈&/a& by &a data-hash=&cfdec6226ece879d2571fbcf& href=&//www.zhihu.com/people/cfdec6226ece879d2571fbcf& class=&member_mention& data-editable=&true& data-title=&@尤雨溪& data-hovercard=&p$b$cfdec6226ece879d2571fbcf&&@尤雨溪&/a&&br&&br&Web App和HTML5给Web前端带来的变化 by 曹刘阳&br&(我整理时才发现那个时候阿当也写了一篇,说明当时这篇文章没给我留下啥印象。)&br&&br&&a href=&//link.zhihu.com/?target=https%3A//github.com/seajs/seajs/issues/547& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&前端模块化开发的价值 &/a& by &a data-hash=&cd86bc9090bed90757a34c& href=&//www.zhihu.com/people/cd86bc9090bed90757a34c& class=&member_mention& data-editable=&true& data-title=&@玉伯& data-hovercard=&p$b$cd86bc9090bed90757a34c&&@玉伯&/a&&br&&br&前端工程师如何应对移动Web时代的应用开发 by &a data-hash=&ec03b8e839a6fb763e1bdb& href=&//www.zhihu.com/people/ec03b8e839a6fb763e1bdb& class=&member_mention& data-editable=&true& data-title=&@winter& data-hovercard=&p$b$ec03b8e839a6fb763e1bdb&&@winter&/a&&br&&br&&a href=&//link.zhihu.com/?target=http%3A//www.csdn.net/article//2819144& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TypeScript:更好的JavaScript&/a& by &a data-hash=&d92c025cc5099deb6ad8& href=&//www.zhihu.com/people/d92c025cc5099deb6ad8& class=&member_mention& data-editable=&true& data-title=&@高博& data-hovercard=&p$b$d92c025cc5099deb6ad8&&@高博&/a&&br&&br&CoffeeScript:阴霾天空的一抹蓝 by 周亮&br&&br&ClojureScript:前端世界的Lisp by 胥帝&br&&br&针对应用程序设计的Web编程语言Dart——《Dart语言程序设计》作者Chris Strom专访 by 韩国恺&br&&br&Node.js高实时应用开发 by 谢骋超&br&&br&&p&Backbone.js在大型单页面应用中的应用实践 by &a data-hash=&4df5cfafc891ed3018fd5e& href=&//www.zhihu.com/people/4df5cfafc891ed3018fd5e& class=&member_mention& data-editable=&true& data-title=&@赵望野& data-hovercard=&p$b$4df5cfafc891ed3018fd5e&&@赵望野&/a&&/p&&br&&p&为什么Discourse使用Ember.js by Robin Ward&/p&&br&&p&模块化高扩展性的前端框架KISSY by &a data-hash=&ff8c116d1a7a57af9de3b25e602b27c9& href=&//www.zhihu.com/people/ff8c116d1a7a57af9de3b25e602b27c9& class=&member_mention& data-editable=&true& data-title=&@何一鸣& data-hovercard=&p$b$ff8c116d1a7a57af9de3b25e602b27c9&&@何一鸣&/a&(承玉)&/p&&br&&p&行进中开火:YUI3在美团的实践 by &a data-hash=&26d40a71a3bfa462c1eab9& href=&//www.zhihu.com/people/26d40a71a3bfa462c1eab9& class=&member_mention& data-editable=&true& data-title=&@尚春& data-hovercard=&p$b$26d40a71a3bfa462c1eab9&&@尚春&/a&&/p&&br&&p&CSS预处理器:Sass、LESS和Stylus实践 by &a data-hash=&5fbc10cabdc95d7f30d08& href=&//www.zhihu.com/people/5fbc10cabdc95d7f30d08& class=&member_mention& data-editable=&true& data-title=&@大漠& data-hovercard=&p$b$5fbc10cabdc95d7f30d08&&@大漠&/a&&/p&&br&&br&&br&一共14篇。【值得收藏的一期嘿】&br&&br&&br&除去我不认识的周亮、胥帝、老外Robin Ward(Discourse作者),高博老师(著名技术译者)、谢骋超(pomelo的作者)不算前端圈里的人,其他9人确定是前端圈内的。韩国恺(应该是google的)、尚春(美团的)我不熟,其他7人我都多少有过交流。其中只有阿当转行做了产品,其他人就算做了管理不太写代码了,但至少还是前端或大前端团队的技术leader。以我的了解,我认为他们任何一人都不会同意阿当的大部分观点。&br&&br&其中有几位自己就回答过相关问题:&br&&br&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&关于「真阿当」对目前流行前端技术的批判,大家有什么看法? - 尤雨溪的回答 - 知乎&/a&&br&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&关于「真阿当」对目前流行前端技术的批判,大家有什么看法? - 玉伯的回答 - 知乎&/a&&br&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&如何看待真阿当每天在微博吵架? - winter 的回答 - 知乎&/a&&br&&br&毕竟,按照阿当现在的观点,TS、CoffeeScript、ES6、Angular、React、CSS预处理器、Node.js……都贬低了一遍,你们对照一下其他人当年写的稿子和现在做的事情,哪能赞同阿当呢?&br&&br&&br&不幸的是,这次CSDN/程序员在14位过往撰稿人当中偏选了阿当。&br&&br&而且如果你翻一下阿当当初写的那篇,尽管我们知道当年他就已经很固执了,但其实还没有现在这么……走火入魔。&br&&br&&br&&br&&figure&&img src=&https://pic4.zhimg.com/v2-4555dddf9e086b8d3155eb_b.png& data-rawwidth=&1410& data-rawheight=&1856& class=&origin_image zh-lightbox-thumb& width=&1410& data-original=&https://pic4.zhimg.com/v2-4555dddf9e086b8d3155eb_r.jpg&&&/figure&&br&&br&&blockquote&技术更新换代近在眼前,每个前端人都应该对此有危机意识……才不至于在这场新的革命中掉队。&br&&/blockquote&呵呵。&br&&br&&br&有些人可能会觉得(包括他自己表达的也是)他是实践之后才觉得这些东西不好的。但是他到底实践了多少呢?大部分人可能并不知道阿当是个多么固执的人。实际上我、winter、 &a data-hash=&0c6abb554ca000d11fcb49c6& href=&//www.zhihu.com/people/0c6abb554ca000d11fcb49c6& class=&member_mention& data-editable=&true& data-title=&@米粽& data-hovercard=&p$b$0c6abb554ca000d11fcb49c6&&@米粽&/a& 、大城小胖 &a data-hash=&b3e22f5612efe9f88500& href=&//www.zhihu.com/people/b3e22f5612efe9f88500& class=&member_mention& data-editable=&true& data-title=&@魏子钧& data-hovercard=&p$b$b3e22f5612efe9f88500&&@魏子钧&/a&、&a data-hash=&10c136ecabeea& href=&//www.zhihu.com/people/10c136ecabeea& class=&member_mention& data-editable=&true& data-title=&@月影& data-hovercard=&p$b$10c136ecabeea&&@月影&/a& 等当初在盛大创新院和阿当做过一段同事。特别是大城小胖、米粽跟他一起做过项目。当时(2010年)要做游戏大厅基于websocket的服务器端,所有人都建议他用node.js,一方面node.js已经有很好的websocket库和socket.io这样的封装库,另一方面我们许多人都非常看好node.js,并且统一到js能方便团队协作。但是他偏要自己用python撸一个。&br&&br&所以他一开始就对node.js充满偏见直至今天。&br&&br&BTW,所有盛大创新院共事过的前端(包括非前端的,如老赵 &a data-hash=&78e3b2ae1be4ab038a6e& href=&//www.zhihu.com/people/78e3b2ae1be4ab038a6e& class=&member_mention& data-editable=&true& data-title=&@赵劼& data-hovercard=&p$b$78e3b2ae1be4ab038a6e&&@赵劼&/a& ),没有一个赞同他的。真的是众人皆醉他独醒?&br&&br&再说CSS预处理器。公平的说,许多非常杰出的前端工程师,包括一些今天已经成长为行业领袖的同志,确实当初(2007年到2012年间)也不能接受CSS预处理器。但是到今天还反对的,除了阿当之外,我是真没遇到过了。当然,我自己很多时候也不用CSS预处理器,比如side project,或样式部分非常简单的项目。但是凡是复杂的需要团队协作的项目,必上CSS预处理器。因为和阿当理解的相反,CSS预处理器的优势越是复杂项目越是需要团队协作,越能体现出来。真正的技术团队leader早晚会通过实践明白这个道理。只能说阿当从来没有真正放下成见。&br&&br&另一方面,也不是说你没用过就不能评价了。比如我经常没怎么用过就评价嘛。但这得建立在非常强大的技术能力、技术视野和技术品味之上的。(忍不住又自吹了。)&br&&br&阿当在2010年&br&拒绝:node.js、CSS预处理器&br&推崇:YUI&br&&br&我在2010年&br&推崇:node.js、CSS预处理器&br&唱衰:YUI&br&&br&面对完全相反的判断,马后炮来说,当年一个工程师应该听我的建议,还是应该听阿当的建议?&br&&br&其实就当年来说,node.js/CSS预处理器,我和阿当都没怎么在production里实践过;YUI,阿当擅长,我从来不用。说起来他还比我多用过一项。但是这三个东西的趋势,我都预判准确。&br&&br&&br&当然,我也有判断失误的时候,比如2003年我就推崇XForms……现在没有几个人知道这东西,不过你们如果去看一下,就会发现,这不是MVVM嘛!咳咳,只能说太超前也不好。&br&&br&&br&先写这些吧。(反正自吹的部分已经ok了)&br&&br&&br&&br&【补充1】&br&&br&有人问到CoffeeScript。我从来就没特别看好过CoffeeScript,也没有鼓动过任何人在production里使用coffee,尽管我还是挺欣赏CoffeeScript的许多设计的。但是请别说我跟阿当在CoffeeScript的看法上一致。毕竟唱衰那么多东西,怎么着总能蒙对一两个吧。&br&&br&&br&【补充2】&br&&br&当然,也许阿当只是来吐槽的。但是吐槽的关键是要有娱乐效果。比如本问题下 &a data-hash=&b90c7eb6d3d5a4e2ce453dd8ad377672& href=&//www.zhihu.com/people/b90c7eb6d3d5a4e2ce453dd8ad377672& class=&member_mention& data-editable=&true& data-title=&@方应杭& data-hovercard=&p$b$b90c7eb6d3d5a4e2ce453dd8ad377672&&@方应杭&/a& 的吐槽姿势就很好嘛。看来下次阿当再发文章可以找方应杭先翻译一遍。&br&&br&&br&【补充3】&br&&br&有人问我RN的事。我其实对RN无感,但是可以讲点事实,就是国内有许多公司早就已经在用了,携程、58的移动app已经全线上RN了,类似RN的Weex则已经是阿里的技术战略。我写这篇文字的时候随时刷了一下知乎就又看到一篇去哪儿网同志关于RN/Weex在ListView底层技术上的分析(&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&知乎专栏&/a&),注意这文章的作者是iOS程序员。实际上许多公司引入RN、Weex的都是本来完全做native开发的移动端团队,而不是前端团队。我在多次技术大会上看到RN/Weex的分享的听众native和web开发者各占一半。所以阿当写的“学了React Native就可以在公司做App开发了?你先问问iOS和Android团队答不答应……公司定岗的原因,iOS和Android团队也绝对不会对你友好……”我相信很多人看到都哑然失笑。&br&&br&当然RN是不是就是移动开发的银弹?肯定不是嘛,否则阿里就不要自己再搞Weex了嘛。有没有其他可能?肯定有嘛,比如PWA,我个人其实也是比较偏爱PWA代表的“纯”Web技术方向的。所以阿当也不是所有话都完全不对(毕竟连李红米 &a href=&//link.zhihu.com/?target=http%3A//weibo.com//EjEAqfFI9& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&weibo.com//Ej&/span&&span class=&invisible&&EAqfFI9&/span&&span class=&ellipsis&&&/span&&/a& 也只能做到每页都有错误,无法达到每句都有错误)。比如他说“阉割版的CSS导致前端技能的受限”、“learn once write anywhere的性价比不(够)高”、“如果webview的性能问题在未来得到解决”……好像挺一针见血的嘛。&br&&br&当然,每个人看到的那个部分也不一定一样,比如本问题有些答案里觉得&br&“某当老师反对coffeescript和typescript的理由是比较赞成的”&br&“关于SPA和Web Site基本赞同”&br&“但是,强调基础是对的”&br&“有个观点是极其赞同的,很多人只会用框架用工具而不注重基本功的修炼”&br&“但是我觉得他对node的看法比较中肯”&br&“除了对Angular 1和微信小程序的评价相对中肯”&br&“不过全文反复强调前端要好好撸基础知识这点我是赞同的”&br&“关于全栈的批评。我觉得他说的没错。”&br&“最后说自己可能不对,可能有人觉得这句做作,但是我觉得能说出这句话还是很有勇气的”&br&……&br&&br&我先不说这些认知本身是不是对,其实有不同观点很正常。有些人就不理解为什么所谓“前端大佬”们就专针对阿当,以至于被一些同学认为“有失风度”、“狗咬狗,一嘴毛”?&br&&br&我引用在本文里 @ 过的某两位“前端大佬”对这文章的评价:&br&&br&&blockquote&&p&唉,这种文章的误导性就在于把偏见揉杂在正常的观点中,让经验不深的读者很难分辨。让假话容易被相信的最佳方法就是把一句假话混在九句真话中说。&/p&&/blockquote&&br&&blockquote&这文章烦就烦在又臭又长,没有中心脉络,观点有些没问题有些有问题,混杂着一堆偏见。&br&&/blockquote&&br&因为是私下对话,未经授权,所以就不贴人名了。得罪人和“一嘴毛”的事情我来就可以了(手动doge),反正我也是这么认为的。(咦,说好不评价的呢?)&br&&br&&br&【补充4】&br&&br&关于YUI。阿当最擅长的事情是缅怀YUI。&br&&br&我理解YUI给当年雅虎中国}

我要回帖

更多关于 lis9412规格书 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信