18、a + b:动态类型是灾难之源还是最好的特性(上)

你好,我是周爱民,欢迎回到我的专栏。今天我们讲的主题是JavaScript的动态类型系统。 动态类型是JavaScript的动态语言特性中最有代表性的一种。 动态执行与动态类型是天生根植于JavaScript语言核心设计中的基础组件,它们相辅相成,导...

JavaScript核心原理解析

19、a + b:动态类型是灾难之源还是最好的特性(下)

你好,我是周爱民。 上一讲,我们说到如何将复杂的类型转换缩减到两条简单的规则,以及两种主要类型。这两条简单规则是: 从值x到引用:调用Object(x)函数。 从引用x到值:调用x.valueOf()方法;或,调用四种值类型的包装类函数,例如Num...

JavaScript核心原理解析

20、(0, eval)(“x = 100“) :一行让严格模式形同虚设的破坏性设计(上)

你好,我是周爱民。 今天我们讨论动态执行。与最初的预告不同 ,我在这一讲里把原来的第20讲合并掉了,变成了20~21的两讲合讲,但也分成了上、下两节。所以,其实只是课程的标题少了一个,内容却没有变。 动态执行是JavaScript最早实现的特性之一,...

JavaScript核心原理解析

21、(0, eval)(“x = 100“) :一行让严格模式形同虚设的破坏性设计(下)

你好,我是周爱民。欢迎回到我的专栏。书接上回,这一讲我们仍然讲动态执行。 之前我说到过,setTimeout和setInterval的第一个参数可以使用字符串,那么如果这个参数使用字符串的话,代码将会在哪里执行呢?毕竟当定时器被触发的时候,程序的执行...

JavaScript核心原理解析

22、new Function('x = 100')();:函数的类化是对动态与静态系统的再次统一

你好,我是周爱民,欢迎回到我的专栏。 今天是专栏最后一讲,我接下来要跟你聊的,仍然是JavaScript的动态语言特性,主要是动态函数的实现原理。 标题中的代码比较简单,是常用、常见的。这里稍微需要强调一下的是“最后一对括号的使用”,由于运算符优先级...

JavaScript核心原理解析

结束语、愿你能做一个真正“懂”的程序员

我常常讲一个比喻,这个比喻是说有一座塔,塔门口有两尊石狮子。 如果有人登塔,那么进塔之前他固然是会看到这个狮子的,往上走,正好到塔后,石狮子就没有了,于是这个人说“就我一楼之所见,没有狮子”;绕到前面,一看,石狮子好好地在那儿,于是这个人又说“于我所...

JavaScript核心原理解析