第四章 核心关键词(表达式)-->短语 对应过来 语句就是js的整句或命令,以分号结束。
表达式是计算一个值,而语句是使得某件事发生,或者说某些值发生了改变---即带有“副作用”。
表达式语句:带有副作用的表达式,诸如赋值和函数调用,可以单独作为语句使用。
复合语句和空语句:用花括号括在一起的语句是一条复合语句;空语句,比如if(flag);这个条件语句之后有且仅包含一条语句,这个例子里便是空语句
空语句的实例(确实是有它的用处的):for(i=0;i<a.length;a[i++]=0);
PS:语句块结尾不需要分号;没有块级作用域
PS:温馨提示,在使用空语句的时候最好做一点注释……
声明语句:用于声明新变量(var)或定义新变函数(function)等。(通过创建变量和函数可以更好地组织代码和语义)
PS:关于变量声明,优先把需要赋值的语句写在前面;没赋值默认为undefined
重申:
1.在同一作用域下,变量声明都会被提到顶部执行
2.多次声明变量不会多变量,也不会影响变量
函数定义用function(两种语法结构)
first:
var f=function(){};
second:
function f(){};
函数声明:感觉可以把这个和定义里面的second混在一起考虑
function funcname([arg1 [, arg2 [..., argn]]]) {
statements
}
PS:函数的花括号是必须滴;函数声明的变量是不能删除,但是可以重写。
sepcial word:
1.ECMAScript标准规范并没有将函数声明归类为真正的语句——函数声明并不能出现在if语句,while循环或其他任何语句中……
2.声明函数和函数定义的不同有点类似变量的声明,举个例子:var a=1;
如果这个a是全局变量,那么javascript初始化好的时候,便已经将a声明了,但是此时a是undefined,而只有等到执行这条语句,a才变成1(具体参考第三章)。
对应函数的意思就是,你可能是在最后面写的函数,但是你依旧可以在他之前调用这个函数,比如:
<script> console.log(hello()); function hello(){ return "I can"; }</script>
没有任何错误,就是因为函数声明的结果。与变量定义的区别是函数声明不仅仅提前了函数名,还有函数体。
3.将函数声明放在其他语句内的做法不具备可移植性。(这句话目前还不是很懂……以后如果遇到了这种实例再进行研究)
4.delete删除不了var或者function声明的函数或者变量。(这个非常非常的重要,可以自己尝试一下)
用于改变语句的默认执行顺序:
条件语句:分支,决策点
if(else), else if, switch
循环语句:for,while
跳转语句:break,return,throw
PS:JavaScript程序无非是一系列可执行语句的集合。
(之前因为项目重,结果一拖就拖了这么久……实在不应该……目前调整为每周至少抽出时间完成一章)未完待续……