js基础(不完全)

算数运算符

算数符优先级:先乘除后加减

% —> 取余运算符,余数为零就说明这个数能被整除

1、前置递增运算符:(自增自减运算符只能和变量搭配使用)
eg:(先+1,后返回值)

let age = 10;
++age;   // 类似于age = age +1
console.log(age)   // 11

2、后置递增运算符:
eg:

let num = 20;
num ++;    // --> num = num + 1
console.log(num);  // 21

三元表达式(作用与if…else…相同)

语法结构: 条件表达式 ? 表达式1 : 表达式2
执行思路: 如果条件表达式为结果为真则执行表达式1,结果为假则执行表达式2

let num = 10;
num > 9 ? console.log('num大于9') : console.log('num小于9')      // num大于9

分支流程控制:Switch语句

执行思路: 利用表达式的值与case后面的选项值相匹配,匹配上则执行该case里面的语句,
语法结构:

//表达式最好设置成一个变量
//数值与数据类型要一致
//如果没有break,则全部case都会执行一遍

switch(表达式) {    
	case value1:
		执行语句1;
		break;
	case value2:
		执行语句2;
		break;
	......
	default:     // 相当于else语句
		执行最后的语句;
}

switch语句小案例:

let fruit = prompt('请输入你要查询的水果名称:')
switch (fruit) {
    case "苹果":
        alert('苹果:2.4¥/500g')
        break;
    case "香蕉":
        alert('香蕉:1.1¥/500g')
        break;
    case "橙子":
        alert('橙子:2.3¥/500g')
        break;
    default:
        alert('没有此水果')
}

switch语句和if…else if…语句的区别:
1、一般情况下,可替换
2、switch语句通常处理case为比较确定值的情况,而if…else…语句更加灵活,常用于范围判断。
3、switch语句进行条件判断后直接执行到程序的条件语句,效率更高,而if…else…则需要判断多次
4、当分支较少时,if…else…语句的执行效率更高,反之,switch语句的执行效率更高。

循环

1、for循环

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

小案例:计算学生的平均成绩

let stu_num = prompt('请输入学生人数:')
        let sum_score = 0
        for (var i = 1; i <= stu_num; i++) {
            let stu_score = prompt('请输入学生' + i + '的成绩:')
            // 从prompt输出的内容都是字符串,要进行操作需要转换为相应类型
            sum_score += parseFloat(stu_score)
        }
        console.log(sum_score)
        let average = sum_score / stu_num
        console.log(average)
        alert('学生的平均成绩是:' + average)

双重for循环小案例:根据输入的行数和列数打印*

let rows = prompt('请输入行数:')
let cols = prompt('请输入列数:')
let str = ''
for (let i = 1; i <= rows; i++) {
    for (let j = 1; j <= cols; j++) {
        str = str + "*"
    }
    str += '\n'
}
console.log(str)

小案例:打印倒三角形

let str = ''
        for (let i = 1; i <= 7; i++) {
            for (let j = i; j <= 7; j++) {
                str = str + "*"
            }
            str += '\n'
        }
        console.log(str)

小案例:打印九九乘法表

let str = '';
for (let i = 1; i <= 9; i++) {
    for (let j = 1; j <= i; j++) {
        str = str + '  ' + i + '*' + j + '=' + i * j
    }
    str += '\n'
}
console.log(str)

2、while循环
执行思路: 当条件表达式结果为true,则执行循环体,否则,退出循环
语法结构:

while(条件表达式){
	// 循环体
}

小案例:

var mess = prompt('你爱我吗:')
while (mess != '我爱你') {
    mess = prompt('你爱我吗:')
}
alert('我也爱你哦')

3、do…while循环
语法结构:

do{
//  循环体
} while(条件表达式)

执行思路: do while先执行一次循环体,再判断条件表达式结果是否为true,true则继续执行代码,否则退出循环,循环体至少循环一次

冒泡排序(数组排序)

案例:将数组从小到大排序
在这里插入图片描述

// 数组排序:
        let arr = [5, 4, 3, 2, 1]
        for (let i = 0; i <= arr.length - 1; i++) {
            for (let j = 0; j <= arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j]     // 缓存
                    arr[j] = arr[j + 1]
                    arr[j + 1] = temp
                }
            }
        }
        console.log(arr)

函数

函数:就是封装一段可重复执行调用的代码块,目的:让代码可重复使用

arguments的使用: 当不知道用户会传递过来多少个实参时可以用arguments (数据类型:伪数组) 存储实参。
arguments里面存储了所有传递过来的实参。
伪数组: 并不是真正意义上的数组:
特性:1、具有数组的length属性
2、按照索引方式进行存储
3、没有真正数组的一些方法 eg:pop()、push()

// arguments的使用
function fn() {
    console.log(arguments)
    console.log(arguments.length)   // 获取长度
    console.log(arguments[2])   //索引获取数据
}
fn(1, 2, 3, 4)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值