JavaScript 基础02
·
第三部分
01-for循环基础
<script>
// 1、打印1~100次
for(let i = 1; i <= 100; i++){
document.write(`文档打印第${i}份<br>`)
}
document.write(`------------------------<br>`)
//2、求1~100之间的偶数和
let sum = 0
for(let i = 1; i <= 100; i++){
if (i % 2 === 0) {
sum += i
}
}
document.write(`1~100之间的偶数和是:${sum}`)
document.write(`<br>------------------------<br>`)
//3、求1~100之间的偶数和
let sum2 = 0
for(let i = 1; i <= 100; i++){
if (i % 2 !== 0) {
sum2 += i
}
}
document.write(`1~100之间的奇数和是:${sum2}`)
document.write(`<br>------------------------<br>`)
//4、求1~100之和
let sum3 = 0
for(let i = 1; i <= 100; i++){
sum3 += i
}
document.write(`1~100之和是:${sum3}`)
</script>
02-for循环遍历数组
<script>
let arr1 = ['刘德华','黎明','张学友','郭富城']
//法一:
for(let i = 0; i < 4;i++){
console.log(arr1[i]);
}
console.log('----------------------')
//法二:
for(let i = 0; i < arr1.length;i++){
console.log(arr1[i]);
}
console.log('----------------------')
//法三:
for(let i = 0; i <= arr1.length-1;i++){
console.log(arr1[i]);
}
console.log('----------------------')
//示例:
let arr2 = []
console.log(arr2)
console.log(arr2[0])
console.log(arr2[1])
</script>
03-循环嵌套
<script>
//外层循环打印-第n天
for(let i = 1; i <= 3 ; i++){
document.write(`第${i}天<br>`)
//里层循环打印-第n个单词
for(let j = 1; j <= 10 ; j++){
document.write(`记住了第${j}个单词<br>`)
}
}
</script>
04-打印小星星
<script>
//打印5行5列小星星
/**
for(let i = 1; i <= 5; i++){
for(let j = 1; j <= 5; j++){
document.write('*')
}
document.write('<br>')
}
*/
//用户自定义小星星
let row = +prompt('请输入行数:')
let col = +prompt('请输入列数:')
//外层循环打印行数
for(let i = 1; i <= row; i++){
//里层循环打印几个小星星
for(let j = 1; j <= col; j++){
document.write('*')
}
//进行换行显示:
document.write('<br>')
}
</script>
05-打印直角三角形
<script>
//打印5行等星小星星
for(let i = 1; i <= 5; i++){
for(let j = 1; j <= i; j++){
document.write('*')
}
document.write('<br>')
}
document.write('-----------------------------<br>')
//用户自定义小星星
let row = +prompt('请输入行数:')
//外层循环打印行数
for(let i = 1; i <= row; i++){
//里层循环打印几个小星星
for(let j = 1; j <= i; j++){
document.write('*')
}
//进行换行显示:
document.write('<br>')
}
</script>
06-99乘法表精修版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>99乘法表精选版</title>
<style>
*{
margin: 0px;
padding: 0px;
}
span{
display: inline-block;
width: 100px;
text-align: center;
padding: 5px 10px;
border: 1px solid pink;
margin: 2px;
border-radius: 5px;
box-shadow: 2px 2px 2px rgba(225,192,203,.4);
background-color: rgba(225,192,203,.1);
}
</style>
</head>
<body>
<script>
//1、外层循环控制行数
for(let i = 1; i <= 9; i++){
//里层循环控制列数
for(let j = 1; j <= i; j++){
document.write(`<span>${i} ✖ ${j} = ${i*j}</span>`)
}
//换行
document.write('<br>')
}
</script>
</body>
</html>
07-数组求和以及平均值
<script>
//遍历数组
let arr = [2,4,1,6,7]
// for(let i = 0; i < arr.length; i++){
// console.log(arr[i])
// }
//遍历累加
let sum = 0
for(let i = 0; i< arr.length; i++){
sum += arr[i]
}
console.log(`数组累加的结果是:${sum}`)
//求平均值
console.log(`数组累加后的平均值为:${sum / arr.length}`);
</script>
08-数组比较最大值和最小值
<script>
//最大值
let arr = [2,6,1,7,4]
//max里面需要存的是最大值
let max = arr[0]
//遍历数组
for(let i = 1; i < arr.length; i++){
//如果max比数组元素里面的值小,我们就要把这个数组元素赋值给max
if(max < arr[i]){
max = arr[i]
}
}
//输出max
console.log(max);
console.log('---------------------')
//最小值
let min = arr[0]
for(let i = 0; i < arr.length; i++){
if(min > arr[i]){
min = arr[i]
}
}
console.log(min);
</script>
09-数组操作-修改
<script>
let arr = []
console.log(arr)
console.log(arr[0])
//定义(修改)
arr[0] = 1
arr[1] = 5
console.log(arr);
console.log('------------------')
let arr2 = ['pink','red','green']
//修改
arr2[0] = 'black'
console.log(arr2);
//给所有数组元素后面加个同志(修改)
for(let i = 0; i < arr2.length; i++){
arr2[i] = arr2[i] + '老师'
}
console.log(arr2);
</script>
10-数组操作-新增
<script>
let arr = ['pink','pink']
//新增 push(新增至末尾)
arr.push('yellow','green')
console.log(arr) //['pink', 'pink', 'yellow', 'green']
//新增 unshift(新增至开头)
arr.unshift('red','black')
console.log(arr) // ['red', 'black', 'pink', 'pink', 'yellow', 'green']
</script>
11-数组筛选
<script>
//重点案例
let arr = [2,63,5,98,4,29,8,35,7]
//声明新的空数组
let newArr = []
//遍历旧数组
for(let i = 0; i < arr.length; i++){
if(arr[i] >= 10){
//满足条件 添加到新数组
newArr.push(arr[i])
}
}
console.log(newArr);
//数组去0案例
let arr2 = [5,96,0,12,3,0,45,0,8,7,9,0,0]
let newArr2 = []
for(let i = 0; i < arr2.length; i++){
if(arr2[i] !== 0){
newArr2.push(arr2[i])
}
}
console.log(newArr2)
</script>
12-数组操作-删除
<script>
let arr = ['red','green','blue']
console.log(arr.pop()) //打印删除的元素是哪一个
//1、pop() 删除最后一个元素
arr.pop()
console.log(arr)
console.log('------------')
let arr2 = ['red','green','blue', 'pink', 'yellow']
//2、shift() 删除第一个元素
arr2.shift()
console.log(arr2);
console.log('------------')
let arr3 = ['red','green','blue', 'pink', 'yellow']
//3、splice 删除指定元素
//splice(起始位置-索引号,删除元素个数)
arr3.splice(1,1)
console.log(arr3);
console.log('------------')
//splice(起始位置-索引号)
//表示从起始位置-索引号开始删除后面所有元素
arr3.splice(1)
console.log(arr3)
</script>
13-综合案例-根据数组生成柱状图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{
margin: 0px;
padding: 0px;
}
.box{
display: flex;
width: 700px;
height: 300px;
border-left: 1px solid pink;
border-bottom: 1px solid pink;
margin: 50px auto;
justify-content: space-around;
align-items: flex-end;
text-align: center;
}
.box div {
display: flex;
width: 50px;
background-color: pink;
flex-direction: column;
justify-content: space-between;
}
.box div span {
margin-top: -20px;
}
.box div h4{
margin-bottom: -35px;
width: 70px;
margin-left: -10px
}
</style>
</head>
<body>
<!-- <div class="box">
<div style="height: 123px;">
<span>123</span>
<h4>第1季度</h4>
</div>
</div>
<div class="box">
<div style="height: 123px;">
<span>123</span>
<h4>第1季度</h4>
</div>
</div>
<div class="box">
<div style="height: 123px;">
<span>123</span>
<h4>第1季度</h4>
</div>
</div>
<div class="box">
<div style="height: 123px;">
<span>123</span>
<h4>第1季度</h4>
</div>
</div> -->
<script>
/**
*
//声明一个新的数组
let arr = []
//循环四次弹窗
for(let i = 1; i <= 4; i++){
let num = prompt(`请输入第${i}季度的数据:`)
arr.push(num)
//arr.push(prompt(`请输入第${i}季度的数据:`))
}
console.log(arr);
*
**/
let arr = []
for(let i = 1; i <= 4; i++){
let num = prompt(`请输入第${i}季度的数据:`)
arr.push(num)
}
//盒子开头
document.write(`<div class="box">`)
//盒子中间 利用循环的形式
for(let i = 0; i < arr.length; i++){
document.write(`
<div style="height: ${arr[i]}px;">
<span>${arr[i]}</span>
<h4>第${i + 1}季度</h4>
</div>
`)
}
//盒子结尾
document.write(`</div>`)
</script>
</body>
</html>
14-冒泡排序
<script>
//1、冒泡排序
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]){
//交换2个变量
let temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
console.log(arr)
console.log('--------------')
//2、sort()排序 (默认升序)
let arr2 = [5,4,3,2,1]
arr2.sort()
console.log(arr2)
console.log('--------------')
//3、sort(function(a,b)){
// return a - b
// } 升序
let arr3 = [5,4,3,2,1]
arr3.sort(function(a,b){
return a - b
})
console.log(arr3)
console.log('--------------')
//3、sort(function(a,b)){
// return b - a
// } 降序
let arr4 = [5,4,3,2,1]
arr3.sort(function(a,b){
return b - a
})
console.log(arr4)
</script>
第四部分
01-函数的使用
<script>
//1、函数的声明
function sayHi() {
//document.write('Hi~~~')
console.log('Hi~~~');
}
//2、调用函数 (调用一次执行一次)
sayHi()
sayHi()
sayHi()
//3、多次调用
for(let i = 1; i <= 50; i++ ){
sayHi()
}
</script>
02-封装函数案例
<script>
function getSum() {
let num1 = +prompt('请输入第一个数:')
let num2 = +prompt('请输入第二个数:')
alert(`两数之和为:${num1+num2}`)
}
getSum()
</script>
03-函数参数
<script>
//没有参数,函数较死板
function getSum() {
let sum = 0
for(let i = 0; i <= 100; i++){
sum += i
}
console.log(sum)
}
getSum()
console.log('------------------')
//单个形参
//求1~X之和
function getSum2(end) {
let sum2 = 0
for(let i = 0; i <= end; i++){
sum2 += i
}
console.log(sum2)
}
getSum2(50)
console.log('------------------')
//两个形参
//求X~X之和
function getSum3(start,end) { //在声明时为形参
let sum3 = 0
for(let i = start; i <= end; i++){
sum3 += i
}
console.log(sum3)
}
getSum3(100,200) //在调用时为实参
</script>
04-函数参数-默认参数
<script>
//函数求和 无默认函数参数
function getSum(x , y) {
document.write(x + y)
}
getSum(1,2)
document.write('---')
getSum() //未设置默认值结果为NaN(undefined+undefined)
document.write('---')
//函数求和 设置默认函数参数
function getSum1(x = 0 , y = 0) {
document.write(x + y)
}
getSum1(1,2)
document.write('---')
getSum1() //设置默认值后结果为0
//无默认函数参数
function getSum2(start,end) {
let sum2 = 0
for(let i = start; i <= end; i++){
sum2 += i
}
console.log(sum2)
}
getSum2(100,200)
console.log('------------------')
//设置默认函数参数
function getSum3(start = 0,end = 0) {
let sum3 = 0
for(let i = start; i <= end; i++){
sum3 += i
}
console.log(sum3)
}
getSum3(100,200)
</script>
05-函数封装数组求和
<script>
//给一个参数的默认值
function getArrSum(arr = []) {
let sum = 0
for(let i = 0; i < arr.length; i++){
sum += arr[i]
}
console.log(sum)
}
getArrSum()
console.log('------------')
getArrSum([11,22,33])
getArrSum([1,2,3,4,5,6,7,8,9,10])
</script>
06-实参可以是变量
<script>
//求n~m的累加和
function getSum(n = 0,m = 0) {
let sum = 0
for(let i = n; i <= m; i++){
sum += i
}
alert(sum)
}
let num1 = +prompt('请输入累加起始值:')
let num2 = +prompt('请输入累加结束值:')
getSum(num1,num2)
</script>
07-函数的返回值
<script>
//函数的返回值
function fn() {
return 100
}
//调用函数fn法一:
console.log(fn())
//调用函数fn法一:
let resulte = fn()
console.log(resulte)
console.log('------------------------')
//求和函数的写法
function getTotalPrice(x , y){
return x + y
//return 后面的代码不会被执行
}
let sum = getTotalPrice(1,2)
console.log(sum)
</script>
08-求最大值函数
<script>
//1、求最大值函数
function getMax(x , y) {
return x > y ? x : y
}
let max = getMax(111,222)
console.log(max)
//2、求任意数组的最大值,并且返回
function getArrValue(arr = []) {
//(1)先准备一个max变量存放数组的第一个值
let max = arr[0]
//(2)遍历比较
for(let i = 1; i < arr.length; i++){
if(max < arr[i]){
max = arr[i]
}
}
return max
}
let resulteMax = getArrValue([11,43,6,7,90,46])
console.log(resulteMax)
</script>
09-同时得出最大值和最小值
<script>
function getArrValue(arr = []) {
//(1)先准备一个max变量存放数组的第一个值
let max = arr[0]
//(2)再准备一个min变量存放数组的第一个值
let min = arr[0]
//2、遍历比较 max
for(let i = 1; i < arr.length; i++){
if(max < arr[i]){
max = arr[i]
}
//min
if(min > arr[i]){
min = arr[i]
}
}
return [max , min]
}
let resulteMax = getArrValue([11,43,6,7,90,46])
console.log(resulteMax)
</script>
10-变量访问原则
<script>
let a = 1
function fn1() {
let a = 2
let b = '22'
fn2()
function fn2() {
let a = 3
fn3()
function fn3() {
let a = 4
console.log(a)
console.log(b)
}
}
}
fn1()
</script>
11-函数表达式
<script>
//函数表达式
//fn() 必须先声明后调用,否则报错
let fn = function (x , y) {
console.log('我是函数表达式')
}
fn() //正确
console.log(fn);
console.log('----------------')
//2、具名函数的调用可以写道任意位置
fun() //此位置可行
function fun() {
console.log('我是具名函数')
}
fun() //此位置也可行
//
let sum = function () {}
console.log(sum)
console.log(sum()) //无return时,则返回undefined
</script>
12-立即执行函数
<script>
//() ()
//函数声明 函数调用
//(function () {})()
(function () {
console.log(11)
})(); //唯一必须加分号结束的表达式!!!!!!
//实例:
(function (x,y) {
console.log(x + y)
})(2,3);
</script>
13-综合案例
<script>
//1、用户输入
let second = +prompt('请输入秒数:')
//2、封装函数
function getTime(time) {
console.log(time)
//3、转换
// 小时:h = parseInt(总秒数 / 60 / 60 % 24)
// 分钟:m = parseInt(总秒数 / 60 % 60)
// 秒数:s = parseInt(总秒数 % 60)
let h = parseInt(time / 60 / 60 % 24)
let m = parseInt(time / 60 % 60)
let s = parseInt(time % 60)
//若小于数字10,在前面补0
h = h < 10 ? '0' + h : h
m = m < 10 ? '0' + m : m
s = s < 10 ? '0' + s : s
console.log(h , m , s)
return `转换成时分秒为:${h}小时:${m}分钟:${s}秒`
}
let srt = getTime(second)
document.write(srt)
</script>
14-逻辑中断
<script>
function fn(x,y) {
x = x || 0
y = y || 0
console.log(x + y)
}
fn(1,2)
console.log('---------------')
console.log(false && 22);
console.log('---------------')
console.log(false && 3 + 5);
console.log('---------------')
console.log(false || 22);
console.log('---------------')
console.log(false || 3 + 5);
console.log('---------------')
let age = 18
console.log(false && age++)
console.log(false || age++)
console.log('---------------')
console.log(true && age++)
console.log(true || age++)
</script>
15-转换为布尔型
<script>
//显示转换:
//''\0\undefined\null\false\NaN转换为布尔值后都是false,其余为true
console.log(Boolean(''))
console.log(Boolean(0))
console.log(Boolean('pink'))
console.log(Boolean(90))
console.log(Boolean(-1))
console.log(Boolean(undefined))
console.log(Boolean(null))
console.log(Boolean(NaN))
console.log('----------------------')
</script>
更多推荐
所有评论(0)