javascript数据类型

        // 1.0数据类型有几种
            // 值类型(基本数据类型):String Number Boolean  undefined Symbol
            // 引用数据类型:Object Function Array null
// 2.0typeof输出什么
可以设别所有的值类型
console.log(typeof(1)) //number console.log(typeof(NaN)) //number console.log(typeof('12')) //string console.log(typeof(true)) //boolean console.log(typeof(undefined)) //undefined        可以识别函数 console.log(typeof(function(){}))//function        可以识别引用类型(不可再细分) console.log(typeof([]))//object console.log(typeof({}))//object console.log(typeof(null))//object // 3.0如何判断数据类型 // typeof操作符(见2.0) // toString()方法 支持:number/boolean/string/object 不支持:null undefined let a = true console.log(a.toString()) //"true" let b = 45 console.log(b.toString())//"45" // toLocaleString() let arr=['1','2'] console.log(arr.toLocaleString())//'1,2' // 检测数组类型的方法 // ① instanceof 操作符 let arr1=['1','2'] console.log(arr1 instanceof Array)//true let arr2=123 console.log(arr2 instanceof Array)//false // 对象的 constructor 属性 let arr3=['1','2'] console.log(arr1.constructor === Array)//true let arr4=123 console.log(arr2.constructor === Array)//false // ③ Array.isArray( ) 检验值是否为数组 let arr5=['1','2'] console.log(Array.isArray(arr5))//true let arr6=123 console.log(Array.isArray(arr6))//false // 4.0 == 和 === 有什么区别,什么场景下使用? // == 表示相同 // 类型不同,值也可以相同
// === 表示严格相同。 // 类型不同就直接false
  // == 会触发类型转换,所以一般情况用===
        100=='100'
        0==''
        0==false
        false==''
        null==undefined
        //除了 == null之外,其他都一律用===
        const obj={a:100}
        if(obj.b == null) { //这个相当于判断 obj.b === undefined || obj.b === null

        }

        // 5.0 null 和 undefined 有什么区别?
            // null是不存在的对象  null是表示一个空对象指针,
            // undefined  在使用var 声明变量但未对其加初始化时,这个变量就是undefined


    // 6.0 深拷贝
  function deppClone(obj={}){
            // 判断如果是值类型就直接返回
            if(typeof obj !== 'object' || obj == null){
                return obj
            }
            // 判断是对象还是数组
            let result
            if(obj instanceof Array){
                result = []
            }else{
                result ={}
            }
            for(let key in obj){
                if(obj.hasOwnProperty(key)){
                    // 递归
                    result[key]=deppClone(obj[key])
                }
            }
            return result                                                      
        }

     // 7.0 变量计算(类型转换)

        console.log(100+100) //200
        console.log(100+'100') //1100
        console.log(true+'100') //true100
        console.log(true+true) //2
  // == 会触发类型转换,所以一般情况用===
        100=='100'
        0==''
        0==false
        false==''
        null==undefined
        //除了 == null之外,其他都一律用===
        const obj={a:100}
        if(obj.b == null) { //这个相当于判断 obj.b === undefined || obj.b === null

        }
   //if语句和逻辑运算中 也会类型转换  可分为truly变量 falsely变量
        // falsely变量有:
        !!0
        !!false
        !!''
        !!NaN
        !!undefined
        !!null

 

 


 

posted on 2020-05-29 16:47  猪mother  阅读(182)  评论(0编辑  收藏  举报