FCC 基础JavaScript 练习4
1.另一种数据类型是布尔(Boolean)。布尔
值要么是true
要么是false,
它非常像电路开关, true
是“开”,false
是“关”。这两种状态是互斥的
2.伪代码
if(条件为真){
语句被执行
}
在函数内部创建一个 if
语句,如果该参数 wasThatTrue
值为 true
,返回 "That was true"
,否则,并返回 "That was false",
// 定义 myFunction
function myFunction(wasThatTrue) {
// 请把你的代码写在这条注释以下
if(wasThatTrue){
return "That was true";
}
// 请把你的代码写在这条注释以上
return "That was false";
}
// 你可以修改这一行来测试你的代码
myFunction(true);
3.最基本的运算符是相等运算符:==
。
相等运算符比较两个值,如果它们是同等,返回 true
,如果它们不等,返回 false
。
值得注意的是相等运算符不同于赋值运算符(=
)
任务
把 相等运算符
添加到指定的行,这样当 val
的值为12
的时候,函数会返回"Equal"
// 定义 myTest
function myTest(val) {
if (val==12) { // 请修改这一行
return "Equal";
}
return "Not Equal";
}
// 你可以修改这一行来测试你的代码
myTest(12);
4.严格相等运算符(===
)是相对于相等操作符(==
)的一种操作符。
与相等操作符不同的是,它会同时比较元素的值和 数据类型
// 定义 myTest
function myTest(val) {
if (val===7) { // 请修改这一行
return "Equal";
}
return "Not Equal";
}
// 你可以修改这一行来测试你的代码
myTest(10);//myTest(10)
应该返回 "Not Equal"
myTest(7)
应该返回 "Equal"
myTest("7")
应该返回 "Not Equal".!=
)与相等运算符是相反的function myTest(val) {
if (val!=99) { // 请修改这一行
return "Not Equal";
}
return "Equal";
}
// 你可以修改这一行来测试你的代码
myTest("99"); //myTest(99)
应该返回 "Equal"
myTest("99")
应该返回 "Equal"myTest(12)
应该返回 "Not Equal"myTest("12")
应该返回 "Not Equal"yTest("bob")
应该返回 "Not Equal"!==
)与全等运算符是相反的>
)来比较两个数字。true
。否则,它返回 false,
function myTest(val) {
if (val>100) { // 请修改这一行
return "Over 100";
}
if (val>10) { // 请修改这一行
return "Over 10";
}
return "10 or Under";
}
myTest(1); // 你可以修改这一行来测试你的代码
//myTest(0)
应该返回 "10 or Under"
myTest(10)
应该返回 "10 or Under"myTest(11)
应该返回 "Over 10"myTest(99)
应该返回 "Over 10"myTest(100)
应该返回 "Over 10"myTest(101)
应该返回 "Over 100"myTest(150)
应该返回 "Over 100"大于等于
运算符(>=
)来比较两个数字的大小function myTest(val) {
// 请只修改这条注释以下的代码
if (val<=50&&val>=25) {
return "Yes";
}
// 请只修改这条注释以上的代码
return "No";
}
// 你可以修改这一行来测试你的代码
myTest(10);
12.只要求多个条件满足一个,用II逻辑运算符,(按键在shift+\)
function myTest(val) {
// 请只修改这条注释以下的代码
if (val<10||val>20) {
return "Outside";
}
// 请只修改这条注释以上的代码
return "Inside";
}
// 你可以修改这一行来测试你的代码
myTest(15);
13写一个else
语句,当条件为假时执行相应的代码
function myTest(val) {
var result = "";
// 请只修改这条注释以下的代码
if (val > 5) {
result = "Bigger than 5";
}
else{
result = "5 or Smaller";
}
// 请只修改这条注释以上的代码
return result;
}
// 你可以修改这一行来测试你的代码
myTest(4);
14.如果你有多个条件语句,你可以通过else if
语句把 if
语句链起来(if else if else)
function myTest(val) {
if (val > 10) {
return "Greater than 10";
}
else if (val < 5) {
return "Smaller than 5";
}
else{
return "Between 5 and 10";}
}
// 你可以修改这一行来测试你的代码
myTest(7);
15.if
、else if
语句中代码的执行顺序是很重要的。
在条件判断语句中,代码的执行顺序是从上到下,所以你需要考虑清楚先执行哪一句,后执行哪一句
16.if/else
语句串联在一起可以实现复杂的逻辑
function myTest(num) {
// 请只修改这条注释以下的代码
if(num<5){
return "Tiny";
}
else if(num<10){
return "Small";
}
else if(num<15){
return "Medium";
}
else if(num<20){
return "Large";
}
else if(num>=20){
return "Huge";
}
else{
return "修改这里";}
// 请只修改这条注释以上的代码
}
// 你可以修改这一行来测试你的代码
myTest(7);
17.
在高尔夫golf
游戏中,每个洞都有自己的标准杆数par
,代表着距离。根据你把球打进洞所挥杆的次数strokes
,可以计算出你的高尔夫水平。
函数将会传送2个参数,分别是标准杆数par
和 挥杆次数strokes
,根据下面的表格返回正确的水平段位。
Strokes | Return |
---|---|
1 | "Hole-in-one!" |
<= par - 2 | "Eagle" |
par - 1 | "Birdie" |
par | "Par" |
par + 1 | "Bogey" |
par + 2 | "Double Bogey" |
>= par + 3 | "Go Home!" |
par
和 strokes
必须是数字而且是正数
function golfScore(par, strokes) {
// 请只修改这条注释以下的代码
if(strokes==1) {
return"Hole-in-one!";
}
}
else if(strokes==par - 1){return"Birdie";
}
else if(strokes==par){return"Par";}
else if(strokes==par + 1){return"Bogey";
}
else if(strokes==par + 2){return"Double Bogey";
}
else if(strokes>= par + 3){return"Go Home!";
}
else{
return "修改这里";}
// 请只修改这条注释以上的代码
}
// 你可以修改这一行来测试你的代码
golfScore(5, 4);
18.如果你有非常多的选项需要选择,可以使用switch语句。
根据不同的参数值会匹配上不同的case分支,
语句会从第一个匹配的case分支开始执行,直到碰到break就结束
任务
写一个测试 val
的switch语句,并且根据下面的条件来设置不同的answer
:1
- "alpha"2
- "beta"3
- "gamma"4
- "delta"
function myTest(val) {
var answer = "";
// 请把你的代码写在这条注释以下
switch(val){
case 1: answer ="alpha";
break;
case 2: answer ="beta";
break;
case 3: answer = "gamma";
break;
case 4: answer ="delta";
break;
}
// 请把你的代码写在这条注释以上
return answer;
}
// 你可以修改这一行来测试你的代码
myTest(1);
19.在switch
语句中你可能无法用case来指定所有情况,
这时你可以添加default语句,当再也找不到case匹配的时候default语句会执行,
非常类似于if/else组合中的else语句
任务
写一个根据下面的条件来设置answer
的switch语句:"a"
- "apple""b"
- "bird""c"
- "cat"default
- "stuff"
function myTest(val) {
var answer = "";
// 请把你的代码写在这条注释以下
switch(val){
case 'a':answer="apple";
break;
case 'b':answer="bird";
break;
case 'c':answer="cat";
break;
default:answer="stuff";
}
// 请把你的代码写在这条注释以上
return answer;
}
// 你可以修改这一行来测试你的代码
myTest(1);
20.如果switch
语句中的case
分支的break
语句漏掉了,
后面的case
语句会一直执行直到遇到break,
如果你有多个输入值和输出值一样,可以试试下面的switch
语句
任务
写一个根据下面的范围来设置answer
的switch语句:1-3
- "Low"4-6
- "Mid"7-9
- "High"
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";
break;
}
// 请把你的代码写在这条注释以上
return answer;
}
// 你可以修改这一行来测试你的代码
myTest(1);
21.任务
把串联的 if
/if else
语句改成 switch
语句
function myTest(val) {
var answer = "";
// 请只修改这条注释以下的代码
if (val === "bob") {
answer = "Marley";
} else if (val === 42) {
answer = "The Answer";
} else if (val === 1) {
answer = "There is no #1";
} else if (val === 99) {
answer = "Missed me by this much!";
} else if (val === 7) {
answer = "Ate Nine";
}
// 请只修改这条注释以上的代码
return answer;
}
// 你可以修改这一行来测试你的代码
myTest(7);
/////////////////////////////////////////
function myTest(val) {
var answer = "";
// 请只修改这条注释以下的代码
switch(val) {
case "bob":answer = "Marley";
break;
case 42: answer = "The Answer";
break;
case 1:answer = "There is no #1";
break;
case 99:answer = "Missed me by this much!";
break;
case 7:answer = "Ate Nine";
break;
}
// 请只修改这条注释以上的代码
return answer;
}
// 你可以修改这一行来测试你的代码
myTest(7);
22.所有的比较操作符返回的都是一个boolean值,要么是 true
要么是false,
如果不特意设置输出值,可以简略步骤
///////////////////////////////////////////////////////
任务
移除isLess
函数的if/else
语句但不影响函数的功能
function isLess(a, b) {
// 请修改这部分代码
if (a < b) {
return true;
} else {
return false;
}
}
// 你可以修改这一行来测试你的代码
isLess(10, 15);
///////////////////////////////////////////
function isLess(a, b) {
// 请修改这部分代码
return a < b;
}
// 你可以修改这一行来测试你的代码
isLess(10, 15);
24.当代码执行到return语句时,函数返回一个结果就结束运行了,return后面的语句根本不会执行
任务
修改函数abTest
当a
或b
小于0时,函数立即返回一个undefined
并退出。
提示
记住undefined
,是一个关键字,而不是一个字符串
/ 定义 abTest
function abTest(a, b) {
// 请把你的代码写在这条注释以下
if(a<0||b<0){
return undefined;
}
// 请把你的代码写在这条注释以上
return Math.round(Math.pow(Math.sqrt(a) + Math.sqrt(b), 2));
}
// 你可以修改这一行来测试你的代码
abTest(2,2);
25.