js小结(一)

231 阅读1分钟

一 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])
}