前端面试知识点
JS数据类型
基本数据类型(原始类型):代表创建之后独一无二并且不可变的数据类型
JS的数据类型包括基本数据类型(原始类型)和引用数据类型(对象类型)
其中基本数据类型包括:
string
number
1. 整数;
2. 浮点数:最高精度17位(浮点数的计算会产生误差,例如0.1+0.2不等于0.3)
3. NaN(not a number):非数字类型,任何涉及NaN的操i做都会返回NaN且NaN不等于NaN
boolean
null
undefined
symbol (ES6)
基础数据类型中null和undefined 的区别:
null表示没有对象,此处不该有值
undefinded表示 缺少值 此处应该有值 但是还是没有定义
转为数值也不同 nuill 转为数值为0 undefined转为数值为NaN
什么时候有null:
1. 作为函数的参数,表示该函数的参数不是对象
2. 作为对象原型链的终点 可以打印Object.getPrototypeOf(Object.prototype) 是 null
什么时候出现undefined:
1. 变量被声明了,但是没有赋值
2. 调用函数时。应该提供的参数没有提供
3. 对象没有赋值的属性 获取时为undefined
4. 函数没有返回值时,默认返回 undef
引用数据类型
Object(Array function Object)
基础数据与引用数据区别
1. 存储分配:
基本数据类型存储在栈中
引用数据数据存储在堆中(访问变量需要引用地址---指针)
2. 不同的存储机制也带来了不同的访问机制:
不可以直接访问堆内存空间的位置以及直接操作堆内存空间,只能操作对象在栈内存中的引用地址
基本数据类型可以直接访问,引用数据类型访问医用地址,根据引用地址找到堆中实体
3. 复制变量的不同:
基本数据类型:var a=1, var b = a 将原始值 赋值给新的变量
引用数据类型:var a={name: '张三'} var b = a 将引用地址赋值给新的变量