发表于: 2019-07-25 22:27:17

1 930


今天完成了什么:

看js基础并写了一些demo;

遇到了什么问题:

暂无;

收获了什么:

了解了运算符的定义和分类,选择结构的if和switch语句;

运算符也叫操作符。通过运算符可以对一个或多个值进行运算,并获取运算结果。

比如:typeof 就是运算符,可以来获得一个值的类型。它会将该值的类型以字符串的形式返回:number string boolean undefined object。

注:运算符都是会返回结果的,而typeof这个运算符返回的结果就是变量的类型。那返回的结果的类型是什么呢?是字符串。

运算符有很多分类,比如:

  • 算数运算符

  • 自增运算符

  • 逻辑运算符

  • 赋值运算符

  • 关系运算符

  • 三元运算符(条件运算符)

  • 算数运算符

常见的算数运算符有以下几种:

求余的举例

假设用户输入345,怎么分别得到3、4、5这三个数呢?

答案

得到3的方法:345 除以100,得到3.45然后取整,得到3。即:parseInt(345/100) 

 得到4的方法:345 除以100,余数是45,除以10,得到4.5,取整。即:parseInt(345 % 100 / 10) 

 得到5的方法:345 除以10,余数就是5。即:345 % 10



if语句

if语句有以下三种。

1、条件判断语句

条件成立才执行。如果条件不成立,那就什么都不做。

格式:

if (条件表达式) {
    // 条件为真时,做的事情

  }

2、条件分支语句

格式1:

if (条件表达式) {
    // 条件为真时,做的事情

  } else {
    // 条件为假时,做的事情

  }

格式:(多分支的if语句)

if (条件表达式1) {
    // 条件1为真时,做的事情

  } else if (条件表达式2) {
    // 条件1不满足,条件2满足时,做的事情

  } else if (条件表达式3) {
    // 条件1、2不满足,条件3满足时,做的事情

  } else {
    // 条件1、2、3都不满足时,做的事情
  }

以上所有的语句体中,只执行其中一个。


做些小题

根据BMI(身体质量指数)显示一个人的体型。

BMI指数,就是体重、身高的一个计算公式。公式是:

BMI =体重÷身高的平方

比如,老师的体重是81.6公斤,身高是1.71米。

那么老师的BMI就是  81.6 ÷ 1.712     等于 27.906022365856163

过轻:低于18.5

正常:18.5-24.99999999

过重:25-27.9999999

肥胖:28-32

非常肥胖, 高于32

用JavaScript开发一个程序,让用户先输入自己的体重,然后输入自己的身高(弹出两次prompt框)。

计算它的BMI,根据上表,弹出用户的身体情况。比如“过轻” 、 “正常” 、“过重” 、 “肥胖” 、“非常肥胖”。


<script type="text/javascript">
var height = parseFloat(prompt("请输入身高,单位是米"));
var weight = parseFloat(prompt("请输入身高,单位是公斤"));
// 第二部,计算BMI指数
var BMI = weight / Math.pow(height, 2);
//  第三步,if语句来判断。
if (BMI < 18.5) {
alert("偏瘦");
} else if (BMI < 25) {
alert("正常");
} else if (BMI < 28) {
alert("过重");
} else if (BMI <= 32) {
alert("肥胖");
} else {
alert("你没救了");
}

<script>


写法2

//第一步,输入身高和体重
var height = parseFloat(prompt("请输入身高,单位是米"));
  var weight = parseFloat(prompt("请输入体重,单位是公斤"));
  //第二步,计算BMI指数
  var BMI = weight / Math.pow(height, 2);
  //第三步,if语句来判断。注意跳楼现象
  if (BMI > 32) {
    alert("非常肥胖");
  } else if (BMI >= 28) {
    alert("肥胖");
  } else if (BMI >= 25) {
    alert("过重");
  } else if (BMI >= 18.5) {
    alert("正常")
  } else {
    alert("偏瘦");
  }


if语句的嵌套

一个加油站为了鼓励车主多加油,所以加的多有优惠。

92号汽油,每升6元;如果大于等于20升,那么每升5.9;

97号汽油,每升7元;如果大于等于30升,那么每升6.95

编写JS程序,用户输入自己的汽油编号,然后输入自己加多少升,弹出价格。



//第一步,输入
var bianhao = parseInt(prompt("您想加什么油?填写92或者97"));
  var sheng = parseFloat(prompt("您想加多少升?"));

  //第二步,判断
  if (bianhao == 92) {
    //编号是92的时候做的事情
    if (sheng >= 20) {
      var price = sheng * 5.9;
    } else {
      var price = sheng * 6;
    }
  } else if (bianhao == 97) {
    //编号是97的时候做的事情
    if (sheng >= 30) {
      var price = sheng * 6.95;
    } else {
      var price = sheng * 7;
    }
  } else {
    alert("对不起,没有这个编号的汽油!");
  }

  alert("价格是" + price);


