循环:
for循环 简化版while循环
语法:
for(表达式1;表达式2;表达式3) {
循环体
}
表达式1:循环条件初始化
表达式2:循环终止条件
表达式3:更新循环条件
流程:
1.先执行表达式1 声明条件 并且自走一次
2.表达式2 与循环条件的boolean值
3.进行循环操作
4.表达式3 更新循环条件 返回判断表达式2
for 和 while对比:
相同:
先判断条件然后在进行循环操作
不同:
while:优先使用在不确定循环次数的场合下
for:优先使用在已知循环次数的条件下 通常用来遍历数据结构
循环的嵌套:
允许一个循环内部再出现一个循环
for(var i = 0; i <= 10; i++){
for(var x = 0; x <= 10; x++){
循环体
}
}
外层循环走以次内层循环走一轮
函数:
function 是一段被定义好并且可以独立反复执行
并包含多条执行语句的代码块
在JS中创建函数:
function 函数名 (参数){
函数体
[返回值] //[] 代表可省略
}
参数列表;
如果没有参数为空 有则用逗号隔开多个参数
调用时有参数没有传参的参数值为undefined
返回值:
在函数体内经过运算后 返回给函数调用者的值
有返回值需要用 return进行返回 但是只能返回一个值
函数的调用:
在任意能写JS代码的地方 都可以调用函数
有参数 传递参数 否则参数列表为空
有返回值可以用变量接收 没有则返回 undefined
匿名函数:
匿名函数是一个没有名称的函数 该类函数会针对某一个
功能而存在 不能独立声明
语法:
function (参数列表){
函数体
}
window.onload = function(){
console.log("hello world!");
}
网页加载的时所执行的内容都可以放在window.onload里
变量的作用域:
什么是变量的作用域?
指的是变量的可访问范围
js的作用域:
局部变量
使用var关键字声明在函数内的变量 就是局部变量
只能在函数内使用
全局变量
在function外声明的变量都是全局变量
声明变量只要不使用var关键字申明的变量都是全局变量
全局变量可以在任意函数内使用
尽量所有的变量都使用var关键字声明
变量的声明提前:
在JS中使用var关键字声明的变量在程序执行之前
都会被预读到所在作用域的顶端 但是赋值还会保留在原位
在变量赋值之前调用 不会报错 值为undefined
数组 - Array:
什么是数组?
以一种用于保存批量数据的数据结构
数组是按照线性结构来保存数据的
除第一元素外每一个元素都有一个“前驱元素”
除最后一个元素外每一个元素都有一个“后驱元素”
创建数组:
数组直接量创建:
var 数组名 = [];
var 数组名 = [1, 2, 3, "a", "b"];
构造函数创建:
var 数组名 = new Array();
var 数组名 = new Array(1, 2, 3, "a", "b");
*var 数组名 = new Array(5); //默认5个 undefined值 下标从5开始
数组的使用;
获取或设置数组的元素值 一律使用数组的下标 范围: 0 ~ arr1.length - 1
var arr1 = [1, 2, 3, 4, 5];
索引:
arr1[3] // 4;
索引超出范围是不会报错的 返回值为:undefined
索引赋值:
arr1[3] = 9 // [1, 2, 3, 9, 5]
赋值也可以超出范围 在已有的最后一个元素和
超出范围元素之间的所有元素都为 empty
如果进行索引取值 结果都为:undefined
获取数组的长度:
属性:
length
用法:
数组名.length
使用场合:
1.可以向数组的尾部插入元素
2.数组的长度
3.配合循环遍历数组中的每个元素
for (var i = 0; i < arr1.length; i++){
console.log(arr1[i])
}
在控制台中打印以下图形
* 4个空格1个*
*** 3个空格3个*
***** 2个空格5个*
******* 1个空格7个*
********* 0个空格9个*
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
var line = 5;
for (var i = 1; i <= line; i++){
var msg = "";
for (var j = 1; j <= line - i; j++){
msg += " ";
}
for (var k = 1; k <= i * 2 -1; k++){
if (k == 1 || k == i * 2 - 1){
msg += "*";
} else {
msg += " ";
}
}
console.log(msg);
}
for (var i = 1; i <= line; i++){
var msg = "";
for (var j = 1; j <= i; j++){
msg += " ";
}
for (var k = 1; k <= (line - i) * 2 -1; k++){
if (k == 1 || k == (line -i) * 2 -1){
msg += "*";
} else {
msg += " ";
}
}
console.log(msg)
}
</script>
</head>
<body>
</body>
</html>