js基础面试题

一、数据类型

什么是引用类型,值类型,两者的区别?

  • 值类型key与value存储在栈中(量小)
  • 引用类型在栈存储的引用地址,在堆中存储是数据(量大)
  • 把引用类型赋值给一个变量,是把变量的引用地址指向引用类型堆中地址

值类型有哪些?

  • String字符
  • Number数字
  • Boolean布尔
  • undefined未定义
  • null空(特殊)
  • Symbol符号

哪些引用类型?

  • Object对象
  • Array数字
  • Function 函数
  • Map图
  • Set集合

判断数据类型?

  • typeof 类型
  • instanceof 实例
  • constructor 构造函数
  • Array.isArray() 是否为数组
  • Object.prototype.toString.call(obj) 原型
js判断数据类型
		01 typeof  02 instanceOf  03 constructor  04 prototype.toString  isArray
		typeof只能判断 是否为值类型或者引用类型,引用类型除函数都返回的是 object
		String "abc" typeof "abc"       	string
		Number 123   typeof 123			number
		Boolean true typeof true			boolean
		undefined	typeof undefine     undefined
		null			typeof null			object(null 空指针)
		function     typof function(){}	function
		Object		tyoeof {}			object
		array		typeof []			obejct

二、浅拷贝

  • 扩展{…obj}
  • for遍历
  • Object.assgin()
// js 拷贝一个对象 
			// 浅拷贝,只拷贝值类型,引用类型数据还是指向地址
			var  obj1 = {name:"mumu",age:18,friend:["小红","小绿",{name:"小蓝",job:"teacher"}]};
			// 01 ES6扩展,02 for循环 03 Object.assgin
			var  obj2 = {...obj1}; //浅拷贝(如果属性值是引用类型,两个变量的属性都指向同一内存地址)
			// 02 循环
			var obj3 = {};
			for(var k in obj1){
				obj3[k] = obj1[k];
			}
			// 03 Object.assgin 把参数的两个对象进行合并,属性相同后面覆盖前面
			var obj4 = Object.assign(obj1,{});

三、深拷贝

  • JSON.parse(JSON.stringify(数据)) json数据类只支持 布尔,字符串,数字 null,undefined array object 会忽略函数 等其他类型数据
  • 通过判断类型 递归深拷贝 递归就是函数调用自己一定要有结束条件</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值