对象新增方法

  1. //判断对象是否相同
  2. Object.is();
  3. let obj1 = {
  4. myname:'zhangsan'
  5. }
  6. let obj2=obj1;
  7. console.log(obj1===obj2); //ture
  8. console.log(Object.is(obj1,obj1)); //ture
  9. NaN===NaN //false
  10. Object.is(NaN,NaN); //ture
  1. //合并2个或多个对象
  2. //浅拷贝
  3. let obj1 = {
  4. name:'zhangsan'
  5. }
  6. let obj2 = {
  7. age:20,
  8. //相同的键名会覆盖
  9. }
  10. let obj3 = {
  11. height:'178com'
  12. }
  13. let res = Object.assign(obj1,obj2,obj3);
  14. console.log(res);
  15. //{name: 'zhangsan', age: 20, height: '178com'}
  16. //之后修改会覆盖
  1. //es6 判断某个属性是否是对象的自身属性
  2. obj.hasOwnProperty('key')//es5方法
  3. let obj = {
  4. myname'zhangsan',
  5. age:20
  6. }
  7. console.log(Object.hasOwn(obj,'age'))
  8. //ture
  1. //获取对象的所有键名,或者键值,放在一个数组里
  2. let obj = {
  3. myname'zhangsan',
  4. sge:20
  5. }
  6. let keys=Object.keys(obj);
  7. //获取键名放入数组
  8. console.log(keys);//['myname', 'sge']
  9. let values=Object.values(obj);
  10. //获取键值放入数组
  11. console.log(vallues);//['zhangsan', 20]
  1. //可以把对象变成不可配置对象
  2. let obj = {
  3. name'zhangsan',
  4. age:20
  5. }
  6. Object.seal(obj);
  7. obj.name='lisi'
  8. console.log(obj);
  9. //输出lisi,可修改已经有的属性,但是不能增加
  10. Object.freezeobj);
  11. //冻结,不可修改,不可增加

math

  1. //ES5方法
  2. let res = Math.pow(2,3);
  3. console.log(res);
  4. //ES6 方法
  5. let res = 2**3
  6. console.log(res);
  1. //2进制 0b开头
  2. let num = 0b11;
  3. console.log(num);
  4. //八进制 0o开头
  5. let num = 07;
  6. let num = 0o6;
  7. console.log(num);
  8. //16进制 0x开头
  9. let num = 0xff;
  10. console.log(num);

Math新增方法

  1. //去掉小数部分
  2. let num = 3.14;
  3. var res Math.trunc(num);
  4. console.log(res);
  1. //判断一个数是正数 负数还是0,如果是正数返还1,负数-1 0=0
  2. var num = 0;
  3. console.log(Math.sign(num));
  1. //求平方根;
  2. console.log(Math.sqrt(9));
  3. //立方根
  4. console.log(Math.cbrt(9));
  5. //所有参数平方和的平方根
  6. console.log(Math.hypot(9));

Number方法

  1. //判断某个数是否是有限的数
  2. var res = Number.isFinite(5);
  3. var res = Number.isFinite(Infinity);
  4. var num = 2**1024;
  1. //判断某个数字是否是NaN
  2. //js里jsNaN 方法:判断某个字符 是不是 不是一个数字
  3. var num = 'fsdsjh'
  4. var (!isNaN(num)){
  5. console.log('是一个数字');
  6. }else{
  7. console.log('不是一个数字');
  8. }
  1. //判断某个数是否是整数
  2. let num = 1.1;
  3. console.log(Number.isInteger(num));
  4. console.log(Number.parseInt === parseInt);

set

  1. 是一个集合
  2. set数据里的值不能重复
  3. 是对象的键名
  4. 可以是任意类型 ```javascript //创建set let set = new Set(); set.add(1); console.log(set); //返回一个伪数组{1}

//统计长度 set.size //添加键值 set.add() //删除 delete 删除指定元素 set.delete() //清除 set.clear(删除所有元素)

//has判断set 是否有某个值 let set = new Set([1,2,3,4]); console.log(set.has(6));

//数组去重 let arr [1,2,3,2,3,2,21,3]; let set = new Set(arr); let newarr = […set];

  1. <a name="nlzbH"></a>
  2. ## map
  3. ```javascript
  4. //创建一个map
  5. let map = new Map();
  6. map.set('name','张三');
  7. map.set({age:20},'hello');
  8. console.log(map);
  9. //{'name' => '张三', {…} => 'hello'}
  10. //直接创建map结构
  11. let map = new Map([['name','zhangsan'],['age',20],['height','177cm']]);
  12. console.log(map);
  13. //map里的方法
  14. //长度 map.size
  15. //删除 map.delete(键名)
  16. //是否存在某个元素 map.has
  17. //通过键名获取键值 get
  18. let map = new Map([["name","张三"],["age",20],["height","178cm"]]);
  19. let res = map.get("age");
  20. console.log(res); //20

迭代器

  1. // for ...of ... ES6语法
  2. let arr = ["张三","李四","王五"];
  3. console.log(arr);
  4. for(let val of arr){
  5. console.log(val);
  6. }
  7. let obj = {
  8. name:"张三",
  9. age:20
  10. }
  11. console.log(obj);
  12. for(let val of obj){
  13. console.log(val);
  14. } //循环对象会报错
  15. let arr = ["张三","李四","王五"];
  16. //获取迭代器
  17. function myiterator(arr){
  18. let num = 0;
  19. return {
  20. next(){
  21. return{
  22. value:arr[num++],
  23. done:num>arr.length?true:false
  24. }
  25. }
  26. }
  27. }
  28. let res = myiterator(arr);
  29. console.log( res.next());
  30. console.log( res.next());
  31. console.log( res.next());
  32. console.log( res.next());

跨页面传参

  1. let obj {
  2. name:'zhangsan',
  3. age:20,
  4. height:'177cm'
  5. }
  6. function o2s(obj){
  7. let keys = Object.keys(obj);
  8. let values = Object.values(obj);
  9. var arr = keys.map((key,index)=>{
  10. return `${key}=${values[index]}`;
  11. })
  12. // console.log(arr);
  13. return arr.join("&");
  14. }
  15. documents.querySelector('button').onclick=function(){
  16. //跳转的同时,携带obj参数
  17. window.location.href=`b.html?${o2s(obj)}`;
  18. }
  1. // 接收 obj参数
  2. let str = window.location.search.substr(1);
  3. let arr = str.split("&");
  4. let obj = {};
  5. arr.forEach(item=>{
  6. let line = item.split("=");
  7. obj[line[0]] = line[1];
  8. })
  9. console.log(obj);