目录
4.对象
1.代码块
- 我们的程序是由一条一条语句构成的,语句是按照自上向下的顺序一条一条执行的
- 在JS中可以使用{ }来为语句进行分组,
- 同一个{ }中的语句我们称为是一组语句,它们要么都执行,要么都不执行,
- 一个{ }中的语句我们也称为叫一个代码块在代码块的后边就不用再编写;了
- JS中的代码块,只具有分组的的作用,没有其他的用途
2.流程控制语句
- JS中的程序是从上到下一行一行执行的
- 通过流程控制语句可以控制程序执行流程,使程序可以根据 一定的条件来选择
执行语句的分类:
1.条件判断语句
2.条件分支语句
3.循环语句
2.1条件判断语句
使用条件判断语句可以在执行某个语句之前进行判断,如果条件成立才会执行语句,条件不成立则语句不执行。
if语句
语法一:
if(条件表达式) 语句
- if语句在执行时,会先对条件表达式进行求值判断,
- 如果条件表达式的值为true,则执行if后的语句,
- 如果条件表达式的值为false,则不会执行if后的语句。
- if语句只能控制紧随其后的那个,如果控制多个用{}
语法二:
if(条件表达式){语句} else{语句}
- 如果表达式的值为true,执行if后面的语句
- 如果表达式的值为false,执行else后面的语句
语法三:
if(条件表达式) {语句} else if(条件表达式){语句} else if(条件表达式){语句} else{语句}
- 当该语句执行时,会从上到下依次对条件表达式进行求值判断
- 如果值为true,则执行当前语句。如果值为false,则继续向下判断。
- 如果所有的条件都不满足,则执行最后一个else后的语句
- 该语句中,只会有一个代码块被执行,一旦代码块执行了,则直接结束语句
2.2条件分支语句
条件分支语句又叫switch语句
switch...case..语句
- 在执行时会依次将case后的表达式的值和switch后的条件表达式的值进行全等比较,
- 如果比较结果为true,则从当前case处开始执行代码。
- 当case后的所有的代码都会执行,我们可以在case的后边跟着一个break关键字,
- 这样可以确保只会执行当前case后的语句,而不会执行其他的case
- 如果比较结果为false,则继续向下比较
- 如果所有的比较结果都为false,则只执行default后的语句
2.3循环语句
1.while循环
while(条件表达式){
语句...}
while语句在执行时,
- 先对条件表达式进行求值判断,
- 如果值为true,则执行循环体,循环体执行完毕以后,继续对表达式进行判断
- 如果为true,则继续执行循环体,以此类推,如果值为false,则终止循环
do...while循环
语法:
do{语句...}
while(条件表达式)
执行流程:
- do...while语句在执行时,会先执行循环体,
- 循环体执行完毕以后,在对while后的条件表达式进行判断
- 如果结果为true,则继续执行循环体,执行完毕继续判断以此类
- 如果结果为false,则终止循环
2.for循环
语法:
for(①初始化表达式;②条件表达式;④更新表达式){
③语句. . .}
for循环的执行流程:
- ①执行初始化表达式,初始化变量
- ②执行条件表达式,判断是否执行循环。
- 如果为true,则执行循环③
- 如果为false,终止循环
- ④执行更新表达式,更新表达式执行完毕继续重复②
注意:for循环中三个表达式都可以省略不写,也可以写在外部,分号不能省略 。
3.break和continue
break关键字
① break可以退出switch和循环语句,不能在if语句中使用break和continue
②break会立即停止离它最近的循环语句 可以为循环语句创建一个label,来标识循环 label:循环语句 使用break时,在break后跟着一个label ,这样break将会结束指定循环,而不是最近的
continue关键字
可以跳过当次循环,默认离它最近的循环语句起作用
4.对象
1.定义:对象属于一种复合的类型数据,在对象中可以保存多个不同数据类型的属性
2.分类
①内建对象
- 由ES标准中定义的对象,在任何的ES的实现中都可以使用
- 比如:Math String Number Boolean Function Object
②宿主对象
- 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
- 比如:BOW DOW
③自定义对象
- 由开发人员自己创建的对象
3.创建对象
- 用new关键字调用的函数,是构造函数constructor
- 构造函数是专门用来创建对象的函数
- 使用typeof检查一个对象时,会返回object
①保存对象
在对象中保存的值为属性
向对象添加属性
语法:对象.属性名=属性值;
②读取对象
语法:对象.属性名
注意:如果对象中没有的属性,不会报错而是会返回undefined
③修改对象的属性值
语法:对象.属性名=新值;
④删除对象的属性
语法:delete 对象.属性名
属性名
如果要使用特殊的属性名,不能采用.的方式来操作需要使用另一种方式:
- 语法:对象["属性名"] =属性值读取时也需要采用这种方式
- 使用[ ]这种形式去操作属性,更加的灵活,
- 在[]中可以直接传递一一个变量,这样变量值是多少就会读取那个属性
属性值
属性值可以是任何数据,也可以是对象
in运算符
通过该运算符可以检查一个对象中是否含有指定的属性如果有则返回true,没有则返回false
语法:"属性名" in 对象
引用数据类型Object 基本数据类型
- JS中的变量都是保存到栈内存中的,基本数据类型的值直接在栈内存中存储,
- 值与值之间是独立存在,修改一个变量不会影响其他的变量
- 对象是保存到堆内存中的,每创建一个新的对象, 就会在堆内存中开辟出-一个新的空间,
- 而变量保存的是对象的内存地址(对象的引服,如果两个变量保存的是同一个对象引用,当一个通过一一个变量修改属性时,另一个也会受到影响
- 当比较两个基本数据类型的值时,就是比较值
- 而比较两个引用数据类型时,它是比较的对象的内存地址,如果两个对象是一摸一样的,但是地址不同,它也会返回false
对象字面量
使用对象字面量,可以在创建对象时,直接指定对象中的属性
- 语法: {属性名:属性值,属性名:属性值....}
- 对象字面量的属性名可以加引号也可以不加,建议不加
- 如果要使用一些特殊的名字,则必须加引号
- 属性名和属性值是一组名值对结构,
- 名和值之间使用:连接,多个名值对之间使用,隔开如里一个属性之后没有其他的属性了,就不要写,