JavaScript学习 第二周
if else 条件判断
if
if(条件式){
语句1;
}else{
语句2;
}
条件式拓展:
-
===:严格等于,数据类型和数值完全相等!!!
举例 :3 == '3', true;
:3 === '3',false; -
!==:不严格等于。
switch 选择结构
简单的例子
举个例子
1:
<script>
var num;
var flag;
num = prompt("input your number.",1);
num = Number(num); //必须加这个,否则会报错。
switch(num){
case 1:
case 2:
case 3:
flag = 100; //当num等于1,2,3时
break;
case 4:
flag = 200; //当num等于4时
break;
case 5:
flag = 300;
break;
default:flag = 0;
}
alert(flag);
alert(num);
</script>
为什么不加那个句子会报错呢?
关于数据类型。
一般来说,在进行比较的时候,除非使用“===”这样的严格等于,JavaScript是会自动转换数据类型进行比较的。
然而方法prompt是“输入一个字符串”。
但case里面必须是数值类型。
所以需要使用函数Number,将变量num中的字符串转换为数值,再次保存到变量month中。
函数
如Number一类,叫做函数。与方法不同,
与方法不同,函数的使用并不依赖对象。
for循环,while循环。
应用于制表
在网页制作时,需要用到循环来指表:
<body>
<table>
<tr>
<th>和历</th><th>西历</th>
</tr>
<script>
var i;
for (i = 1; i <= 10; i++){
document.write("<tr><td>平成", i, "年</td>");
document.write ("<td>", i + 1988, "年</td></tr>");
}
</script>
</table>
</body>
同样的,可以用while循环来执行这一制表过程。
<body>
<table>
<tr>
<th>和历</th><th>西历</th>
</tr>
<script>
var MAX = 8;
var i = 1;
while (i <= MAX){
document.write("<tr><td>平成", i, "年</td>");
document.write ("<td>", i + 1988, "年</td></tr>");
i++;
}
</script>
<table>
</body>
关于i++和++i
引用于java学习06:基本运算符
自增自减
-
b = a++:先执行这一行语句(赋值,把a此时的值赋给b),再自增
-
b = ++a:先自增,再执行这一行语句。
break终止循环。
函数与自定函数
简单介绍
- 自定函数要写在head中
伪代码如下:
function 函数名(引数1,引数2……){
代码块;
retun 返回值;
}
举个例子,进行一个简单的人民币转日元:
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>20201314吕荣祥</title>
<style>
body{
background-color: aliceblue;
font-size:larger;
color: brown;
text-align: center;
}
</style>
<script>
function rmbToYen(rmb,rate){
var yen;
yen = rmb*rate;
return yen;
}
</script>
</head>
<body>
<script>
var rmb;
rmb = prompt("input rmb",300);
var yen1 = rmbToYen(rmb,15.306);
document.write(rmb,"rmb = ",yen1,"円");
</script>
</body>
</html>
没有难点
函数的有效范围(作用域)
- 函数内定义的变量属于局部变量,只在函数内声效。
- 全局变量不受局部变量的影响。
<head>
<script>
function testFunc(){
num = 5;
}
</script>
</head>
<body>
<script>
var num = 3;
testFunc();
document.write(num);
</script>
</body>
这段代码中,函数仅仅起到一个改变数值的作用。他只是将全局变量num从3改成5,所以输出5.
<head>
<script>
function testFunc(){
var num;
num = 5;
}
</script>
</head>
<body>
<script>
var num = 3;
testFunc();
document.write(num);
</script>
</body>
而这段代码中,在函数里尝试定义一个局部变量num,并把它赋值为5。
但是它是一个局部变量,在最后的输出时他并不会被处理到。
所以最后输出还是3。
对象的生成
有使用时不需要生成的,也有必要生成的。
window对象,document对象…等等到上次为止学习的对象,是从一开始就可以使用的对象。
生成管理日期和时间的Date对象,并保存在变量now中。
now = new Date();
介绍两个关键字:
-
new:生成对象时使用的特殊运算符
-
Date:将某个时间点的日期时间作为数据管理的对象
生成可用的对象成为实例。
<script>
var aDay;
aDay = new Date(2022,3,9,14,50,35);//当前的时间
document.write("<h1>",aDay.toString(),"</h1>");
</script>
toString:是将对象的内容转换成字符串返回的方法。
在Date()中,其中的参数:
- 如果省略的话,就会生成具有当前日期的实例。
- 指定后,生成具有特定日期的实例。
- 时间:24小时制。
- 月:指定1月为0的数值。例如,指定4月的时候是“3”。
- 如果把时间省略:作为0点0分0秒处理。
Date 方法的使用。
- new Date();后 会生成一系列的实例,例如:
getFullYear:返回年
getMonth:返回月,但是0是1月,1是2月。。。
getDate:返回日
getDay:返回星期几。
getHour:返回0~23小时。
getMinutes:返回分钟
getSeconds:返回秒
getTime:从1970年1月1日0时0分0秒开始以毫秒返回经过的时间。
使用时如下:
<script>
var now, date;
now = new Date();
date = now.getFullYear();
document.write("<h1>",date,"</h1>");
</script>
Math 的使用
var num = Math.max(5,2,9,10);
这里num会被赋为10;
abs 绝对值
exp e的p次方 Max.exp(p)
pow pow(2,3) 就是2的三次方
ceil 小数点向上取整
floor 小数点向下取整
round 小数点第一位四舍五入
log 取对数
max 最大值
min 最小值
random 0~1随机数
sin
cos
tan
实例方法和静态方法
实例方法要先now,比如Date。这里Date是对象,.后面的是方法。
静态方法比如Math,Math是对象。Math不用new就可以用后面的方法。
String 字符串操作
charAt 取出指定位置的文字
charCodeAt 把指定位置的字符的字符码放回(将Unicode转换成10准数后返回)
IndexOf 查找字符串的位置
split 把字符串转换成数组
substring 取出指定范围内的字符串的中间部分
toLowerCase 把半角英文字母转换成小写
toUppeCase 把半角英文字母转换成大写
使用例:
<script>
var str1 = new String("20201314 吕荣祥");
document.write("<h1>",str1,"长:",str1.length,"</h1>");
for(var i = 0; i <= (str1.length);i++){
document.write("<h2>",str1.charAt(i),"</h2>");
}
</script>