考考你JS 基础牢补牢

107 阅读2分钟

前言:

就不说数据类型了,上几个案例,一起看下能答对几个

简介:

这是对js的考验,数据类型考古之前博客,因为挺重要,写的太详细,所以这里只说例子测试底子 

 

直接开始

  • 纯干货 
  let b = 6;
    console.log(b += 1);//7  相等于b = 6 + 1
    console.log(c+=1);// 相等于 c=c+1
 // 在js中true默认是1 false为0 null代表空对象与undefined相同
      console.log(true > 0);//true 1>0
      console.log(true > 1);//false 1>1 
      console.log(null == undefined);//true  null代表空对象与undefined相同
      console.log(null === undefined);//false 全等会比较类型与值
      console.log("null" == "undefined");//false  字符串不相同
      console.log(null);//null 
      console.log(typeof null);//object   null代表空对象
      console.log(typeof undefined);//undefined 
      console.log({}=={});//false 引用数据直接比较为false
      console.log({}==={});//false 引用数据直接比较为false
    console.log(1 == 1);// true
    console.log(1 == "1");// true  隐式转换与数值类型比较
    console.log(1 == "1px");//false  
    console.log(1 == true);//true  js中true为1 flase为0
    console.log([]==false)// true  []表示false fasle为0
    console.log([]==0)// true   []表示false 0表示fasle
    console.log(100 == false);// false
    console.log(188 == "188");// true 不比较类型不是===严格等于
    console.log(false == " ");// true  " "空字符串为fasle
    console.log({}==[])// false //空数组不等于空对象
    console.log({}=={})// false //引用数据类型地址不相等
    console.log([]=="")// true false==false
    console.log([]==0)// true  false==0
   
    console.log(![] == [])// true  先比较在取反 对象先转字符串再转数字,布尔转数字; 数字比数字
    console.log([]==[])// false 引用数据类型比较的空间地址
    console.log(![]==false);//true  ![]typeof检测是boolean boolean==false true
    console.log({a:1}=="[object Object]")// true
    console.log("12px" == 12);
   绝对比较; 只要数据类型不一样,那么返回falseconsole.log(1 === 1);// true
   console.log(1 === true);// false
   console.log(1 === "1");// false

Es6 set例子 

  • new Set() es6方法,特点值不会重复,(用最简单易懂的话解说)
    //定义一个测试1数组
    let textArr1 = [1, 2, 3, 4, 5, 4, 2, 3];
    //因为测试1是数组,所以用数组包裹、将new Set()用扩展运算符插入
    let textArr2 = [...new Set(textArr1)];
    //得到的是去重后的数组1 2 3  4 5
    console.log(textArr2);

Es6 map例子 

  • xxx.map()  new Map() es6 快速查找指定值,不论数据量,速度超快
 let arr = [
        {
            name: '张坤',
            age: 20
        }, {
            name: '张方',
            age: 22
        }, {
            name: '张无极',
            age: 80
        }, {
            name: '张三丰',
            age: 120
        },
    ]
    let arr1 = arr.map(v => v.age === 80);
    console.log(arr1);//(4) [false, false, true, false]
    
  //  如果用findIndex不存在返回-1,存在返回下标,
  //  find存在返回值不存在返回undefined 
  // 过滤
    let arr2 = arr.filter(v => v.age === 80);
    console.log(arr2);
//     [{…}]
// 0: {name: "张无极", age: 80}
// length: 1
// __proto__: Array(0)

 

  

   Life is just a sum of our choices.
生活,是由我们每一个选择构成的。