-
深拷贝的三种方式
1,JSON.parse(JSON.stringjfy(obj))
缺点:取不到undefined的key,如果对象里有函数,函数无法被拷贝下来,无法拷贝对象原型链中的属性和方法
2,Object.assign({},obj)
缺点:不是真正的深拷贝,属性是对象的时候,对象还是浅拷贝
3,递归方式实现深拷贝
查看全部 -
数据类型
基本数据类型:Undefined、Null、Boolean、Number、String
引用数据类型:Object
typeof
检测null时会返回object,
因为null类型的机器码全是0,
而typeof检测到后三位全是0的时候,会返回object
检测到object类型之后,会再次调用内部的一个[[call]]函数,如果有则返回function,否则返回object
let str = "asdf";
typeof返回string,栈类型存储
let str = new String("asdf")
typeof 返回object,堆类型存储
instanceof
通过原型链来检测,返回boolean值,true false
A instanceof B
A是否是B的实例对象
查看全部 -
浮动数相加不准确问题在于计算机会把浮点数转成二进制 超过计算机存储长度之后 会舍掉 导致转换回来之后数字不精确
// 省略小数点2位之后数字
console.log(parseFloat(0.1+0.2).toFixed(2));
//转成整数类型
function add(m1,m2){
var m=Math.pow(10,2);
return (m1*m+m2*m)/m
}
console.log(add(0.1,0.2));
查看全部 -
NaN undefined 0 null "" 会转换成false
其余都是true
查看全部 -
基本数据(简单数据类型 值类型)类型存放在栈中,引用数据类型(复杂数据类型 对象类型)的数据存放在堆中,但是引用数据类型的地址存放在栈中
查看全部 -
typeof检测引用类型function的时候 会返回function 而不是object,这是在设计js的时候检测引用类型,会检查是否包含[ [call] ]方法,包含的会返回function 不包含的返回object
查看全部 -
typeof检查null的时候 返回的数据类型是根据机器码的后三位而决定的 当检测到null的时候返回000 =>object
查看全部 -
听不懂听不懂听不懂查看全部
-
function instanceof(A,B){ let p=A while(p){ if(p===B.prototype){ return true } p=p._proto_ } return false }
typeof 返回的是数据的类型,instanceof返回的是布尔值
查看全部 -
遍历赋值 -> 简单循环赋值是浅拷贝,递归循环判断类型赋值:是深拷贝
Object.create() -> 简单循环赋值是浅拷贝,递归循环判断类型赋值:是深拷贝
JSON.parse()和JSON.stringify() ->深拷贝
深浅拷贝:假设B复制了A,当修改A时,看B是否发生变化,B变了,说明时浅拷贝;B没变,就是深拷贝
查看全部 -
接电话大家都会讲得好讲得好讲得好查看全部
-
讲得好讲得好讲得好讲得好查看全部
-
老师讲得好老师讲得好老师讲得好
查看全部 -
老师讲得好老师讲得好
查看全部 -
老师讲得好
查看全部 -
几点回家的话
查看全部 -
讲得好
查看全部 -
vue html css js 算法和数据结构 设计模式。万变不离其宗。 js js js
查看全部
举报