目录
一、数组
什么是数组
数组是一种特殊的变量,数组也是储存值的,功能和对象类似,它能够一次存放一个以上的值。
对象利用属性操作数据,数组通过下标操作数据,数组内的元素可以是任意类型。
创建数组
使用Array内置函数创建数组
var array-name = [item1, item2, ...];
可向数组中添加数据,数组名[下标]=值,下标从0开始的
arr[0] = "你";
console.log(arr);
二、循环
while循环
while 循环会一直循环代码块,只要指定的条件为 true。
while(表达式){
代码块
}
猜数游戏
var r = Math.floor(Math.random()*100);
var a = parseInt(prompt("请输入0-100的整数"));
while (a!=r){
if(a<r){
alert("猜小了");
a = parseInt(prompt("请再输入一个数字"))/1;
}
else if(a>r){
alert("猜大了");
a = parseInt(prompt("请再输入一个数字"))/1;
}
}
alert("猜对了");
for循环
for(初始值;控制条件;语句追加){
语句块
}
九九乘法表
for(var a=1;a<=9;a++){
for(var b=1;b<=a;b++){
document.write(`${b}*${a}=${b*a}`);
document.write('    ')
}
document.write('<br>');
}
for-in和for-of循环
for-in:循环遍历对象的属性
- for ... in 循环返回的值都是数据结构的 键值名。
- 遍历对象返回的对象的key值,遍历数组返回的数组的下标(key)。
- for ... in 循环不仅可以遍历数字键名,还会遍历原型上的值和手动添加的其他键。
- 特别情况下, for ... in 循环会以看起来任意的顺序遍历键名
for-of:取出数组中的每一项
- for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名
- 一个数据结构只要部署了Symbol.iterator属性, 就被视为具有 iterator接口, 就可以使用 for of循环。
- for of 不同与 forEach, 它可以与 break、continue和return 配合使用,也就是说 for of 循环可以随时退出循环。
- 提供了遍历所有数据结构的统一接口
break和continue
break一般用于跳出循环会放在循环和switch中
var a=[1,2,3,4];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
if(i==2){
break;
}
}
continue用于跳出循环中的一次迭代
var b=[1,2,3,4];
for(var d=0;d<arr.length;d++){
if(d==2){
continue;
}
console.log(arr[d]);
}
三、声明提升
JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。
//变量声明提升,只提升声明部分
console.log(a);
var a =123;
console.log(a);
//函数声明提升,提升函数整体,一处声明,处处调用
fn();
function fn(){
console.log(111);
}
fn();
四、作用域
程序源代码定义的某个变量的区域
全局作用域:
- 最外层的一个执行环境,web浏览器中,认为全局作用域是window对象,全局声明的变量或函数会作为window的属性和方法
- 在全局声明的变量或函数具有全局作用域
- 全局变量或函数直到退出应用或关闭网页才会被销毁
局部作用域(函数作用域):
- 函数作用域中所有代码执行完毕之后,其中的变量被销毁
- 没有声明就赋值的变量,浏览器会在声明一个全局变量
- 函数内部可以使用外面的变量,外面不能使用里面的变量
- 函数作用域和创建有关,与调用无关