资讯专栏INFORMATION COLUMN

《JavaScript权威指南》随笔(一)

SwordFly / 910人阅读

摘要:每个构造函数定义了一类对象,表示由构造函数初始化对象的集合。严格模式下,明确禁止八进制数。日期和时间构造函数用来创建表示日期和时间的对象,包含方法。模式匹配函数是一个构造函数,创建正则表达式。布尔值表示两种状态,使用保留字和。

《Javascript权威指南》就是前端工程师口中常说的犀牛书,得名是因为中文翻译出版的书籍封面是一只犀牛,是学习JavaScript的必读书籍。
JavaScript概述

JavaScript与Java无关,是面向Web的编程语言。

前端开发工程师必备的三样技能:描述网页内容的HTML;描述网页样式的CSS和描述网页行为的JavaScript。

JavaScript是高端的、动态的、弱类型的编程语言,非常符合面向对象和函数式编程的思想。

EMCAScript是JavaScript的标准。

JavaScript语言核心针对文本、数组、日期和正则表达式定义了许多API,但本身并不提供输入输出功能,输入输出功能由JavaScript的宿主环境(通常指的是web浏览器)提供。

词法结构 字符集

使用Unicode字符集,该字符集是ASCII和Latin-1的超集。

区分大小写。

通常忽略换行符、制表符和连续空格。

转义序列以u开头,使用4个十六进制字符表示

允许多种方式对同一个字符编码,并定义了标准化的解码方式。

注释

在行尾“//”之后的文本都会被JavaScript认为是注释并被解释器忽略。

还可以使用“/”和“/”来包含一段多行注释,可以跨行书写,但不可以嵌套。

直接量

就是在程序中直接使用的数据值。例如:整数和小数,字符串,布尔值,null,正则表达式,对象,数组。

标识符和保留字

用来对变量和函数命名的名字和标记

必须以字符、下划线(_)、美元符号($)开头,后续可以使用字符、数字、下划线、美元符号。注意数字不允许作为开头出现,以便解释器可以区分标识符和数字。

支持所有的Unicode字符集,但是为了移植性考虑,建议只是用Unicode字符和数字。

被拿来做自己的关键字的标识符被称为保留字。

具体实现可能定义独有的全局变量和函数,每种JavaScript运行环境都有全局属性列表。

可选的分号

使用分号分隔语句。

当每条语句独占一行时,可以省略分号。

解释器在缺少分号就无法运行的情况下会自动添加分号(注意不一定是每个换行符处)。

return break continue之后的表达式不能使用换行,虽然多数情况下不会报错,但会产生逻辑错误。

类型、值和变量

表示并操作的值的类型称作数据类型。

变量是值的符号名称,可以通过名称来获得对值的引用。

JavaScript的数据类型分为两类:原始类型和对象类型。

原始类型包括数字、字符串和布尔值。除此之外还有两个特殊的原始值:null和undefined。

对象是属性的集合,每个属性都由“名/值对”(值可以是原始值,也可以是对象)构成。

普通的JavaScript对象是“命名值”的无序集合,数组是有序集合。

函数也是一种特殊的对象。

初始化(使用new运算符)一个新建的对象,我们称为构造函数。

每个构造函数定义了一类(class)对象,表示由构造函数初始化对象的集合。

JavaScript语言核心定义了Array,Function,Date,RegExp和Error特殊的对象。

解释器有自己的内存管理机制,可自动进行内存的垃圾回收,当不再有任何应用指向一个对象,该对象所占内存资源被回收。

JavaScript自由进行数据类型转换。

变量是无类型的,可以被赋予任何类型的值,使用var声明变量。

数字

不区分整数值和浮点数值,所有数字均用浮点数值表示。

采用IEEE754标准定义的64位浮点格式表示数字,实际操作时则是基于32位整数。

数字直接量前添加(-)号可以得到负值,(-)是一元求反运算符。

整型

用一个数字序列表示十进制整数。

以“0x”和“0X”位前缀的是十六进制直接量,其后用0-9和A-F表示。

