JS
1.JS基本数据类型
Number String boolean null undefined Object
null类型进行typeof操作符后,结果是object,原因在于,null类型被当做一个空对象引用。
2.typeof的返回值类型
- number:NaN
- boolean
- string
- undefined:undefined 不存在的变量
- object:对象,数组,null
- Function:Array Date
- symbol:typeof Symbol() // ES6提供的新的类型
3.操作数组的方法
- shift:从数组中把第一个元素删除,并返回这个元素的值。
- unshift:在数组的开头添加一个或更多元素,并返回新的长度
- push:在数组的末尾添加元素,并返回新的长度
- pop:把数组的最后一个元素删除,并返回该元素的值
- slice:读取数组指定的元素,不会对原数组进行修改
- splice:操作数组指定的元素,会修改原数组,返回被删除的元素
- concat reverse join split sort
4.操作字符串的方法
- charAt(index):返回指定索引处的字符串
- concat(str1,str2,…):连接多个字符串,返回连接后的字符串的副本
- indexOf(str):返回str在父串中第一次出现的位置,若没有则返回-1
- match(regex):搜索字符串,并返回正则表达式的所有匹配
- replace(str1,str2):str1也可以为正则表达式,用str2替换str1
- substr(start,length):从字符索引start的位置开始,返回长度为length的子串
- substring(from,to):返回字符索引在from和to(不含)之间的子串
- search(regex):基于正则表达式搜索字符串,并返回第一个匹配的位置
- valueOf():返回原始字符串值
5.JS有哪些内置对象
- 数据封装类对象:Object、Array、Boolean、Number、String
- 其他对象:Function、Arguments、Math、Date、RegExp、Error
- ES6新增对象:Symbol、Map、Set、Promises、Proxy、Reflect
6.函数声明和函数表达式的区别
函数声明有变量提升,现代浏览器不会对if语句中的函数声明进行提升
函数声明的自执行必用()将函数声明括起来后自执行,函数表达式可以直接自执行
7.JavaScript的原型,原型链?有什么特点?
-
每一个js对象(除了null)都有_proto_内部属性,这个属性会指向该对象的原型
-
js中每个函数除了_proto_之外,还预置了prototype属性,当函数对象作为构造函数创建实例时,该prototype属性值将被作为实例对象的原型_proto_
-
每个原型都有一个 constructor 属性指向关联的构造函数 实例原型指向构造函数
-
prototype属性的作用就是包含可以由特定类型的所有实例共享的属性和方法,也就是让该函数所实例化的对象们都可以找到公用的属性和方法
Person === Person.prototype.constructor
person.proto === Person.prototype
Object.prototype.proto === null