zoukankan      html  css  js  c++  java
  • js面试题-变量类型和计算

    值类型和引用类型

    值类型

    undefined、String、Number、Boolean 、Symbol

    引用类型

    null、object、function

    null为特殊引用类型,指针指向为空地址

    function为特殊引用类型,但不用于存储数据,所以没有“拷贝、复制函数”这一说

    typeof能判断哪些类型

    typeof的作用

    • 识别所有的值类型

    • 识别函数

    • 判断是否为引用类型(不可细分)

    /**
     * 使用递归的方法完成深拷贝
     * 首先要旁段传入值 obj 不是值类型
     * 然后通过 instanceof 判断 obj 是数组还是对象,再初始化返回结果值
     * 最后循环 obj ,还要保证 key 不是原型的属性,然后使用递归给 result 赋值
     */
    function deepClone(obj) {
        if (typeof obj !== 'object' || obj == null) return obj
        let result = obj instanceof Array ? [] : {}
        for (let key in obj) {
            if (obj.hasOwnProperty(key)) result[key] = deepClone(obj[key])
        }
        return result
    }

    const beforeCloneObject = {
        age: 22,
        name: 'pyd',
        address: {
            city: '广州'
        },
        arr: ['a', 'b', 'c']
    }
    const cloneObject = deepClone(beforeCloneObject)
    console.log('cloneObject => ', cloneObject);

    何时使用 === 何时使用 ==

    <script>
    // 使用==
    100 == 'true' // true
    0 == '' // true
    0 == false // true
    false == '' // true
    null == undefined // true
    <script/>

    除了 == null之外 ,其他都一律用 ===

    const obj = {x :100}
    if(obj.a == null ){}
    // 等同于
    if(obj.a === null || obj.a === undefined){}

    if语句和逻辑运算

    truly变量: !!a === true 的变量

    falsely变量: !!a === false 的变量

    // 以下是 falsely 变量。除此之外都是truly变量
    !!0 === false 
    !!NaN === false
    !!'' === false
    !!null === false
    !!undefined === false
    !!false === false
  • 相关阅读:
    [osg][原]自定义osgGA漫游器
    [osg]osg窗口显示和单屏幕显示
    sql中去除重复的数据 select distinct * from table
    Microsoft VBScript 运行时错误 错误 800a005e 无效使用 Null: Replace
    如何解决Access操作或事件已被禁用模式阻止
    sql 中 '' 与 null 的区别
    IsNull、rs、sum
    Access与SQL中的IsNull(),IS NULL的区别
    ASP将Table导出Excel
    ASP如何将table导出EXCEL表格
  • 原文地址:https://www.cnblogs.com/manhuai/p/14281956.html
Copyright © 2011-2022 走看看