一 for循环
- 双重for循环,外层循环一次,内层for循环要全部执行,之后再循环外层循环
- continue 关键字用于立即跳出本次循环,继续下一次循环(本次循环体中continue之后的代码不会执行)
- break 关键字用于跳出循环
- continue 相当于吃包子,吃到了某个包子有虫子,把这个包子扔掉不在吃了,接着吃下一个包子。
- break 相当与某个包子有虫子,后面的包子都不再吃了。
for(var i =1;i<=5; i++){ if(i==3){ continue } console.log(i) } //i 是 1 2 4 5
for循环案例
1.求 1-100之间所有数的总和与平均值
var sum =0;
var average =0;
for(var i =1;i<=100;i++){
sum+=i
}
average = sum/100
2,求1-100之间所有奇数与偶数的和
var odd = 0;
var even = 0;
for(var i=1;i<=100;i++){
if(i % 2 ==0){
even += i
}else{
odd+=i
}
}
console.log(even,odd)
//2550 2500
3. 求100以内7的倍数的总和 var sum = 0; for(var i =0;i<=100;i++){ if (i % 7 ==0){ sum +=i; } } console.log(sum)
4.使用for循环打印矩形
★★★★★
★★★★★
★★★★★
★★★★★
//使用for循环,外层控制行数,内层控制列数
var str ='';
for(var i =1; i<=4;i++){
for(var j =1;j<=5;j++){
str+='★'
}
str += '\n'//换行符
}
5.使用for循环打印直角三角形
★
★★
★★★
★★★★
★★★★★
var str ='';
for(var i =1;i<=5;i++){
for(j=1;j<=i;j++){
str+='★'
}
str+='\n'
}
console.log(str)
6.打印倒的直角三角形
★★★★★
★★★★
★★★
★★
★
var str ='';
for(var i =1;i<=5;i++){
for(j=i;j<=5;j++){
str+='★'
}
str+='\n'
}
console.log(str)
7.打印9*9乘法表
var str = '';
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
//1*2=2
str+= j+'×'+i + '=' + i*j+'\t'
}
str+='\n'
}
console.log(str)
8.求整数1-100的累加值,但要求跳过所有个位为3的数(使用continue)
var sum =0;
for(i=0;i<=100;i++){
if(i %10 ==3){ continue}
sum+=i
}
console.log(sum)
二 预解析
全局变量
在全局作用域下的变量,在全局下都可以使用
局部变量
在函数里面的变量,函数的形参也是局部变量
注意:如果在函数内部,内有声明直接赋值的也是全局变量
function fun(){
var num =10;// num 是局部变量,只能在函数内部使用
num2 =20 //num2 是全局变量 下
}
变量提升
在浏览器解析代码时,带var 和function 的存在变量提升
var a=10;
f1();
function f1(){
var b =9;
console.log(a)
console.log(b)
var a = '123'
}
//以上代码解析相当与
var a
function f1(){
var b
var a
b =9;
console.log(a)// undefined
console.log(b)//9
a = '123'
}
f1();
f1();
console.log(c)
con.sole.log(b)
console.log(a)
function f1(){
var a= b=c =9;
console.log(a)
console.log(b)
console.log(c)
}
//以上代码相当于
b=9;
c=9
function f1(){
var a
a=9
console.log(a)//9
console.log(b)//9
console.log(c)//9
}
f1();
console.log(c)//9
con.sole.log(b)//9
console.log(a)// a is not defined
三 数组
1.将数组['red','green','blue',"pink"]转发为字符串,并用|分割 输出 'red|green|blue|pink|'
var arr=['red','green','blue',"pink"];
var str='';
for(var i =0;i<arr.length;i++){
str+=arr[i]+'|'
}
console.log(str)
2. 将数组[2,5,100,44,22]中大于10的筛选出来 //巧妙的使用newArr.length ,length会随着数组长度增加自动改变 var arr1=[2,5,100,44,22]; var newArr = []; for(var i =0;i<arr1.length;i++){ if(arr1i]>10){ newArr[newArr.length]=arr1[i] } } console.log(newArr)
四 对象
创建对象的三种方式
- 使用字面量 var obj ={};
- 使用 new Object() var obj = new Object()// 创建了一个空对象 obj.name ='dog'; obg.sex = 'nan'
- 利用构造函数
function Star(name,age,sex){
this.name = 'dog';//x向对象里面添加东西 this 指向hh 这个对象
this.sex= 'nan'
}
var ldh = new Star('pink',18,'nan')//hh 是一个空对象 hh 是Star的一个实例
var zjl = new Star('hot',19 'girl')
console.log(hh.name)
- 对象是一组无序的属性和方法的集合
- 是Object数据类型
- 构造函数泛指某一打雷
- 对象特指某一特定的事物
对象的遍历
//使用 for (变量 in 对象){}
var obj = {
name : 'dog',
age:18,
sex:'男'
}
for (var key in obj){
console.log(obj[key])
}