zoukankan      html  css  js  c++  java
  • 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
    
    
  • 相关阅读:
    cron表达式详解(转载)
    Swagger 3.0使用教程(转载)
    springboot整合shiro-对密码进行MD5并加盐处理(十五)(转载)
    redis排序
    引用和指针的区别?
    测试策略
    主键、外键的作用,索引的优点与不足?
    您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)
    UI测试测什么
    数据库,数据库管理系统,数据库系统三者的区别和练习?
  • 原文地址:https://www.cnblogs.com/zhuMother/p/12988321.html
Copyright © 2011-2022 走看看