惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
V
Vulnerabilities – Threatpost
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
Latest news
Latest news
博客园 - 三生石上(FineUI控件)
美团技术团队
aimingoo的专栏
aimingoo的专栏
Google Online Security Blog
Google Online Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threatpost
Y
Y Combinator Blog
T
Tailwind CSS Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
Arctic Wolf
C
Cyber Attacks, Cyber Crime and Cyber Security
小众软件
小众软件
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Tenable Blog
W
WeLiveSecurity
L
LINUX DO - 热门话题
D
Docker
Cyberwarzone
Cyberwarzone
量子位
A
About on SuperTechFans
The Last Watchdog
The Last Watchdog
雷峰网
雷峰网
C
CERT Recently Published Vulnerability Notes
P
Palo Alto Networks Blog
The Hacker News
The Hacker News
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Full Disclosure
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
T
The Exploit Database - CXSecurity.com
Engineering at Meta
Engineering at Meta
O
OpenAI News
Hacker News - Newest:
Hacker News - Newest: "LLM"
Scott Helme
Scott Helme
IT之家
IT之家
S
Secure Thoughts
MongoDB | Blog
MongoDB | Blog
L
Lohrmann on Cybersecurity
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News

囧克斯

奔四了,写给40岁的自己 有序退网 我和 Vue.js 的十年 我参与《代码之外 Beyond Code》的故事 博客站迁移至 VitePress 的备忘 写给我的奶奶 中文格式化小工具 zhlint 及其开发心得 vue-mark-display:用 markdown 语法轻松撰写幻灯片 我对技术会议的一些看法 VueConf Hangzhou 见闻 第四届 CSSConf CN 见闻 [译]Web 表单的未来 [译]苹果正在做一些他们的程序员明摆着不想要的东西 [译]为什么我不会无偿加班且你也不应该 [译]如果管理是唯一可走的路,那就完蛋了 [译]如何撰写 Git 提交信息 [译]C 程序的原则 Vue 2.0 来了! Weex 近 4 个月的开源之路 Weex 在 JS Runtime 内的多实例管理 我理解的 SPA 我理解的 Flux 架构 【整理】Vue 2.0 自 beta 1 到 beta 4 以来的主要更新 通过一张图走进 Vue 2.0 Code Review for Vue 2.0 Preview Vue 2.0 发布啦! 务实的小而美 Vue.js 1.0.0 发布了! [译]如何成为一名卓越的前端工程师 手机淘宝前端的图片相关工作流程梳理 [译]如何让办公室政治最小化 Vue.js 源码学习笔记 从原型到发布——“团队时间线” 1.0 开发心得 Vue + webpack 项目实践 用 Koa 写服务体验 webcomponents 笔记 之 配置管理 小秀个人的13~14年摄影作品 (共19张) 由今年D2前端论坛想到的 [译]CSS命名神马的真心难 [译]Git 分支的最佳实践 [译]撰写可测试的 JavaScript [译]语义化版本管理 [译]通过HTML5 Canvas API调节图像的亮度和颜色 [译]JavaScript V8性能小贴士 [译]视觉差,走起! [译]Chrome开发者工具中评估性能的五大新特性 精气神儿 细节无微不至,彩屏让人又爱又恨——新老“神机”大对决:Nokia 1050 vs Nokia 1202 秦升拿到红牌之后…… 用Sass重新整理自己的博客主题样式 Connect中间件使用手册 巧用 RequireJS Optimizer 给传统的前端项目打包 编辑器小调查结果 [译]JSLint 文档 烟火——写给蛇年的傲游和我 小秀个人的全年摄影作品 (共15张) 2012年终毫无正能量的总结 标签?ID?还是CLASS? 微创新=伪创新 HTML5峰会归来 分享bookmarklet一则:随意阅读 国际羽联和中国队之间的恶性循环 ZeroClipboard 学习笔记 “思考人生” 听杨东杰弹吉他 学习精髓 网站装修笔记20120426 网站装修笔记20120414 网站装修笔记20120406 分享Typecho插件:百度统计助手 我的得奖感言 网站装修笔记20120331 用CSS3制作尖角标签按钮样式 分享Typecho插件:Markdown 解析器 + 编辑器 分享Typecho皮肤:我的字很大 汇总自己过去的一些HTML5科普文章 html5中的消息通信简介 + 我的新网站开张 网站装修计划 Typed Arrays 是神马? 文明看球 HTML5中的文件处理 之 File Writer API HTML5中的文件处理 之 File API 独生子女、互相等和不耐烦 IndexedDB技术简介(四) IndexedDB技术简介(三) IndexedDB技术简介(二) IndexedDB技术简介(一) 把博客的字体进一步调大,同时去掉了侧边栏 “模仿别人是为了找到自己” 写给我未婚妻的2011年 写给自己的2011年 手把手教你入门EaselJS做HTML5动画 “吃了吧,不吃就浪费了” 写给傲游的2011年 所谓专业 写给HTML5的2011年 对HTML5中LocalStorage的一些使用建议 回味一下我2011年看到的最过瘾的5场足球比赛 浅浅浅谈开饭店被顾客吃出“异物”的用户体验 前端的本职
其实我不懂 Javascript
勾三股四 · 2009-06-14 · via 囧克斯

