一、三元表达式

1.1 什么是三元表达式

由三元运算符组成的式子我们称为三元表达式

1.2 语法结构

条件表达式 ? 表达式1 : 表达式2

1.3 执行思路

如果表达式为结果真 则返回表达式1的值,如果条件表达式结果为假,则返回表达式2的值

1.4 举个栗子

var num = 10;
var result = num > 5 ? "大于5" : "小于5"; // 表达式是有返回值的
console.log(result); // 相当于
if (num > 5) {
result = "大于5"
}else{
result = "小于5"
}

1.5 总结

三元表达式就是简化版的if-else

二、数字补0 案例

2.1 需求:如果数字小于10,则在这个数字前面补0,否则不做操作

2.2 思路:字符串拼接

2.3 举个栗子

// 定义一个变量接收用户输入的值
var num = prompt("请输入一个数字");
// 把返回值赋值给一个变量输出
var result = num < 10 ? '0' + num : num;
console.log(result);

三、switch语句

3.1 什么是switch语句

switch语句也是多分支语句也可以实现多选1

3.2 语法结构

switch:转换、开关;case:小栗子或选项的意思;break:退出
switch(表达式){ case 空格 值1: 执行语句1; break; case 空格 值2: 执行语句2; break;... default:执行最后的语句;}

3.3 执行思路

执行思路:利用表达式的值和case后面的选项值相匹配,如果匹配成功,就执行该case里面的语句,如果都匹配失败,那么就执行default里面的语句

3.4. 举个栗子

        var num=1;
switch (num) {
case 1:
console.log("这是1");
break;
case 2:
console.log("这是2");
break;
case 3:
console.log("这是3");
break;
default:
console.log("没有匹配结果");
break;
}

四、循环

4.1 循环的目的:可以重复执行某些代码

4.2 语法结构

for (初始化变量; 条件表达式; 操作表达式) { 循环体 }

解析:

  • 初始化变量:就是用var声明的一个普通变量,通常用于作为计数器使用
  • 条件表达式:就是用来决定每一次循环是否继续执行,就是终止的条件
  • 操作表达式:是每次循环最后执行的代码,通常用于我们计数器变量进行更新(递增或者递减)

4.3 举个栗子

// 打印100行你好
for (let i = 0; i <= 100; i++) {
console.log("你好!");
}

4.3.1 计数器

for循环可以重复执行不同的代码,因为我们有计数器变量i的存在,所以i每次循环值都会发生变化

// 输出一个人1~100岁
for (let i = 1; i <= 100; i++) {
console.log("Tao今年" + i + "岁了!");
}

4.3.2 for 循环进行算术运算练习

        // 需求:
// 1、求1-100之间所有整数的累加和
var sum = 0;
for (let i = 1; i <= 100; i++) {
sum += i;
} console.log("1-100之间所有整数的累加和是:" + sum); // 2、求1-100 之间所有数的平均值
var sum = 0; // 和
var avg = 0; // 平均值
for (let i = 1; i <= 100; i++) {
sum += i;
}
avg = sum / 100;
console.log("平均值是:" + avg); // 3、求1-100 之间所有偶数与奇数的和
var even = 0; // 偶数
var odd = 0; // 奇数
for (let i = 1; i <= 100; i++) {
if (i % 2 == 0) {
even += i;
} else {
odd += i;
}
} console.log("1-100 之间所有偶数和是:" + even);
console.log("1-100 之间所有奇数和是:" + odd); // 4、求1-100 之间所有能被3整除的数字的和
var sum = 0;
for (let i = 1; i <= 100; i++) {
if (i % 3 == 0) {
sum += i;
}
} console.log("1-100 之间所有能被3整除的数字的和是:" + sum);

4.3.3 求学生成绩

 // 需求:用户输入班级人数,然后依次输入每个学生的成绩,最后打印出改班级的总成绩与平均成绩
