全等运算符(===)
会转换值的数据类型的运算符有:相等运算符、大于运算符、大于等于运算符、小于运算符、小于等于运算符
例:7 > '3' // true
'1' > 9// false ?是怎么算的
'7' >=9// false
使用switch语句进行多选项选择
break关键字告诉javascript停止执行语句。如果没有break关键字,下一个语句会继续执行。
如果switch语句中的case分支的break 语句漏掉了,后面的 case语句会一直执行直到遇到break。
有多个输入值和输出值一样,可以试试下面的switch语句:
switch(val) {
case 1:
case 2:
case 3:
result = "1, 2, or 3";
break;
case 4:
result = "4 alone";
}
function myTest(val) {
var answer = "";
switch(val){
case 1:
case 2:
case 3:
answer="Low";
break;
case 4:
case 5:
case 6:
answer="Mid";
break;
case 7:
case 8:
case 9:
answer="High";
}
return answer;
}
myTest("9"); //没结果 可能原因是全等的缘故吧!!
=== 总是返回 true 或 false,所以我们可以直接返回比较的结果:
function isEqual(a,b) {
if (a === b) {
return true;
} else {
return false;
}
}
可改写成:
function isEqual(a,b) {
return a === b;
在函数中使用return跳出函数
当代码执行到return语句时,函数返回一个结果就结束运行了,return后面的语句根本不会执行。
对象操作
对象和数组很相似,数组是通过索引来访问和修改数据,对象是通过属性来访问和修改数据的。
对象适合用来存储结构化数据,就和真实世界的对象一模一样,比如一只猫。
var cat = {
"name": "Whiskers",
"legs": 4,
"tails": 1,
"enemies": ["Water", "Dogs"]
};
//说明属性都是字符串
使用点操作符.读取对象属性
有两种方式访问对象属性,一个是点操作符(.),一个是中括号操作符([])。
当你知道属性的名称的时候,使用点操作符。
var myObj = {
prop1: "val1",
prop2: "val2"
};
var prop1val = myObj.prop1; // val1
var prop2val = myObj.prop2; // val2
第二种访问对象的方式就是中括号操作符([]),如果你想访问的属性的名称有一个空格,这时你只能使用中括号操作符([])。
提示:属性名称中如果有空格,必须把属性名称用单引号或双引号包裹起来。
var myObj = {
"Space Name": "Kirk",
"More Space": "Spock"
};
myObj["Space Name"]; // Kirk
myObj['More Space']; // Spock
使用变量访问对象属性即用变量来存储属性名,再用对象点操作符或者中括号操作符
应用:需要遍历对象的属性列表或查表时,这种方式极为有用。
var testObj = {
12: "Namath",
16: "Montana",
19: "Unitas",
'my spoke':12
};
var playerNumber=16;
var player1 = testObj.playerNumber;
console.log(player1); //结果为空,访问不到
var player2=testObj[16]; //Montana
var player2=testObj[playerNumber]; //Montana
结论:使用点操作时属性不能用变量存储,只能是对象的属性名
使用点操作时属性名不能有空格,不然会报错 错误写法:testObj.my spoke
使用中括号操作符能避免上述情况
使用中括号操作符要看前面的是对象还是数组则决定中括号内的内容指的是下标还是属性名
var myDog = {
"name": "Happy Coder",
"legs": 4,
"tails": 1,
"friends": ["Free Code Camp Campers"]
};
myDog.bark="woof";
给对象添加属性
ourDog添加 "bark"属性:
ourDog.bark = "bow-wow";
ourDog["bark"] = "bow-wow";
删除对象属性
delete ourDog.bark;
检查一个对象属性是否存在是非常有用的,我们可以用.hasOwnProperty(propname)方法来检查对象是否有该属性。如果有返回true,反之返回 false。
注意:如果你需要通过变量来访问对象的属性值,请用中括号操作符,点操作符不支持变量。
var myObj = {
gift: "pony",
pet: "kitten",
bed: "sleigh"
};
function checkObj(checkProp) {
if(myObj.hasOwnProperty(checkProp)){
return myObj[checkProp];
}else{
return "Not Found";
}
}
checkObj("gift");
JSON操作
它使用JavaScript对象的格式来存储数据。JSON是灵活的,因为它允许数据结构是字符串,数字,布尔值,字符串,和 对象 的任意组合。
JSON对象的示例:
var ourMusic = [
{
"artist": "Daft Punk",
"title": "Homework",
"release_year": 1997,
"formats": [
"CD",
"Cassette",
"LP" ],
"gold": true
}
];
//这是一个对象数组。就好比音乐添加了某人的新专辑的详细信息
提示:数组中有多个 JSON 对象的时候,对象与对象之间要用逗号隔开。
我认为:简单来说就是一个数组也可以是对象,里面的元素都是对象,然后对象里属性名都是字符串,值可以是字符串,数字,布尔值,字符串或对象
获取JSON属性值
通过串联起来的点操作符或中括号操作符来访问JSON对象的嵌套属性。
嵌套的JSON对象实例:
var ourStorage = {
"desk": {
"drawer": "stapler"
},
"cabinet": {
"top drawer": {
"folder1": "a file",
"folder2": "secrets"
},
"bottom drawer": "soda"
}
}
ourStorage.cabinet["top drawer"].folder2;// "secrets"
ourStorage.desk.drawer; // "stapler"