变量:
1.变量声明和不声明的区别(即var a = 1和 a = 1的区别):
var a = 1和a = 1都是有效的,但是还是建议加上 var(变量声明),这样有利于表达,而且不加上容易不知不觉中产生全局变量.
严格地说,var a = 1
与 a = 1
,这两条语句的效果不完全一样,主要体现在delete
命令无法删除前者。不过,绝大多数情况下,这种差异是可以忽略的。(javascript 标准参考教程).
2.变量重新声明:
当一个变量之前已经声明并赋值过时,再次声明变量是无效的,但是如果再次声明并且重新赋值,则先前变量的值会被覆盖(就是以最新声明的值为准).
3.变量提升的含义:
JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting ).
把上面这句话讲得通俗一点就是,所有变量的声明都会优先被获取,再进行输出.
请注意,变量提升只对var命令声明的变量有效,如果一个变量不是用var命令声明的,就不会发生变量提升。
标识符:
1.标识符的含义:
标识符(identifier)是用来识别具体对象的一个名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript语言的标识符对大小写敏感,所以a和A是两个不同的标识符。
2.标识符命名:
第一个字符,可以是任意Unicode字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线_
第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用数字0-9。
注意点:
第一个字符不可以采用数字;
标识符不能包含星号;
标识符不能包含减号或连词线;
中文是合法的标识符,可以用作变量名;
关键字和保留字不能做标识符.
3.注释:
单行注释: //
多行注释:/* */
CSS中注释: <!-- -->
(被注释的部分不会执行)
4.区块:
JavaScript使用大括号,将多个相关的语句组合在一起,称为“区块”(block)。
与大多数编程语言不一样,JavaScript的区块不构成单独的作用域(scope)。也就是说,区块中的变量与区块外的变量,属于同一个作用域。
区块往往用来构成其他更复杂的语法结构,比如for、if、while、function等。
(区块不构成单独的作用域,意思就是在区块里的声明的变量,在区块外也是有效的)
5.条件语句;
条件语句提供一种语法构造,只有满足某个条件,才会执行相应的语句。JavaScript提供if结构和switch结构,完成条件判断。
(1.if结构 2.if...else...结构 3.switch结构)
if结构:
if结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。
句式:if (expression) if(expression) statement;
statement;
这种写法要求条件表达式后面只能有一个语句。如果想执行多个语句,必须在if的条件判断之后,加上大括号,表示代码块。
句式: if(expression){
statements
}
建议采用这样的形式容易插入语句.
注意点:"="和"=="的区别 在表达式中 "="只是代表一个赋值并没有比较的含义 "=="是代表值相等 "==="是代表值和类型都相等.
if...else结构:
if代码块后面,还可以跟一个else代码块,表示不满足条件时,所要执行的代码。
句式: if(expression){
statements
}else{
statements
}
注意点:else代码块总是跟随离自己最近的那个if语句。
switch结构:
多个if...else连在一起使用的时候,可以转为使用更方便的switch结构。
句式: switch (变量名称/表达式) {
case "变量名称/表达式":
statements
break;(break也可用return代替 return表示停止返回)
case "变量名称/表达式":
statements
break;
default:
statements
}
上面代码根据变量" "的值,选择执行相应的case。如果所有case都不符合,则执行最后的default部分。需要注意的是,每个case代码块内部的break语句不能少,否则会接下去执行下一个case代码块,而不是跳出switch结构。
注意点:需要注意的是,switch语句后面的表达式与case语句后面的表示式,在比较运行结果时,采用的是严格相等运算符(===),而不是相等运算符(==),这意味着比较时不会发生类型转换。
6.三元运算符 (?:)
句式:(condition) ? expr1 : expr2 condition(条件的意思)
当条件表示true时候,输出expr1,当条件表示false时候,输出,expr2.
7.循环语句
循环语句用于重复执行某个操作,它有多种形式。
(1.while循环 2.for循环 3.do...while循环 4.break语句和continue语句 5.标签(label) )
7.1 while循环:
While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。
句式:while (expression) {
statement;
}
while语句的循环条件是一个表达式(express),必须放在圆括号中。代码块部分,如果只有一条语句(statement),可以省略大括号,否则就必须加上大括号。
7.2 for循环:
for语句是循环命令的另一种形式,可以指定循环的起点、终点和终止条件.
句式:for (initialize; test; increment)
statement
// 或者
for (initialize; test; increment) {
statement
}
for语句后面的括号里面,有三个表达式。
初始化表达式(initialize):确定循环的初始值,只在循环开始时执行一次。
测试表达式(test):检查循环条件,只要为真就进行后续操作。
递增表达式(increment):完成后续操作,然后返回上一步,再一次检查循环条件。
7.3 do...while...循环
do...while循环与while循环类似,唯一的区别就是先运行一次循环体,然后判断循环条件。
句式:do
statement
while (expression);
// 或者
do {
statement
} while (expression);
注意点:不管条件是否为真,do..while循环至少运行一次,这是这种结构最大的特点。另外,while语句后面的分号不能省略。
7.4 break语句和continue语句
break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行。
break语句用于跳出代码块或循环。(只能用在循环结构中)
continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。
注意点:如果存在多重循环,不带参数的break语句和continue语句都只针对最内层循环。
7.5 标签(label)
JavaScript语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置.
句式:label:
statement
标签可以是任意的标识符,但是不能是保留字,语句部分可以是任意语句。
标签通常与break语句和continue语句配合使用,跳出特定的循环。
参考书籍<<JavaScript 标准参考教程>>