ECMAScript标准不支持八进制表示,但是某些实现允许采用八进制表示整数。以数字0为前缀,0-7的序列表示八进制数。

严格模式下,明确禁止八进制数。

浮点型直接量

可以含有小数点,采用传统的实数写法,由整数部分,小数点和小数部分组成。

还可采用指数计数法表示,实数后面跟字母e或者E,再加指数。

算术运算

算数运算符是用来进行数字运算的。包括加法运算符(+),减法运算符(-),乘法运算符(*),除法运算符(/)和求余运算符(%)。

除基本运算符外,还支持更加复杂的算术运算,通过作为Math对象的属性定义的函数和常亮实现。

算术运算溢出、下溢或被零整除时不会报错,结果为特殊值。

溢出时表示Infinity(正无穷)或-Infinity(负无穷)。基于它们的算术运算结果还是Infinity(保留正负号)。

下溢表示为“负零”。返回0,很少用到。

被零整除时用无穷表示,零除以零则用NaN表示,除此之外,无穷除以无穷,给负数开方都会得到NaN。

NaN不等于自身,判断NaN为isNaN()方法,判断无穷使用isFinite()方法。

二进制浮点数和四舍五入错误

IEEE-754浮点数表示法是一种二进制表示法。

可以精确表示1/2、1/8和1/1024这种,但是无法精确表示1/10、1/100等。无法精确表示0.1,所以0.3-0.2==0.2-0.1返回一个false。

日期和时间

Date()构造函数用来创建表示日期和时间的date对象,包含getFullYear()、getMonth()、getDate()、getDay()、getHours()、getUTCHours()方法。

文本

字符串是16位不可变的有序序列。

采用UTF-16编码的Unicode字符集。

字符串直接量

字符串直接量可以写在多行中,但每行必须以结束。

转义字符

之后加一个字符就不在表示他们的字面含义,例如n表示一个换行符。

字符串的使用

+表示字符串连接,将第二个字符串拼到第一个字符串的后面。

length属性表示字符串的长度。

字符串固定不变,变化是因为返回了新的字符串。

模式匹配

RegExp()函数是一个构造函数,创建正则表达式。

布尔值

表示两种状态,使用保留字true和false。

包含toString()方法,可以转换成‘true’和‘false’

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108080.html

相关文章

  • 如何正确学习JavaScript

    摘要:然而,虽然先生对无所不知,被誉为世界的爱因斯坦,但他的语言精粹并不适合初学者学习。即便如此,在后面我还是会建议把当做补充的学习资源。但目前为止,依然是学习编程的好帮手。周正则表达式,对象,事件,阅读权威指南第,,,章。 既然你找到这篇文章来,说明你是真心想学好JavaScript的。你没有想错,当今如果要开发现代网站或web应用(包括互联网创业),都要学会JavaScript。而面对泛...

    canger 评论0 收藏0
  • 如果想成为名顶尖的前端,这份书单你定要收藏!

    摘要:其中负载均衡那一节,基本上是参考的权威指南负载均衡的内容。开发指南读了一半,就是看这本书理解了的事件循环。哈哈创京东一本骗钱的书。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯IVWEB团队 发表于云+社区专栏作者:link 2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍...

    callmewhy 评论0 收藏0
  • 如果想成为名顶尖的前端,这份书单你定要收藏!

    摘要:其中负载均衡那一节,基本上是参考的权威指南负载均衡的内容。开发指南读了一半,就是看这本书理解了的事件循环。哈哈创京东一本骗钱的书。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯IVWEB团队 发表于云+社区专栏作者:link 2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍...

    Scliang 评论0 收藏0
  • 如果想成为名顶尖的前端,这份书单你定要收藏!

    摘要:其中负载均衡那一节,基本上是参考的权威指南负载均衡的内容。开发指南读了一半,就是看这本书理解了的事件循环。哈哈创京东一本骗钱的书。欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯IVWEB团队发表于云+社区专栏 作者:link 2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路上看过的,以及道听途说的一些书,基本上按照由浅入深来介绍。...

    233jl 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<