关键词:《javascript语言精粹》
【 编译原理 && 作用域 】
【 立即执行 && 块作用域 】
【 函数优先提升 && 作用域闭包 】
【 let && const 】
【 模块 】
现代的javascript引擎 ES6!
javascript的优秀想法包括函数、弱类型、动态对象以及富有表现力的对象字面量表示法。
javascript的函数(主要)基于词法作用域的顶级对象!
【语法章节】
1. javascript两种注释形式【 / * * / 】&&【 // 】
注:【 /* */ 】和正则搭配时候容易出粗!如下!
所以常用【 // 】注释
/*
var rm_a=/a*/.match(s);
*/
2. NaN是一个数值!
它表示一个不能产生正常结果的运算结果。
NaN不等于任何值,包括它自己。
可以用 isNaN(num)来检测!
3. 字符串
'c'+'a'+'t' === 'cat' ; //true
'cat'.toUpperCase()==='CAT'; //true
4. 语句
一个编译单元包含一组可执行的语句。
||__每个<script>标签提供一个被编译且立即执行的编译单元。
代码块是包在一对花括号中的一组语句。
javascript中的代码块不会创建新的作用域,因此变量应该被动一在函数头部,而不是代码块中。(有疑义)
throw语句中的表达式通常是一个对象字面量,它包含一个nanme属性和一个message属性。
return语句会导致从函数中提前返回,他可以制定要返回的值或对象。如果没有返回表达式,那么返回的值是undefind。
5. 表达式
最简单的表达式是字面量值(比如字符串或者数字)、变量、内置的值(true、false、null、undefind、NaN和Infinity)、以new开头的表达式、以delete开头的属性提取表达式、包在圆括号中的表达式、以一个前置运算符为前导的表达式。
或者表达式后面跟着:
- 一个中置运算符与另一个表达式;
- 三元运算符?后面根着另一个表达式,然后接一个:,再然后接第三个表达式;
- 一个函数调用
- 一个属性提取表达式
6. 对象字面量
属性名可以使标识符或者字符串。
||__这些名字被当成字面量名而不是变量名来对待。
属性的值就是表达式!
7. 函数
函数字面量定义了函数值。
||__函数可以有一个可选的名字,用于递归地调用自己。
||__函数可以指定一个参数列表,这些参数像变量一样。
函数的主体包括变量定义以及语句。