摘要:
语法 语句和表达式 我们用英语的术语来说明它们的区别 “句子”(sentence)是完整表达某个意思的一组词,由一个或多个“短语”(phrase)组成,它们之间由标点符号或连接词(and 和or 等)连接起来。短语可以由更小的短语组成。有些短语是不完整的,不能独立表达意思;有些短语则相对完整,并且能 阅读全文
摘要:
javascript运行环境 js如果只在引擎中运行,它会严格遵循并且可以预测的,但是js几乎都在宿主环境中运行,浏览器或者Node环境 ECMAScript中的Annex B 介绍了浏览器兼容性问题导致与官方规范的差异 • 在非严格模式中允许八进制数值常量存在,如0123(即十进制的83)。 • 阅读全文
摘要:
隐式强制转换 在其可控的情况下,减少冗余,让代码更简洁,很多地方都进行了隐式转换,比如常见的三目表达式、if()、for()、while、逻辑运算符 || &&,适当通过语言机制,抽象和隐藏一些细枝末节,有助于提高代码可读性,以三目表示式为例 1.字符串和数字之间的隐式转换 通过重载,+ 运算符即能 阅读全文
摘要:
什么是显式 这里的显式和隐式是以普遍的标准来进行讨论的,你能看出来是怎么回事,那么它对你是“显式”,相反你不知道的话,对你就是“隐式” 抽象操作 字符串、数字、布尔值之间类型转换的基本规则 ES5定义了一些操作,诸如ToString、ToNumber、ToBoolean、ToPrimitive抽象操 阅读全文
摘要:
开篇 值的传递方式 1.值传递 表示传递过程中复制了值 2.引用传递 表示传递过程中传递的是值的引用 js的传递方式 值传递 看下面的例子 如何生成对象 1.使用对象字面值 2.使用构造函数 我们先看一下原生构造函数 String() // 字符串 Number() // 数字 Boolean() 阅读全文
摘要:
开头 js数字没有明确区分浮点数和整数类型,统一用number类型表示。 number 基于IEEE 754标准实现 js采用的是双精度(64位二进制) 我们看一个基于IEEE 754标准实现都有会有的经典问题 我们很容易修正这个错误,知道是因为偏差值出现问题,我们可以定义一个偏差值,在此偏差值内我 阅读全文
摘要:
首先null是表示什么状态呢 这个是需要和上篇的undefined做一个区分 undefined 从未赋值 非关键词(也就是可以定义为变量名或者赋值给它) null 曾经赋值、目前没值 关键词 typeof “失灵了” 这个bug是第一版Javascript留下来的。在这个版本,数值是以32字节存储 阅读全文
摘要:
思考 作为一个编程人员,你可能从来没仔细思考过,为什么这么多高级语言会有类型这东西。 实际上,类型有点类似生活中的类别,我们日常生活,早已经把这个概念理解到了,切肉和切水果会用不同的刀。 语言级别的类型给我们带来了什么 类似分类,我们会用合适的类别去做它擅长的事,编程语言的类型给我们带来的就是它们自 阅读全文