JavaScript语言精粹(一)--语法

简介: JavaScript语言精粹(一)--语法


说明

《JavaScript语言精粹》学习笔记。


1.1、空白

空白可能表现为格式化字符或注释形式。(空白通常没有意义)


1、用于分隔字符序列

// var that 之前空格不能移除
var that = this;


2、避免使用/* */注释代码

比如:

/*
    var rm_a = /a*/.match(s)
*/




1.2、标识符


标识符由一个字母开头,其后可选择性的加上一个或多个字母、数字或下划线。

标识符被用于语句、变量、参数、属性名、运算符和标记。


标识符不能使用下面这些保留字:

abstract
boolean break byte
case catch char class const continue
debugger default delete do double
else enum export extends
false final finally float for function
goto
if implements import in instanceof int interface
long
native new null
package private protected public
return
short static super switch synchronized
this throw throws transient true try typeof
while with

JavaScript不允许使用保留字来命名变量或参数。

JavaScript不允许在对象字面量中,或者在一个属性存取表达式的点号之后,使用保留字作为对象的属性名。



1.3、数字

   JavaScript只有一个单一的数字类型。它在内部表示为64位的浮点数,和 java 的 double 一样。

值 Infinity 表示所有大于1.79769313486231570e+308 的值



1.4、字符串

字符串字面量可以被包围在单引号或双引号中,它可能包含0个或多个字符。


1、JavaScript在被创建的时候,Unicode是一个16位字符集,所以JavaScript中的所有字符都是16位的。


2、转义字符允许把那些正常情况下不被允许的字符插入到字符集中。(比如\(反斜杠符号)是转义字符。)


\u约定允许指定用数字表示的字符码位。

"A" === "\u0041"



1.5、语句

一个编译单元包含一组可执行的语句。在web浏览器中,每个<script>标签都提供一个被编译且立即执行的编译单元。


1、语句往往按照从上到下的顺序被执行。


JavaScript可以通过下面的方式去改变执行序列:


  • 条件语句(if和switch)
  • 循环语句(while、for和do)
  • 强制跳转语句(break、return和throw)
  • 函数调用


2、代码块是包在一对花括号中的一组语句。




1.6、表达式


最简单的表达式是字面量值(比如字符串或数字)、变量、内置的值(true、false、null、undefined、NaN和Infinity)、以new前导的调用表达式、以delete前导的属性存取表达式、包在圆括号中的表达式、以一个前缀运算符作为前导的表达式,或者表达式后面跟着:


  • 一个插入运算符与另一个表达式;
  • 三元运算符 ? 后面跟着另一个表达式,然后接一个 :,再然后接第三个表达式;
  • 一个函数调用
  • 一个属性存取表达式


运算符优先级:


运算符 说明
. [] () 属性存取及函数调用
delete new typeof + - ! 一元运算符
* / % 乘法 除法 取模
+ - 加法/连接 减法
>= <= > < 不等式运算符
=== !== 等式运算符
&& 逻辑与
|| 逻辑或
? : 三元



1.7、字面量

对象字面量是一种方便指定新对象的表示法。属性名可以是标识符或字符串。


1.8、函数

函数字面量定义了函数值。它可以有一个可选的名字,用于递归地调用自己。它可以指定一个参数列表,这些参数将作为变量由调用时传递的实际参数初始化。

函数的主体包括变量定义和语句。




目录
相关文章
|
2月前
|
JavaScript 前端开发
关于 JavaScript 代码里双重感叹号的语法
关于 JavaScript 代码里双重感叹号的语法
51 1
|
3月前
|
JavaScript 前端开发
JavaScript基础语法(类型转换)
JavaScript基础语法(类型转换)
27 0
|
3月前
|
JavaScript 前端开发 Java
JavaScript基础语法(流程控制语句)
JavaScript基础语法(流程控制语句)
25 0
|
28天前
|
JavaScript 前端开发 Web App开发
JavaScript基础语法(codewhy版本)(一)
JavaScript基础语法(codewhy版本)
87 1
JavaScript基础语法(codewhy版本)(一)
N..
|
1月前
|
存储 JavaScript 前端开发
JavaScript语言的基本结构
JavaScript语言的基本结构
N..
15 1
|
1月前
|
JavaScript 前端开发 网络架构
JavaScript的数组教程(最详细,更新至es6新语法)
JavaScript的数组教程(最详细,更新至es6新语法)
|
1月前
|
JSON JavaScript 前端开发
javascript语言ES5版本详解(一)
javascript语言ES5版本详解(一)
|
1月前
|
移动开发 前端开发 JavaScript
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)
|
1月前
|
JavaScript 前端开发 Java
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(中)
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(中)
|
1月前
|
JavaScript 前端开发 Java
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(上)
Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(上)