var classNum = prompt("请输入班级人数");
var sum = 0; // 总成绩
var avg = 0; // 平均成绩
for (let i = 1; i <= classNum; i++){
var score = prompt("第" + i + "位学生的成绩是:"); // 注意:在prompt里面取出来的值都是字符串类型的,所以需要强转为数字型
sum += parseFloat(score);
}
avg = sum / classNum; alert("该班级的总成绩是:" + sum+","+"平均成绩是:"+avg);

4.4 双重for循环

4.4.1 理解:可以把里面的循环看做是外层循环的语句

4.4.2 语法结构

for (外层的初始化变量; 外层的条件表达式; 外层的操作表达式) {
        for (内层的初始化变量; 内层的条件表达式; 内层的操作表达式) {
               // 执行语句;             
         }
           
  }

4.4.3 执行过程:外层循环一次,里面的循环执行全部

4.4.4 举个栗子

4.4.4.1 打印五行五列的星星
     var star = "";
for (let i = 1; i <=5 ; i++) { // 外层循环打印五行 for (let j = 1; j <= 5; j++) { // 内层循环一行打印五个星星
star += "★" ;
} // 如果一行打印完5个星星就要换行哦
star += "\n";
} console.log(star);
4.4.4.2 打印倒三角形的星星
     var star = "";
for (let i = 1; i <= 10; i++) {
// 因为j不再是固定的,而是随着行数变化的,j=2的时候就打印9颗星星,2,3,4...9
for (let j = i; j <= 10; j++) {
star += "★";
}
star += "\n";
} console.log(star);
4.4.4.3 打印九九乘法表
     var str = "";
for (let i = 1; i <=9; i++) {
for (let j = 1; j <= i; j++) { str += j + "*" + i + "=" + (i*j) + "\t";
} str += "\n"
} console.log(str);

5、数组

5.1 什么是数组

数组(Array)就是一组数据的集合,存储在单个变量下的优雅方法(即不用创建多个变量名)

5.2 创建数组的方法

方法一:利用new关键字创建数组

var arr = new Array();

方法二:利用数组字面量创建数组(常用)

var arr = []; // 创建了一个空的数组
var arr1 = [1,2,'tao',true]; // 数组里面可以存储不同的数据类型

5.3 注意

  • 数组里面的数据一定要用逗号分割

  • 存放在数组里面的数据,称为数组元素

5.4  访问数组元素

5.4.1 数组的索引(下标)

用来访问数组元素的序号(数组下标从0开始)

5.4.2 格式:数组名[索引号]

5.4.3 举个栗子

var arr2 = [1,2.2,'tao',true];
console.log(arr2[2]); // 输出结果:tao

5.5 遍历数组

5.5.1 概念

就是把数组的元素从头到尾访问一次

5.5.2 通过循环遍历数组元素

因为数组索引是从0开始的,所以i必须从0开始,小于数组元素里面的长度

var arr = ['tao', "tom", "fairy", "gin"];

for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}

5.6 举个栗子

5.6.1 数组求和以及平均值

     // 需求:计算数组元素的和以及平均值
var sum = 0;
var avg = 0;
var arr = [2,4,6,8]; for (let i = 0; i < arr.length; i++) {
sum += arr[i];
} avg = sum / arr.length; console.log("数组中元素和是:"+sum);
console.log("数组中元素平均值是:"+avg);

5.6.2 求数组中的最大值

5.6.1 分析需求
  1. 声明一个最大值变量max
  2. 默认最大值是数组中的第一个元素
  3. 遍历数组,把里面的每个元素和max相比较
  4. 如果这个元素大于max就把这个元素存储到max里面,否则就继续下一轮比较
  5. 输入最大值max
        var arr = [2,4,6,8,9,1,0];
var max = arr[0];
// 因为最大值已经默认是数组中的第一个元素了,所以就不需要和第一个元素比较了,所以从1开始
for (let i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
} } console.log("该数组里面的最大值是:"+max);

5.6.3 数组转换为分割字符串

        //需求:将var arr = ['tao', "tom", "fairy", "gin"]转换为字符串
