求每個(gè)班級(jí)的男女比率
//1班學(xué)生
var students1 = [{
name:'魏文慶'宠页,
gender:1
},{
name:'蔡劍飛',
gender:1
},{
name:'張賢'肛炮,
gender:0
}
//...
];
//2班同學(xué)
var students2 = [{
name:'陸忠芳'惊橱,
gender:0
},{
name:'嚴(yán)躍杰'蚪腐,
gender:1
},{
name:'胡雪亮',
gender:1
}
//...
];
//求1班的男女比率
var maleCount1 = 0,
femaleCount1 = 0,
length1 = students1.length,
students1,
ratiol;//比率
//遍歷1班的學(xué)生
for(var i = 0l i < length1; i++){
student1 = students1[i];
if (student1.gender === 1){
//如果是男生税朴,男生數(shù)量加1
maleCount1++;
}else{
//否則女生數(shù)量加1
femaleCount1++;
}
}
ratio1 = maleCount1/femaleCount1;
//求2班的男女比率
var maleCount2 = 0,
femaleCount2 = 0,
length2 = students2.length,
students2,
ratiol;//比率
//遍歷2班的學(xué)生
for(var i = 0l i < length2; i++){
student2 = students2[i];
if (student1.gender === 1){
//如果是男生回季,男生數(shù)量加1
maleCount2++;
}else{
//否則女生數(shù)量加1
femaleCount2++;
}
}
ratio2 = maleCount2/femaleCount2;
function ratio(students){
var maleCount = 0,
femaleCount = 0,
length = students.length,
student,
ratio;
for (var i = 0;i < length; i++){
student = students[i];
if(student.gender === 1){
maleCount++;
}else{
femaleCount++;
}
}
ratio = maleCount / femaleCount;
return ratio;
}
var ratio1 = ratio(students1);
var ratio2 = ratio(students2);
var ratio3 = ratio(students3);
...
函數(shù)語(yǔ)法
function add(number0,number1){
var sum = number0 + number1;
return sum;
}
var x = add(2,3);
function 函數(shù)名(形參列表){
執(zhí)行代碼
}
函數(shù)名([實(shí)參列表])
函數(shù)定義
//1.函數(shù)聲明
function add(number0,number1){
var sum = number0 + number1;
return sum;
}
//2.函數(shù)表達(dá)式
var add = function(number0,number1){
var sum = number0 + number1;
return sum;
}
var x = add(4,6);//10
函數(shù)調(diào)用
function add(number0,number1){//number0=2,number1=3把實(shí)參列表復(fù)制給了形參列表
var sum = number0 + number1;//sum = 5
return sum;
}
var x = add(2,3);//x=5
函數(shù)參數(shù)
//實(shí)參數(shù)量少于形參時(shí)
function add(number0,number1){ //number0 = 2,number1 = undefined
var sum = number0 + number1; //
return sum;
}
var x = add(2);//NaN
//實(shí)參數(shù)量多于形參
function add(number0,number1){ //number0 = 2,number1 = 3
var sum = number0 + number1; //
return sum;
}
var x = add(2,3,4);//5
調(diào)用函數(shù)時(shí),有個(gè)隱藏的變量
//參數(shù)不定的代碼求和
add(2,3);//5
add(2,3,4);//9
add(2,3,4,5);//14
function add(){
var length = arguments.length,
sum = 0,
parameter;//參數(shù)
for(var i = 0;i < length;i++){
parameter = arguments[i];
sum = sum + parameter;
}
return sum;
}
//參數(shù)為原始類(lèi)型:值傳遞
function increment(number){
number = number +1正林;
return number;
}
var a = 1;
var x = increment(a);//2
a;//1
//參數(shù)為對(duì)象類(lèi)型:引用傳遞泡一,在函數(shù)中修改對(duì)象會(huì)影響到原對(duì)象
function increment(person){
person.age = person.age + 1;
return person;
}
var jerry = {name:'jerry',age:1};
var x = increment(jerry);//{name:'jerry',age:2}
jerry;//{name:'jerry',age:2}
作用域
var zhoujielun = {
name:"周杰倫",
gender:1
};
//函數(shù)創(chuàng)建了一個(gè)作用域,變量的作用域其實(shí)就是限制了變量起作用的范圍
function class1(){
var zhoujielun = {
name:"周杰倫",
gender:0
};
zhoujielun.name = "周杰";
zhoujielun.gender = 1;
}
class1();
zhoujielun;//{name: "周杰倫", gender: 1}
var zhoujielun = {
name:"周杰倫",
gender:1
};
function class1(){
zhoujielun.name = "周杰";
zhoujielun.gender = 1;
}
class1();
zhoujielun;//{name: "周杰", gender: 1}
作為對(duì)象屬性
var point = {
x:1;
y:1;
move:function(stepX,stepY){
//point.x += stepX;
//point.y += stepY;
this.x += stepX;
this.y += stepY;
//this表示調(diào)用這個(gè)函數(shù)的對(duì)象
}
};
point.move(2,1);//(3,2)
構(gòu)造函數(shù)
function Point(x,y){ //創(chuàng)建一個(gè)空對(duì)象{}
this.x = x; //{x:1}
this.y = y; //{x:1,y:1}
this.move = function(stepX,stepY){ //{x:1,y:1,move:function(stepX,stepY){}}
this.x += stepX;
this.y += stepY;
}
}
//構(gòu)造函數(shù)的返回結(jié)果相當(dāng)于return了this
var point = new Point(1,1);//{x:1,y:1,move:function(stepX,stepY){}}
var point2 = new Point(2,2);//{x:2,y:2,move:function(stepX,stepY){}}
var point3 = new Point(3,3);//{x:3,y:3,move:function(stepX,stepY){}}
//只需要?jiǎng)?chuàng)建一個(gè)move方法公用
原型
function Point(x,y){
this.x = x;
this.y = y;
}
Point.prototype.move = function(stepX,stepY){
this.x += stepX;
this.y += stepY;
};
var point = new Point(1,1); //{x:1,y:1}
point.move(2,1);//{x:3,y:2} 構(gòu)造出來(lái)的這個(gè)對(duì)象肯定是有個(gè)隱藏的屬性觅廓,指向它公共的地方鼻忠,指向它構(gòu)造函數(shù)的原型屬性