if和switch
1都能实现多分支
2大部分可以互换
区别:switch处理的是值比较确定的所以效率比较高(判断条件越多比较起来效率越高),而if else语句更加灵活
switch必须是===,一定要注意数据类型,同时注意break,防止穿透效果
1.当分支比较少时,if...else语句执行效率高。
2.分支比较多时,switch语句执行效率高,而且结构更清晰
for 循环
for(变量起始值;终止条件;变量变化量)
实例:
<script>
let sum = 0
for (let i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i
}
}
document.write(`1~100的加和为:${sum}`)
</script>
for循环的循环数组
<script>
let arr = [`刘德华`, `刘小强`, `刘晓庆`]
for (let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
</script>
for循环里面的条件是arr.length这样可以防止改动数组内容时再次改一遍for循环条件
数组里是从0开始
退出循环
continue 退出本次循环直奔i++
break 退出整个循环,结束循环
for(; ;)无限循环
明确使用次数优先考虑for循环
循环嵌套

执行完内部全部的循环才能进行外面的下一次循环
<script>
for (let i = 1; i <= 5; i++) {
document.write(`第${i}天<br>`)
for (let j = 1; j <= 5; j++) {
document.write(`记住第${j}个单词<br>`)
}
}
</script>
控制输出行与列
<script>
//外循环控制行数,内循环控制一行打印几个小星星
for (let i = 1; i <= 5; i++) {
for (let j = 1; j <= 5; j++) {
document.write(`⭐`)
}
document.write(`<br>`)
}
</script>
效果图:

打印直角三角形
<script>
for (let i = 1; i <= 5; i++) {
for (let j = 1; j <= i; j++) {
document.write(`⭐`)
}
document.write(`<br>`)
}
</script>

数组
是数据类型 单个变量保存多个数组
let 变量 = 【1,2,‘pink’】可以存放任意类型
undefined+任何数都为NAN
undifined+‘1’(字符串)为:undifined1
数组求和:
<script>
let arr = [2, 3, 4, 5, 6]
let sum = 0
for (let i = 0; i < arr.length; i++) {
sum += arr[i]
}
console.log(`数组的平均长度为:${sum / arr.length}`)
</script>
求数组中的最大值和最小值
步骤

<script>
let arr = [2, 6, 1, 77]
let max = arr[0] //取出来第一个数赋值给max
for(let i=1;i<arr.length;i++){
if(max<arr[i]){
max=arr[i]
}
}//属于遍历过程
//最后输出即可
</script>
修改数组
<script>
let arr = ['pink', 'red', 'green']
//直接修改
arr[0] = 'hotpink'
//给所有元素都加上‘老师’
for (let i = 0; i < arr.length; i++) {
arr[i] = arr[i] + '老师'
}
</script>
增加数组
数组.push()方法将一个或多个元素添加到数组的未尾,并返回该数组的新长度(重点)
在前面加:数组.unshift
例子:

数组筛选
需求:将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新数组
分析:①:声明一个新的数组用于存放新数据newArr②:遍历原来的旧数组,找出大于等于10的元素③:依次追加给新数组newArr
<script>
let arr = [2, 0, 6, 1, 77, 69, 54, 78, 7]
//声明一个新数组,用小驼峰命名法
let newArr = [ ]
//遍历旧数组中的每一个数
for (let i = 0; i < arr.length; i++) {
if (arr[i] >= 10) {
//满足条件的追加给新数组
newArr.push(arr[i])
}
}
//最后输出新数组
console.log(newArr)
</script>
删除数组中的数据
1> 数组.pop( )从数组中删除最后一个元素,并且返回该元素
如:arr.pop( ) 【删除的是最后一个!!一次只能删一个】
2> 数组.shift()从数组中删除第一个元素,并且返回该元素
如:arr.shift( ) 【删除的是第一个!!一次只能删一个】
3> 数组.splice 删除指定元素

解释:
>start起始位置:
>指定修改的开始位置(从0计数)
>deleteCount:
>表示要移除的数组元素的个数
>可选填。如果省略则默认从指定的起始位置删除到最后
冒泡排序

数组排序:
数组.sort( )
默认为升序
冒泡排序:第一层循环表示一共需要多少趟:数据减一
每趟需要交换的次数:数据减i再减1
函数:
1.1function,是被设计为执行特定任务的代码块
1.2函数声明:
function 函数名(){
函数体
}
函数的调用:
函数名()
1.3函数传参


说明:这个默认值只会在缺少实参参数传递时才会被执行,所以有参数会优先执行传递过来的实参,否则默认为undefined(比如上一个图片中num1和2均未赋值默认值就是undefined,在调用getSum()时是NAN)
1.4函数的返回值
当调用某个函数,这个函数会返回一个结果出来
return 数据
细节:
>在函数体中使用return关键字能将内部的执行结果交给函数外部使用
>return后面代码不会再被执行,会立即结束当前函数,所以return后面的数据不要换行写(return后面的代码不会被执行)
>return函数可以没有return,这种情况函数默认返回值为undefined
函数细节补充·
●两个相同的函数后面的会覆盖前面的函数
●在Javascript中实参的个数和形参的个数可以不一致
>如果形参过多会自动填上undefined(了解即可)
>如果实参过多那么多余的实参会被忽略,剩余的形参不参与运算(函数内部有一个arguments,里面装着所有的实参)
●函数一旦碰到return就不会在往下执行了函数的结束用return
break结束的是循环和switch,return结束函数
1.5作用域
通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突
全局作用域:script和JS中的可任意被使用任意区域都可以访问和修改
局部作用域:只能在当前函数内部访问和修改
特殊情况:在函数内部,变量没有被声明直接赋值也当全局变量看,但是强烈不推荐!!
形参可以看作是函数的局部变量
变量的访问原则:
●只要是代码,就至少有一个作用域
●写在函数内部的局部作用域
●如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域
●访问原则:在能够访问到的情况下先局部,局部没有在找全局(遵循就近原则)
1.6匿名函数
function(){
}
使用方法
1.函数表达式将匿名函数赋值给一个变量,并且通过变量名称进行调用我们将这个称为函数表达式语法:let fn = function (){
}
fn()
函数表达式与具名函数不同
1>具名函数的调用可以写到任何位置
2>函数表达式必须先声明再调用
2.立即执行函数
写法:
1
(function(放形参){放函数内容})(放实参); 必须使用分号隔开 第二个小括号进行调用,所以第二个小括号内是实参
2
(function(放形参){放函数内容} (放实参));必须使用分号隔开
逻辑中断
&&遇到假的就停止
|| 遇到真的就停止
转换为布尔型
1.Boolean(内容)
记忆:‘ ’(表示空字符串)、0、undefined、null、false、NaN转换为布尔值后都是false,其余则为true

1.有字符串的加法“ ”+1,结果是“1”
2.减法-(像大多数数学运算一样)只能用于数字,它会使空字符串"转换为0
3.null经过数字转换之后会变为0
4.undefined经过数字转换之后会变为NaN
对象
1.1定义
对象是一种数据类型
可以理解为一种无序的数据集合,而数组是有序的数组集合
1.2使用
1对象的声明语法
let 对象名= { } let 对象名 = new Object()
实际开发中多用花括号。{}是对象字面量
2对象有属性和方法组成
属性:信息或叫特征(名词)
方法:功能或叫行为(动词)
let 对象名= {
属性名:属性值
方法名:函数
}
3属性
属性相当于变量 ,属性与属性之间要用逗号隔开
let pink = {
uname:'pink老师',(一定要加“,”)
age:18,
gender:‘女’
}
1.对象属性有顺序吗? 没有
2.属性和值用什么符号隔开?多个属性用什么隔开? 属性和值用:隔开
多个属性用,逗号隔开

712

被折叠的 条评论
为什么被折叠?



