首页 > 代码库 > 我啃犀牛书的日子(一)
我啃犀牛书的日子(一)
一、词法结构
Javascript是用Unicode字符集编写的
1.区分大小写
关键字的大小写不能改变
同一个词各个字母大小写不同,那就是不同的变量:Hello hello hellO HeLLo是4个不同变量
2.空格、换行符、格式控制符
JS会忽略程序中标识之间的空格;忽略换行。
普通空格符\u0020
水平制表符\u0009
垂直制表符\u000B
换页符 \u000C
不中断空白\u00A0
字节序标记\uFEFF
将以下字符识别为行结束:
换行符 \u000A
回车符 \u000D
段分隔符\u2028
行分隔符\u2029
3.Unicode转义序列
使用任意6位ASCII来代表任意16位Unicode内码。格式:\u_ _ _ _ ,由\u为前缀,后接4个十六进制数。
可用于字符串直接量,正则表达式直接量和标识符(关键字除外)
在注释中将不会被解析
4、注释:2、3不能嵌套
1.// 单行注释
2./* 多行注释 */
3./*
* 文档注释:用于说明此文档的作用
*/
5、直接量(literal):可以在程序中直接使用的数据值
1.数字,小数 123,1.23
2.字符串 "hello" , ‘hello‘
3.布尔值 ture , flase
4.正则表达式直接量 / script /gi
5.null
6.对象 { }
7.数组 [ ]
6、标识符 和 保留字
标识符:用于命名 变量 和 函数 或者 标记循环中需要跳转的特定位置
标识符的首字符只能用 1.字母 2._ 下划线 3.$美元符号
保留字:
7、分号
意味着语句的结束;若不加,程序将在换行处自行添加,若无法解析则不添加,直到能够解析的换行处添加。
二、类型、值、变量
js不区分整型和浮点型,所有数字都是以浮点数表示。可以在程序中直接使用的数字是直接量,另外,像-2这种负值是一元求反运算,不是直接量。
js能表示的最大值为 ± 1.7976931348623157 × 10308
js能表示的最小值为 ± 5 x 10-324
1.1 整型直接量:
a.十进制: 0 3 9999
b.十六进制: 0xffc 0x556 (以0x为前缀,后面才是数值)
c.八进制: 0377 0234 (以0为前缀,后面是数值。ECMA标准不支持八进制,所以在严格模式下无法解析)
1.2 浮点型直接量:
a.生活中常用 3.14
b.省略0 .5 => 0.5
c.科学计数法 6.02e23 (e23 => 1023)
6.5E-15 (E => 10-15)
1.3 算数运算
a. + 加法
b. - 减法
c. * 乘法
d. / 除法
e. % 除法取余
g.内置对象Math的各种方法
h.数值结果超出js能表示的最大值(上溢),显示Infinity
i.数值结果小于js能表示的最小值(下溢),显示-Infinity
j.NaN 是 not a number 的意思。
k.NaN 和任何值都不相等,包括它本身
注:运算出现上溢、下溢、除以0浏览器不会报错;基于Infinity 和 -Infinity的运算结果还是无穷大值,且保留正负号;做数学逻辑上无法完成的运算都返回NaN。
14 .二进制浮点数和四舍五入错误
1.5 日起和时间
js内置Date()构造函数,用于创建表示日期和时间的对象。
2.1 文本
a.string是由16位值组成的不可变的有序序列,一般是Unicode字符集
b.string.length是“16位值”的个数
c.字符串是由单引号或双引号括起来的。eg: "hello"
d.字符串的索引值从0开始,空字符串长度为0
注:字符串中夹杂着需要显示的(而不是程序运行需要)引号时,要转义字符 \ 将其转义。
eg: "we‘re young" ==> "we\‘re young"
在HTML结构中有时也需要用到引号,应各自使用独立的引号风格。
eg: <button onclick = "alert(‘Thank you‘)"
2.2 转义字符 含义
\o NUL字符
\b 退格符
\t 水平制表符
\n 换行符
\v 垂直制表符
\f 换页符
\r 回车符
\" 双引号
\‘ 撇号或双引号
\\ 反斜线
\xXX 由两位十六进制数指定的Latin-1字符
\uXXXX Unicode字符集
我啃犀牛书的日子(一)