//输出tao,tom,fairy,gin
var arr = ['tao', "tom", "fairy", "gin"];
var str = ""; // 用来存储分割完的字符串
for (let i = 0; i < arr.length; i++) {
str += arr[i]+",";
} console.log(str);
 

JavaScrip基础学习笔记(一)的更多相关文章

  1. 【C#编程基础学习笔记】4---Convert类型转换

    2013/7/24 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...

  2. 【C#编程基础学习笔记】6---变量的命名

    2013/7/24 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]6---变量的命名 ----- ...

  3. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...

  4. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  5. Mysql数据库基础学习笔记

    Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...

  6. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  7. Java基础学习笔记(一)

    Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...

  8. C#RabbitMQ基础学习笔记

    RabbitMQ基础学习笔记(C#代码示例) 一.定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发).MQ是一种应用程序对应用程序的通信方法. ...

  9. handlebars.js基础学习笔记

    最近在帮学校做个课程网站,就有人推荐用jquery+ajax+handlebars做网站前端,刚接触发现挺高大上的,于是就把一些基础学习笔记记录下来啦. 1.引用文件: jquery.js文件下载:h ...

  10. 基础学习笔记之opencv(6):实现将图片生成视频

    基础学习笔记之opencv(6):实现将图片生成视频 在做实验的过程中.难免会读视频中的图片用来处理,相反将处理好的图片又整理输出为一个视频文件也是非经常常使用的. 以下就来讲讲基于opencv的C+ ...

随机推荐

  1. kafka详解(一)--kafka是什么及怎么用

    kafka是什么 在回答这个问题之前,我们需要先了解另一个东西--event streaming. 什么是event streaming 我觉得,event streaming 是一个动态的概念,它描 ...

  2. 一文学会Spring JDBC 使用

    Spring JDBC 1.JDBC JDBC 就是 数据库开发 操作的 代名词,因为只要是现代商业项目的开发那么一定是离不开 数据库 的,不管你搞的是什么,只要是想使用动态的开发结构,那么一定就是 ...

  3. PPR管及管件的类型、规格与选用

    1. PPR管的类型及参数识读 2. 常用的PPR管件及规格 3. 住宅给水管的PPR管及管件的需求量

  4. Spring Boot 项目转容器化 K8S 部署实用经验分享

    转载自:https://cloud.tencent.com/developer/article/1477003 我们知道 Kubernetes 是 Google 开源的容器集群管理系统,它构建在目前流 ...

  5. docket打包镜像内部报错

    临时记录,后面再完善 对于前端docker一般不太熟悉,当我们想要打包镜像的时候会去找教程,我按着教程去打包一个使用KOA框架搭建的node服务. 这是一个 koa + ts + pm2的项目 结果出 ...

  6. JSP实现登录功能(页面带样式)

    功能要求 1.完成两个页面 2.第一个登陆页面login. jsp 3.第二个用户管理页面useManage. jsp 4.有登录功能(能进行用户名密码的校验,用户名若为自己的学号密码为班级号,允许登 ...

  7. P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并 (树上差分+线段树合并)

    显然的树上差分问题,最后要我们求每个点数量最多的物品,考虑对每个点建议线段树,查询子树时将线段树合并可以得到答案. 用动态开点的方式建立线段树,注意离散化. 1 #include<bits/st ...

  8. 通过QQ抓IP查询地址

    使用工具: Wireshark 可以直接搜索官网获取,个人用的免费的,也可以直接在kali中也是可以直接用的.这里就不介绍怎么安装了,网上很多. 步入正题: 通过wireshark进行抓包查地址,需要 ...

  9. vulnhub靶场之EMPIRE

    准备: 攻击机:虚拟机kali.本机win10. 靶机:EMPIRE: BREAKOUT,地址我这里设置的桥接,下载地址:https://download.vulnhub.com/empire/02- ...

  10. 前端图形:SVG与Canvas

    00.前端图形 前端代码实现图形的几种方式:CSS.SVG.Canvas(主要是JavaScript编码) CSS也是可以画图的,需要借助于高宽.边框border.clip-path裁剪.渐变色背景等 ...