今日面试总结
1、es6新增的object方法
- Object.create() 创建一个新对象
- Object.is(val1, val2) 用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。
- Object.assign(target, source) 不是深拷贝
这种方法对于一层对象来说是没有问题的,但是如果对象的属性对应的还是对象或者数组时,就不能实现了
2、es6新增的string方法
- for…of 遍历字符串
let str="wbiokr";
for(let s of str){
console.log(s)
}
//结果:w, b, i, o, k, r
-
string.includes(s,i)
参数1为需要查询字符(串),参数2为查询的起始位置,返回布尔值,而indexOf返回查询的位置。 -
string.startsWith(s,i)
参数1为需要查询字符(串),参数2为查询的起始位置,返回布尔值,表示是否字符(串)位于string的头部位置。 -
string.endWith()
3、es6数组的方法
4、实现文字过长时的…
text-overflow: ellipsis;
white-space: nowrap; // 不换行
overflow: hidden;
5、遍历对象的key和value
object = {"name":"kejin",
"age":"18"}
for(var index in object){
console.log(index);
console.log(object[index]);
}
- Object.keys() 返回值:对象的所有可枚举属性的字符串数组
- Object.values() 返回值:对象的所有可枚举属性的值得数组
- Object.entries() 返回值:返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值对数组。
var obj = { foo: 'bar', baz: 42 };
Object.entries(obj)
// [ ["foo", "bar"], ["baz", 42] ]
6、Set和Map
Set类似于数组,但不可重复
Map与对象类似,都是键值对组成,Map的键可以是任何类型 数字,字符串,布尔类型,undefined 甚至 NaN。
7、hash和history的区别
hash :即地址栏 URL 中的 # 符号
它的特点在于:hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。
history
利用了 HTML5 History 中新增的 pushState() 和 replaceState() 方法。
这两个方法们提供了对历史记录进行修改的功能。