三 目运算:如var a = 10;
var b= 12;
c = a>b ?a:b;
若成立执行a否则执行b
var isHide = true;
若用if判断语句如下
if(isHide) {
box.style.display = "block";
} else {
box.style.display = "none";
}
三目运算替代if
box.style.display = isHide?"block":"none";
判断条件?成立执行语句:不成立执行语句。
条件成立返回:成立执行的结果
条件不成立:执行的结果
简化版的if判断
continue 跳过本次循环:不能写入三目运算
列:
for(var i=0;i<5;i++){
if(i==3)
continue;跳过i=3这个循环不执行;其他依然执行。
}
break:终止整个循环;默认只会终止紧邻的这个循环如果要终止其他循环,需要给循环起名字。
例:
for(var i=0;i<5;i++){
if(i==3)
break;当循环执行到i=3时终止整个循环。
}
name:for(var i=0;i<5;i++){
for(var j=0;j<5;j++){
break name //终止两个循环
}
}
对象存贮数据,是存在对象的属性中:
对象是一种复杂类型的数据,在对象中我们可以存储任意类型的数据
第一种:属性操作 1 第一种属性操作时一组写死的值,不能使用变量。
读操作 obj.属性名
写操作 obj.属性名 = 属性值;
obj.key = val; 键值对;
如
var obj = {};
obj.name = "Leo"; 这种写法为第一种属性名都被写死若想调用必须要如
obj.age = 40; 下console.log(obj.name);。
obj.gender = "female";
console.log(obj.w);//注意第一种属性操作是写死的一个值,不能使用变量 obj.w 这么写就认为在找 obj的w属性。
第二种属性操作 第二种属性操作做,接收的是一个字符串,字符串就可以存在变量中,可以直接写obj[变量调用]
读操作 obj["属 性名]
obj[“属性名”]=属性值;
obj["key"] = val;
注意第二种
如
var obj = {};
obj['name'] = "Leo";
obj['age'] = 40;
obj['gender'] = "female";
obj['width'] = "180px";
obj['height'] = "180px";
obj['children'] = ["大明","小明","三明"];
var w = "width";
console.log(obj[w]);// 第二种属性操作,接受的是一个字符串,字符串就可以存在变量中,可以直接写obj[变量调用];
alert("name" in obj); // obj 有 name属性就返回 true,否则 返回false
判断对象中是否有这个属性
返回 true 或 false
for (var s in obj) { 找到obj的所有属性 s会依次变成arr的属性名 //同过in方法将循环变量s变成obj对
console.log(s,obj[s]); 应的属性名。若想使用只有用第二中命名。s的类型是字符串。
} s为属性名 obj[S]为对应的属性名的属性值。
for in 可以用来循环对象和数组 不能用来循环一组元素,
for循环只能用来循环 数组类数组(一组元素)不能用来循环一组对象。
###while语句###
起始值
while(判断条件){
执行语句;
自增;
}
##switch##
switch(要判断的内容){
case:判断内容; //条件成立后执行语句将case下所有代码都执行,只有遇见break才会结束
执行语句; 若没有遇见break就会遇见穿刺现象执行所有代码。
break;
default: //以上所有的判断都不成立
}
例
switch(a){
case 10://当a == 10;
console.logo(“;;;;”)语句结束之后添加break
break;//当a==10 的
case 15://当a==15;
console.logo("ppppp")
break;
default: //以上所有的判断都不成立
}