第1章 JavaScript基本语法--读书笔记

目录

1.1 JavaScript语句

1.2 JavaScript变量

1.2.1 JavaScript变量的基本概念

1.2.2 JavaScript变量的提升

1.3 标识符

1.4 注释

1.5 语句块

1.6 条件语句

1.6.1 if语句

1.6.2 if…else语句

1.6.3 switch语句

1.7 三元运算符(if…else简单形式)

1.8 循环语句

1.8.1 while循环

1.8.2 for循环

1.8.2 do…while循环

1.9 break语句和continue语句

1.10 标签(label)


1.1 JavaScript语句

1 语句(statement)和表达式

语句概念:是为了完成某种任务而进行的操作。语句以分号结尾,一个分号就表示一个语句结束。多个语句可以写在一行内。

表达式概念:指一个为了得到返回值的计算式。

1.2 JavaScript变量

1.2.1 JavaScript变量的基本概念

1 概念

变量是对“值”的具名引用。变量就是为“值”起名,然后引用这个名字,就等同于引用这个值。

2 JavaScript的变量是松散类型的,可以保存任何类型的数据。

3 变量的定义(声明):

1)一般使用var关键字进行定义。使用var定义的变量是定义该变量的作用域中的局部变量

//"use strict";
var a;  //未经过初始化的变量会保存一个特殊的值undefined
var b = 10;   //定义变量b并且初始化,值为10
var c = 10,
    d = "abd",
    f = null;   //可以使用一条语句定义多个变量,中间用逗号隔开,缩进可有可无

注意:如果使用var重新声明一个已经存在的变量,是无效的,但如果第二次声明的时候还赋值,则会覆盖掉前面的值。

2)省略var关键字定义(这里说赋值比较合适),则为全局变量。(不推荐使用)

如果该变量定义在全局作用域中,则定义之后可以直接调用。

z = 10;
console.log(z);    //返回10

如果变量定义在函数里面,则必须调用一次该函数,这样该变量才有定义,就可以在函数外面的任何地方访问这个变量。

function myF(){
    g = 10;    //省略var定义,严格模式报错,其他则为全局变量
}
console.log(g);   //报错,因为没有调用函数myF(),变量g还没有定义
function myF(){
    g = 10;    //省略var定义,严格模式报错,其他则为全局变量
}
myF();
console.log(g);   //10

3)如果变量没有使用var定义,也没有赋值,直接调用变量,则会报错。

console.log(h);  //报错

4 注意:给未经声明的变量赋值在严格模式下会抛出错误。严格模式是在代码开头加上("use strict");

1.2.2 JavaScript变量的提升

1 变量提升

JavaScript引擎工作方式先解析代码,获取所有被声明的变量,然后再一行一行地运行。造成的后果是所有声明的变量的语句,都会被提升到代码的头部,这叫做变量的提升

"use strict";
/*
 虽然变量x的声明语句在这个语句之后,但是因为变量提升原因,执行的时候,变量提升的语句已经提升到代码的首部。
 */
console.log(x);//输出undefined。注意变量提升,只提升声明,赋值是不会提升
var x = "use";

1.3 标识符

1 概念

变量、属性或者函数的名字

2 标识符命名规则

由任意的字母(包含扩展的Unicode或ASCII字母字符)、数字、下划线(_)或美元符号组成,其中第一个不能是数字。

3 注意

保留字和关键字不能作为标识符

1.4 注释

1 单行注释

2 多行注释

"use strict";
/*
 这里是多行注释
多
*/
console.log(x);      //这里表示单行注释
var x = "use";

1.5 语句块

1 概念

JavaScript 使用大括号,将多个相关的语句组合在一起,称为语句块。

2 注意

JavaScript没有块级作用域

"use strict";
var a = [1, 2, 3];
for (var i = 0; i < 3; i++){
    console.log(a[i]);
}
console.log(i);    //输出3。JS没有块级作用域,所以在语句块外面也能调用语句块中声明的变量

1.6 条件语句

1.6.1 if语句

"use strict";
if (条件表达式) {
    //语句块。表达式为真时执行
}

1.6.2 if…else语句

"use strict";
if (条件表达式) {
    //语句块。表达式为真时执行
} else {
    //条件表达式为假时执行
}

1 注意

对同一个变量进行多次判断时,多个if...else语句可以连写在一起。else代码块总是与离自己最近的那个if语句配对。

1.6.3 switch语句

"use strict";
switch (表达式){
    case 值或表达式1:
        语句1;    //表达式为“值或表达式1”时执行
        break; //每个case语句之后,最好加一个break语句,表示跳出switch语句块,否则会一直执行到default语句
    case 值或表达式2:
        语句2;
        break;
    ...;
    default:  //如果表达式的值和case之后的值都不相等,则会执行该语句块
        语句;
}

1.7 三元运算符(if…else简单形式)

(条件表达式) ? 表达式1 : 表达式2 ;  //条件表达式为真时,返回表达式1的值,否则返回表达式2的值

1.8 循环语句

1.8.1 while循环

while (表达式) {
    //表达式为真时执行
}

1.8.2 for循环

for (初始化表达式; 条件表达式; 递增表达式){
    //初始化表达式(initialize):确定循环变量的初始值,只在循环开始时执行一次。
    //条件表达式(test):每轮循环开始时,都要执行这个条件表达式,只有值为真,才继续进行循环。
    //循环后表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量。
}

1.8.2 do…while循环

"use strict";
do {
    //必须执行一次,然后判断条件表达式,为真时循环
}while(条件表达式);

1.9 break语句和continue语句

1 break语句

作用:跳出代码块或循环

2 continue语句

作用:立即终止本轮循环,返回循环结构的头部,开始下一轮循环。

3 注意

如果存在多重循环,不带参数的break语句和continue语句都只针对最内层循环。

1.10 标签(label)

1 概念

JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置。标签可以是任意的标识符。

2 标签通常与break语句和continue语句配合使用,跳出特定的循环。

标签也可以用于跳出代码块。

"use strict";
top:
for (var i= 0; i <3; i++){
    for (var j = 0; j < 3; j++){
        if (i === 1 && j ===1){
            break top;
        }
        console.log(i + "," + j);
    }
}
/*
上面代码为一个双重循环区块,break命令后面加上了top标签(注意,top不用加引号),满足条件时,直接跳出双层循环。如果break语句后面不使用标签,则只能跳出内层循环,进入下一次的外层循环。

输出为
0,0
0,1
0,2
1,0
*/

如有错,请指出,如有侵权,请联系我,谢谢!

参考资料

1 JavaScript 教程https://wangdoc.com/javascript/basic/grammar.html

2 《JavaScript高级程序设计 第3版》 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值