首页 > 产品运营 > 教程经验

2022 web前端面试题【2】 — JS篇

来源:黔途网   时间:2024-08-29 15:06:45 浏览量:
今天整理了有关JS的相关面试题,都是比较基础并且出现频率很高的面试题,今天分享的主题是【变量类型和计算】来一起看看吧!常见问题:—【1】typeof 能判断哪些

今天整理了有关JS的相关面试题,都是比较基础并且出现频率很高的面试题,今天分享的主题是【变量类型和计算】来一起看看吧!

常见问题:

—【1】typeof 能判断哪些类型?
—【2】何时使用 === 何时使用 == ?
—【3】值类型和引用类型的区别?
—【4】手写深拷贝

这些问题熟悉吗?你能快速回答上来几个呢?如果不想看文章也可以通过视频讲解来学习===> 《 快速搞定前端技术一面 匹配大厂面试要求 》 百度云下载

问题解答:

1、变量类型有什么?

  • 值类型

  • 引用类型

值类型

引用类型

案例【1】:

// 值类型:各论个的不会相互干扰
let a = 100
let b = a
a = 200
console.log(b) //100

案例【2】:

// 引用类型
let a = { age: 20 }
let b = a
b.age = 21
console.log(a.age) //21
// 常见的值类型
let a //undefined
const s = 'abc'
const n = 100
const b = true
const s = Symbol('s')

// 常见引用类型
const obj = {X:100}
const arr = ['a', 'b', 'c']
const n = null // 特殊的引用类型,指针指向为空地址
// 特殊引用类型,但不用存储数据,所以没有“拷贝,复制函数”这一说
function fn() {}

2、typeof 运算符

【1】typeof的作用有什么呢?

  • 识别所有的值类型

  • 识别函数

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

3、手写深拷贝(必考知识点)

⚠️注意: 为什么要深拷贝?如何深拷贝?

  • 注意判断值类型和引用类型

  • 注意判断是数组还是对象

  • 递归

上代码–>

const obj1 = {
    age: 20,
    name: '小月博客',
    address: {
        city: "BeiJing"
    },
    arr: ['a','b','c']
}

const obj2 = deepClone(obj1)

/**
* 深拷贝
* @param {Object} obj 深拷贝对象 
*/
function deepClone(obj = {}){

    // 判断传入的是否是对象或者数组
    if(typeof obj !== 'object' || obj == null) {
        // obj是null ,或者不是对象和数组,直接返回
        return obj
    }

    // 返回初始化结果
    let result
    if(obj instanceof Array) {
        result = []
    } else {
        result = {}
    }

    for(let key in obj) {
        // 保证 key 不是原型的属性
        if(obj.hasOwnProperty(key)) {
            result[key] = deepClone(obj[key])
        }
    }
    return result
}

4、变量计算–类型转换

变量计算也是最常见的面试类型了,下面我们由图片呈现一下基本案例

5、运算符

6、== 运算符 和 === 的区别

7、if语句和逻辑运算

 

总结

今天的有关JS的面试题

  • 值类型VS引用类型、堆栈模型、深拷贝

  • typeof运算符

  • 类型转换,truly和falsely变量上面的都掌握了吗?下一次继续给大家更新有关【原型和原型链】必考的知识点!敬请期待。

免责申明:

黔途网以上展示内容来源于用户自主上传、合作媒体、企业机构或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表黔途网官方立场,请读者仅做参考。本文标题:2022 web前端面试题【2】 — JS篇,本文链接:https://www.htuwang.com/help/105263.html;若您认为本文侵犯了您的版权信息,或您发现该内容有任何违法信息,请联系我们修改或者删除处理,联系邮件(邮箱号:kefu@qianu.com)。

精选推荐

热门阅读