2.条件分支语句
if(条件表达式){
语句
}else{
语句
}
————————————
if(条件表达式){
语句
}else if(条件表达式){
语句
}else{
语句
}
————————————
switch(条件表达式){
case表达式 :
语句
break;
case表达式 :
语句
break;
default :
语句
break;
}
执行流程:
在执行时会依次将case后表达式的值和switch后条件表达式的值进行全等比较,如果比较结果为true,则从当前case处开始执行代码,如果比较结果为false,则继续向下比较,break的作用是退出switch语句,如果所有比较结果都为false,则执行default语句
3.循环语句
while(条件表达式){
语句
//break;
}
————————————
do{
语句
}while(条件表达式)
————————————
for(初始化表达式;条件表达式;更新表达式){
语句
}
break关键字可以用来退出循环语句和switch语句,break和continue都默认对最近的循环产生影响,对if语句不起作用
可以为循环语句创建一个label用于标识当前循环:label:循环语句,使用break语句时,可以在break后跟着一个label,这样break会结束指定的循环,而不是最近的
label1:
for(var i=0;i<=5;i++){
console.log("外层循环"+i);
for(var j=0;j<=5;j++){
break label1;
console.log("内层循环"+j);
}
} //执行结果:外层循环0
continue关键字可以用来跳过当次循环
console.time(“计时器的名字”)可以用来开启一个计时器,它需要一个字符串作为参数,这个字符串将会作为计时器的标识,console.timeEnd(“计时器的名字”)用来终止计时器,此功能可以用来测试程序的性能
Math.sqrt(数字)可以对一个数开方
对象(类似一个容器):
1.内建对象
由ES标准定义的对象,在任何ES的实现中都可以使用,如:Math、String、Number、Boolean、Function、Object等
2.宿主对象
由JS的运行环境提供的对象,目前主要指由浏览器提供的对象,如:BOM、DOM,之前用到的console、document等也是宿主对象
3.自定义对象
由开发人员自己创建
//创建对象:
var obj=new Object(); //使用new关键字调用的函数是构造函数constructor,是专门用来创建对象的函数
//向对象添加属性:对象.属性名=属性值;
obj.name=”孙悟空”;
//读取对象中的属性:对象.属性名;
console.log(obj.name); //输出“孙悟空”,如果读取对象中没有的属性不会报错,会返回undefined
//修改对象的属性值:对象.属性名=新值;
obj.name="tom"; //输出“tom”
//删除对象的属性:delete 对象.属性名
delete obj.name;
console.log(obj.name); //运行结果:undefined
如果要使用特殊的属性名(例如数字):对象[“属性名”]=属性值;
var obj=new Object();
obj["123"]=456;
console.log(obj["123"]); //运行结果:456
使用这种形式操作属性会更加灵活,可以在[]内传递一个变量,读取和变量的值相同的属性
var obj=new Object();
obj["123"]=456;
var n="123";
console.log(obj[n]); //运行结果:456
JS对象的属性值可以是任意数据类型,甚至也可以是一个对象
in运算符可以检查一个对象中是否含有指定的属性,有返回true,没有返回false语法:“属性名” in 对象
//检查obj中是否含有test属性
console.log("test" in obj) //输出false
JS中的变量都是保存到栈内存中的
基本数据类型的值直接在栈内存中存储,值与值之间独立存在,修改一个变量不会影响其他的变量
对象(引用数据类型)是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟一块新的空间,而变量保存的是内存地址(对象的引用)
var obj=new Object();
obj.name="tom";
var obj2=obj; //obj2与obj指向了同一块内存,所以修改obj的属性值obj2的属性值也会受影响
obj.name="lisa";
console.log(obj.name); //结果为Lisa
console.log(obj2.name); //结果为Lisa
obj2=null; //切断obj2与地址的连接,但obj连接依然存在
console.log(obj.name); //结果为[object Object]
console.log(obj2.name); //结果为null
将两个引用数据类型进行比较时,比较的是内存的地址,地址不同就会返回false
使用对象字面量创建一个对象:
var obj={};
obj.name="tom";
console.log(obj.name); //输出“tom”
可以在创建对象时,直接指定对象中的属性:{属性名:属性值,属性名:属性值,... ...},对象字面量的属性名可以加引号也可以不加,建议不加,但如果要使用特殊的名字(例如12#@¥),则必须加引号。
var obj={
name:"tom",
gender:"male",
age:"18",
test:{name:"lisa"} //test是一个对象
};
console.log(obj2);
(作者观看的学习视频:B站尚硅谷)