循环-for
for 循环-基本使用
1. for循环语法
作用:
重复执行代码
好处:
把声明起始值、循环条件、变化值写到一起,让人一目了然
,
它是最常使用的循环形式
for (变量起始;终止条件;变量变化量) {
//循环体
}
例子:
for(let i = 1; i<=3; i++){
document.write('年薪过万')
}
2. 退出循环
continue 退出本次循环,
一般用于排除或者跳过某一个选项的时候, 可以使用continue
break 退出整个for循环,
一般用于结果已经得到, 后续的循环不需要的时候可以使用
了解:
1.
while(true) 来构造“无限”循环,需要使用break退出循环
2.
for(;;) 也可以来
构造“无限”循环,同样需要使用break退出循环
当如果
明确
了循环的次数的时候推荐使用for循环
当
不明确
循环的次数的时候推荐使用while循环
for 循环嵌套
for(外部声明记录循环次数的变量;循环条件;变化值) {
for(内部声明记录循环次数的变量;循环条件;变化值) {
循环体
}
}
//打印五行五列的星星
for(let i = 1;i <= 5; i++){
for(let j = 1;j <= 5; j++){
document.write('★')
}
document.write('<br>')
}
数组
数组:(Array)是一种可以按顺序保存数据的数据类型
好处:场景:如果有多个数据可以用数组保存起来,然后放到一个变量中,管理非常方便
数组的基本使用
1. 声明语法
//两种写法
let 数组名 = [数据1,数据2,...,数据n]
let arr = new Array(数据1,数据2,...,数据n)
例子:
let names = ['小明','小刚','小李']
数组是按顺序保存,所以每个数据都有自己的编号
计算机中的编号从0开始,所以小明的编号为0,小刚编号为1,以此类推
在数组中,数据的编号也叫
索引或下标
数组可以存储任意类型的数据
2. 取值语法
数组名[下标]
let names = ['小明','小刚','小李']
names[0] //小明
names[1] //小刚
通过下标取数据
取出来是什么类型的,就根据这种类型特点来访问
3. 一些术语:
元素:数组中保存的每个数据都叫数组元素
下标:数组中数据的编号
长度:数组中数据的个数,通过数组的length属性获得
4. 遍历数组(重点)
用循环把数组中每个元素都访问到,一般会用for循环遍历
语法:
for(let i = 0; i < 数组名.length; i++) {
数组名[i]
}
let nums = [10,20,30,40,50]
for (let i = 0; i < nums.length; i++) {
document.write(nums[i])
}
操作数组
数组本质是数据集合, 操作数据无非就是
增 删 改 查
语法:
操作数组-新增
数组.push()
方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度
(重点)
语法:
arr.push(元素1,...,元素n)
let arr = ('red','green')
arr.push('pink','yellow')
console.log(arr) //['red','green','pink','yellow']
arr.unshift(新增的内容)
方法将一个或多个元素添加到数组的
开头
,并返回该数组的新长度
语法:
arr.unshift(元素1,...,元素n)
let arr = ['red','green']
arr.unshift('pink')
console.log(arr) //['pink','red','green']
操作数组-删除
数组. pop()
方法从数组中删除最后一个元素,并返回该元素的值
语法:
arr.pop() //删除数组最后一个元素
let arr = ['red',green]
arr.pop()
console.log(arr) //['red']
数组. shift()
方法从数组中删除第一个元素,并返回该元素的值
语法:
arr.shift() //删除数组第一个元素
let arr = ['red','green']
arr.shift()
console.log(arr) //['green']
数组. splice()
方法 删除指定元素 (
开发很常用
)
语法:
arr.splice(start,delectCount)
arr.splice(起始位置,删除几个元素)
start 起始位置:
指定修改的开始位置(从0计数)
deleteCount:
表示要移除的数组元素的个数
可选的。 如果省略则默认从指定的起始位置删 除到最后
数组排序
数组. sort() 方法可以排序
语法:
let arr = [4, 2, 5, 1, 3]
// 1.升序排列写法
arr.sort(function (a, b) {
return a - b
})
console.log(arr) // [1, 2, 3, 4, 5]
// 降序排列写法
arr.sort(function (a, b) {
return b - a
})
console.log(arr) // [5, 4, 3, 2, 1]
函数
为什么需要函数
函数:
function,是被设计为
执行特定任务
的代码块
好处:
精简代码方便复用
函数使用
函数的声明语法
function 函数名() {
函数体
}
例子:
function sayHi() {
document.write('ha~~')
}
函数名命名规范
和变量命名基本一致
尽量小驼峰式命名法
前缀应该为动词
命名建议:常用动词约定
function getName() {}
function addSquares() {}
函数的调用语法
//函数调用,这些函数体内的代码逻辑会被执行
函数名()
注意:声明(定义)的函数必须调用才会真正被执行,
使用 () 调用函数
//函数一次声明可以调用多次,每一次函数调用 函数体里面的代码会重新执行
sayHi()
sayHi()
函数传参
若函数完成功能需要调用者传入数据,那么就需要用有参数的函数
这样可以极大提高函数的灵活性
声明语法
function 函数名(参数列表) {
函数体
}
//单个参数
function getSquare(num1) {
document.write(num1 * num1)
}
//多个参数
function getSquare(num1,num2) {
document.write(num1 * num2)
}
参数列表
传入数据列表
声明这个函数需要传入几个数据
多个数据用逗号隔开
调用语法
函数名(传递的参数列表)
getSquare(1,2)
//调用函数时,需要传入几个数据就写几个,用逗号隔开
形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数)
实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)
形参可以理解为是
在这个函数内声明的
变量
(比如 num1 = 10)实参可以理解为是给这个变量赋值
开发中尽量保持形参和实参个数一致
我们曾经使用过的 alert('打印'), parseInt('11'), Number('11') 本质上都是函数调用的传参
参数默认值
形参: 可以看做变量,但是如果一个变量不给值,默认是
undefined
但是如果做用户不输入实参,则出现 undefined + undefined 结果是
NaN
我们可以改进下,用户不输入实参,可以给
形参默认值
,可以默认为 0, 这样程序更严谨,可以如下操作:
说明:这个默认值只会在缺少实参参数传递时 才会被执行,所以有参数会优先执行传递过来的实参, 否则默认为 undefined
函数返回值
有返回值函数的概念:
当调用某个函数,这个函数会返回一个结果出来
这就是有
返回值
的函数
当然有些函数,则没有返回值
作用域
匿名函数
01