switch语句(条件分支语句)

switch语句也叫条件分支语句。

格式:

switch (表达式) {
case 值1
语句体1;
break;
case 值2
语句体2;
break;
......
......
default
语句体 n + 1;
break;
}

备注1:当所有的比较结果都为false时,则只执行default里的语句。

备注2:break可以省略,但一般不建议。否则结果可能不是你想要的,会出现一个现象:case穿透

switch语句的执行流程

  • 首先,计算出表达式的值,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

  • 然后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

  • switch语句的结束条件

  • 情况a:遇到break就结束,而不是遇到default就结束。(因为break在此处的作用就是退出switch语句)

  • 情况b:执行到程序的末尾就结束。

for循环的语法

语法:

for(①初始化表达式; ②条件表达式; ④更新表达式){
		③语句...
	}

①执行初始化表达式,初始化变量(初始化表达式只会执行一次)

	②执行条件表达式,判断是否执行循环:
		如果为true,则执行循环③
		如果为false,终止循环

	④执行更新表达式,更新表达式执行完毕继续重复②

for循环举例:

for (var i = 1; i <= 100; i++) {		console.log(i);
	}


变量有以下数据类型:

  • 基本数据类型(值类型):String 字符串、Number 数值、Boolean 布尔值、Null 空值、Undefined 未定义。

  • 引用数据类型(引用类型):Object 对象。

本文,我们针对这两种类型,做个详细介绍。我们先来看个例子。

基本数据类型举例



var a = 23;
var b = a;

a++;

console.log(a); // 打印结果:24
console.log(b); // 打印结果:23

上面的代码中:a 和 b 都是基本数据类型,让 b 等于 a,然后改变 a 的值之后,发现 b 的值并没有被改变

但是在引用数据类型中,就不同了,我们来看一看。

引用数据类型举例


var obj1 = new Object();
obj1.name = 'smyh';

// 让 obj2 等于 obj1
var obj2 = obj1;

// 修改 obj1 的 name 属性
obj1.name = 'vae';

console.log(obj1.name); // 打印结果:vae
console.log(obj2.name); // 打印结果:vae

上面的代码中:obj1 和 obj2 都是引用数据类型,让 obj2 等于 obj1,然后修改 obj1.name 的值之后,发现 obj2.name 的值也发生了改变


JavaScript的组成

JavaScript基础分为三个部分:

  • ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。

  • DOM:文档对象模型,操作网页上的元素的API。比如让盒子移动、变色、轮播图等。

  • BOM:浏览器对象模型,操作浏览器部分功能的API。比如让浏览器自动滚动。

JS是以事件驱动为核心的一门语言。

事件的三要素

事件的三要素:事件源、事件、事件驱动程序

比如,我用手去按开关,灯亮了。这件事情里,事件源是:手。事件是:按开关。事件驱动程序是:灯的开和关。

再比如,网页上弹出一个广告,我点击右上角的X,广告就关闭了。这件事情里,事件源是:X。事件是:onclick。事件驱动程序是:广告关闭了。

于是我们可以总结出:谁引发的后续事件,谁就是事件源。

总结如下:

  • 事件源:引发后续事件的html标签。

  • 事件:js已经定义好了(见下图)。

  • 事件驱动程序:对样式和html的操作。也就是DOM。

代码书写步骤如下:(重要)

  • (1)获取事件源:document.getElementById(“box”); // 类似于Android里面的findViewById

  • (2)绑定事件: 事件源box.事件onclick = function(){ 事件驱动程序 };

  • (3)书写事件驱动程序:关于DOM的操作。

最简单的代码举例:(点击box1,然后弹框)


<body>
<div id="box1"></div>

<script type="text/javascript">
// 1、获取事件源
var div = document.getElementById("box1");
// 2、绑定事件
div.onclick = function () {
// 3、书写事件驱动程序
alert("我是弹出的内容");
}
</script>

</body>

常见的事件如下:



获取事件源的方式(DOM节点的获取)

获取事件源的常见方式如下:


var div1 = document.getElementById("box1");      //方式一:通过id获取单个标签

var arr1 = document.getElementsByTagName("div");     //方式二:通过 标签名 获得 标签数组,所以有s

var arr2 = document.getElementsByClassName("hehe");  //方式三:通过 类名 获得 标签数组,所以有s

绑定事件的方式

方式一:直接绑定匿名函数

<div id="box1" ></div>

<script type="text/javascript">
var div1 = document.getElementById("box1");
//绑定事件的第一种方式
div1.onclick = function () {
alert("我是弹出的内容");
}
</script>




明天计划:

写任务;


返回列表 返回列表
评论

    分享到