面试题-----JavaScript高级部分

JavaScript高级面试题

1、 值类型与引用类型的差别

  • 基本类型在内存中占据固定大小的空间,因此被保存在栈内存中;

  • 从一个变量向另一个变量复制基本类型的值,复制的是值的副本;

  • 引用类型的值是对象,保存在堆内存;

  • 包含引用类型值的变量实际上包含的并不是对象本身,而是一个指向该对象的指针;

  • 从一个变量向另一个变量复制引用类型的值的时候,复制是引用指针,因此两个变量最终都指向同一个对象。
    例如:

    		//值类型
    		var val1=10;
    		var val2=val1;
    		val2=12;
    		console.log("val1值为:"+val1);
    		console.log("val2值为:"+val2);
    		
    		//引用类型
    		var zs={
    			name:"张三",
    			age:23,
    			work:"开除"
    		}
    		var ls=zs;
    		ls.name="lisi";
    		console.log("zs.name值为:"+zs.name);
    		console.log("zs.name值为:"+ls.name);
    

    结果:
    在这里插入图片描述

2、面向对象与面向过程

  • 面向过程就是亲力亲为,事无巨细,面面俱到,步步紧跟,有条不紊;

  • 面向对象就是找一个对象,指挥得结果;

  • 面向对象将执行者转变成指挥者;

  • 面向对象不是面向过程的替代,而是面向过程的封装。
    例如:
    面向过程:

    //面想过程:
    	var sty1={
    		name:"小军",
    		score:550
    	}
    	var sty2={
    		name:"小李",
    		score:670
    	}
    	priScore(sty1);
    	priScore(sty2);
    	//创建一个函数输出每一个变量的内容,每一个变量调用这个函数就会输出变量所对应的内容
    	function priScore(stud){
    		console.log("姓名:"+stud.name+"\n成绩:"+stud.score);
    	}
    

    在这里插入图片描述
    面向对象:

    //面向对象
    	/*
    		创建一个对象,
    		作用:计算总人数,男生总人数,女生总人数
    	*/
    	var tongJi={
    		total:0,//总人数
    		boyTotal:0,
    		girlTotal:0,
    		shuchuTotal:function(){
    		console.log("总人数"+this.total+"\n男生总人数"+this.boyTotal+"\n女生总人数"+this.girlTotal);
    		}
    	} 		
    	//创建变量的时候调用函数Student,在调用里面shuchuContent()属性就可以输出;
    	var student3=new Student("小明",666,"男")
    	var student4=new Student("小张",555,"女")
    	student3.shuchuContent();
    	student4.shuchuContent();
    	tongJi.shuchuTotal();
    			
    	/*
    		创建一个面向对象函数;
    		功能:即可以根据参数添加,也可以调用里面的属性。
    	*/
    	function Student(name,score,sex){
    		tongJi.total++;
    		this.name=name;
    		this.score=score;
    		this.sex=sex;
    		if(sex=="男"){
    			tongJi.boyTotal++;
    		}
    		else if(sex=="女"){
    			tongJi.girlTotal++;
    		}
    		this.shuchuContent=function(){
    			console.log("姓名:"+this.name+"\n成绩:"+this.score);
    		}
    	}
    

    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值