本文摘自 勾三股四 更早时期的 不老歌 博客。


最近在读一本有关 javascript 的书。
这本书很有趣,虽然内容是枯燥的,但偏偏又是我感兴趣的——我总是看着它不知不觉的犯困,每次睡醒之后,又立刻想把它继续看下去。
它虽然是讲 javascript,可基本不讲浏览器环境,统统是在推敲和雕琢语言本身的细致入微的环节。透过这本书,我看到了很多 js 被 ie/ff/chrome/op 以及 web 设计师、架构师们打磨过后,被埋没的内容——而这些内容又是这么让人豁然开朗。我才发现,原来自己之前对这门语言的了解,是很片面的。同时,这本书还打破了我的一些迷信思想:

1. 不是只有老外的书才写的好——我们国人也写得出有深度有内容的好书;
2. 不是只有传说中的神仙才写得出艺术品一般的代码和产品——我们每个人都有这个潜力;
3. 不是只有起步早才有机会的——javascript 的历史也不过十余年,从作者的人生经历来看,想成大器,只要心已决,永远都不晚。

摘一些自己通过这本书认识到的知识盲点和知识体系:

1

. 'abc' 和 new String('abc') 的区别在于前者传递的是值,后者是引用;

2

. string 的值可以使用下面的方法书写:var str = 'abcdefg\
hijklmn\
opqrst\
uvwxyz';
反斜杠代表书写时要折行,字符本身并不属于字符串,它的值会是一个没有换行符的 26 个字符的字符串,但有一点要注意,反斜杠后不能跟注释;

3

. == 和 === 的比较规律和原则如下:

运算符两个直接量比较直接量和引用比较两个引用比较
==比较两者的值是否相同先将引用转化为值,再与另一个值进行比较比较引用是否相同
===同时比较类型和数值肯定不相同比较引用是否相同
大于、小于等直接比较两者的“序列”大小先将引用转化为值,再与另一个值进行比较无法比较,直接返回 false

4

. 正则表达式中的“引用匹配”,如:(\d)\.\1表示两个相同的数字用点连接起来的情况(如"12345.12345");

5

. SpiderMonkey Javascript 引擎(即 ff 等浏览器的 js 引擎)中,表达式中的具名函数不会存在与整个命名空间中,如:((function foo(a,b) {...})(x,y));

6

. eval 语句中应该是一个完整的语句,而非表达式,此函数共执行三件事:解析语句 - 执行语句 - 返回语句的返回值;

7

. 逻辑语句可以简写成下面的样子:while (...);if (...);
else {...}

8

. 标签的写法以及 break 的一个不常用的用法:my_label: {
...
break my_label;
...
}
continue 也有类似的用法;

9

. new constructor();在没有参数时可以简写成new constructor;这里 constructor() 并不能认为是函数调用,因为不能将其写成下面的样子:

10

. 对象的隐形属性(如一些 native code)被重写后在有些 js 引擎中会变为显性属性(即出现在 for ... in 循环中);

11

. delete 不能删除的内容有:
a. 通过 var 声明的变量;
b. 对象的原型的成员;

12

. 可以通过 in 语法判断对象是否具有某个属性:if (property in object) {...}
这本书还没看完,应该还有很多可以拿来完善我们的 js 知识体系的内容。这里做一个阶段性的自我整理。同时分享出来。