8.27js学习day05

一、构造函数
function Dog(){
this.name=‘狗剩’;
//var name = ‘狗剩’ 作用域是函数内部
console.log(this.name);
}
var result = Dog();//普通函数的使用
console.log(‘result’,result);//undefined
var d1=new Dog();//构造函数的使用
console.log(‘d1’,d1);
console.log(new Dog(),new Dog(),new Dog());
function Cat(name){
//this.name=arguments[‘0’];
this.name=name;
}
var c1=new Cat(‘小花’);//c1.name=‘小花’
var c2=new Cat(‘小白’);//c2.name=‘小白’
console.log(c1,c2);
console.log(c1.toString());

二、函数的应用
//1.作为参数
//var sayName=function(){}
//function(a,b,fn)
function print(a,b,c){
console.log(a,b);
c();
}
print(100,{name:‘zs’},function(){console.log(‘sss’);});
var sayName=function(){
console.log(‘say’);
console.log(‘name’);
}
print(100,true,sayName);
//1.1参数的应用:对象成员去赋值
//构造函数:Bird name/color/eat/fly
function Bird(name,color,feat,ffly){
this.name=name;
this.color=color;
this.eat=feat;
this.fly=ffly;
}
function fly(){
console.log(“I can fly”);
}
var b1=new Bird(‘boli’,‘red’,function(){console.log(‘妈妈喂饭’)},fly);
//1.2参数的应用:绑定监听函数
//button.addEventLinstner(‘click’,function(){弹出模态框})
function bind(str,fn){
if(str==‘click’){
console.log(“浏览器与DOM节点this、事件的捕获:鼠标单击操作”);
}else if(str=“mouseover”){
console.log(“浏览器与DOM节点this、事件的捕获:鼠标移入操作”);

}else if(str="mouseout"){
	console.log("浏览器与DOM节点this、事件的捕获:鼠标移出操作"); 

}else{
	return ;
}
fn();

}
var button={bind};
button.bind(‘click’,function(){console.log(‘弹出模态框’);});
//2.作为返回值
function foo(){
return function(){
console.log(‘匿名函数’);
}
}
function boo(){
var sayName=function(){
console.log(this.name);
}
return sayName;
}
var f=foo();
var b=boo();
f();foo()();
b();
boo()();

三、函数的调用
1.//函数声明
function add(a,b){
return a+b;
}
//函数表达式
var sayName=function(){
console.log(this.name);
}
//文件内的全局范围内被调用
console.log(add(1,2));
sayName();
//在对象内,对象成员
var p1={
name:‘zs’,
//sayName:sayName
sayName
}
p1.sayName();//zs
var p2={name:‘ls’};

2.//call与apply的功能与区别 反建立函数与对象之间的关系
function print(color1,color2){
console.log(this.price,color1,color2);
}
print(‘red’,‘green’);
print.call(this,‘red’,‘green’,‘blue’);
print.apply(this,[‘red’,‘green’,‘blue’]);
var p1={name:‘连衣裙’,price:100};
var p2={name:‘笔记本’,price:2000,print};
print.call(p1,‘red’,‘green’);
print.apply(p1,[‘red’,‘green’]);
p2.print(‘red’);
print.call(p2,‘red’);
print.apply(p2,[‘red’]);
print.apply(p2,[]);
print.apply(p2);
print.call(p2);

四、函数内存
function sayName(){
console.log(this.name);
}
var p1={name:‘zs’};//var p1=new Object();p1.name=‘zs’;
var p2={name:‘ls’,sayName};

console.log(sayName.prototype.proto === Object.prototype);
console.log(sayName.prototype.toString());

五、数组的定义
//1.字面量
var logo=[‘ysld.png’,‘lankou.png’,‘skii.png’];
var arr1=[100,true,200.2,‘lankou’,{name:‘zs’}];
console.log(logo,arr1);
console.log(typeof logo,typeof arr1);

//2.构造函数 Array Array.prototype
var strs=new Array();// var strs=[];
console.log(typeof strs,strs);//对象 空数组

//3.数组的使用:索引下标、房间号的使用
console.log(logo[0],logo[1],logo[2]);
console.log(logo[-10],logo[3],logo[10]);//undefined
console.log(logo[200.2],logo[false],logo[‘abc’]);//undefined
logo[0] = ‘雅诗兰黛’;
logo[3] = ‘百草’;
console.log(logo);
var strs=new Array();
console.log(strs.length);//0
strs[0]=‘基因’;
strs[1]=‘编辑’;
console.log(strs.length)//2
strs[4]=‘序列’;
console.log(strs.length);//5
strs[6]=‘测试’;
console.log(strs,strs[5],strs.length);//7

六、流程控制语句
//for
for(var i=0;i<strs.length;i++){//i<=strs.length-1
var item=strs[i];
console.log(i,item);
}
//while
var i=0;
while(i<strs.length){
console.log(i,strs[i]);
i++;
}
//do…while
var i=0;
do{
console.log(i,strs[i]);
i++;
}while(i<strs.length);
//for…in 进行迭代、判断结束
for(var i in strs){
console.log(strs[i]);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值