2024年最新快速搞定前端JS面试 -- 第二章 JS基础-变量类型和计算,2024年最新面试必问知识点总结

总结
  • 对于框架原理只能说个大概,真的深入某一部分具体的代码和实现方式就只能写出一个框架,许多细节注意不到。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 算法方面还是很薄弱,好在面试官都很和蔼可亲,擅长发现人的美哈哈哈…(最好多刷一刷,不然影响你的工资和成功率???)

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!

第一次跳槽十分忐忑不安,和没毕业的时候开始找工作是一样的感受,真的要相信自己,有条不紊的进行。如果有我能帮忙的地方欢迎随时找我,比如简历修改、内推、最起码,可以把烦心事说一说,人嘛都会有苦恼的~

祝大家都有美好的未来,拿下满意的 offer。

  1. typeof能判断哪些类型?

  2. 何时使用=== 何时使用==?

  3. 值类型和引用类型的区别?

  4. 手写深拷贝

一、JS基础


1. 值类型与引用类型

值类型

引用类型

let a = 100

let b = a

a = 200

Console.log(b)   // 100

let a = { age:  20 }

let b = a

b.age = 21

Console.log(a.age)   // 21

堆栈分析:(栈是从上往下,堆是从下往上)

值类型

引用类型:

常见的值类型:number 、undefined、string、boolean、symbol

常见引用类型:object、array  特殊引用类型:null、fu()函数

2. typeof运算符

// 判断所有值类型

Let a;               typeof a  // ‘undefined’

const str = ‘abc’;      typeof str   // ‘string’

const n = 100;        typeof n   // ‘number’

const b = true;        typeof b   // ‘boolean’

const s = Symbol( ‘ s ‘);  typeof s   // ‘symbol’

// 能判断函数

typeof console.log    // ‘function’

typeof function() {}    // ‘function’

// 能识别引用类型(不能再继续识别)

typeof null    // ‘object’

typeof [‘a’, ‘b’]  // ’object’

typeof { x: 100 }  // ‘object’

3. 深拷贝

浅复制

const obj1 = {

age: 20,

name: ‘xxx’,

address: {

city: ‘beijing’

}

}

const obj2 = obj1

obj2.address.city = ‘shanghai’

console.log(obj1.address.city) // shanghai

深复制

const obj1 = {

age: 20,

name: ‘xxx’,

address: {

city: ‘beijing’

},

arr: [‘a’, ‘b’, ‘c’]

}

const obj2 = deepClone(obj1)

obj2.address.city = ‘shanghai’

obj2.arr[0] = ‘a1’

console.log(obj1.address.city) // beijing

console.log(obj1.arr[0]) // a

/**

* 深拷贝

* @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

}

二、变量计算与类型转换


1. 字符串拼接

const a = 100 + 10 // 110 可以使用100 + parseInt(‘10’)

const b = 100 + ‘10’ // 10010

const c = true + ‘10’ // true10

const d = 100 + parseInt(‘10’) // 110

2. =

100 == ‘100’ // true

0 == ‘’ // true

0 == false // true

false == ‘’ // true

null == undeined // true

(==尽量尝试让他们变成相等)

总结
  • 对于框架原理只能说个大概,真的深入某一部分具体的代码和实现方式就只能写出一个框架,许多细节注意不到。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 算法方面还是很薄弱,好在面试官都很和蔼可亲,擅长发现人的美哈哈哈…(最好多刷一刷,不然影响你的工资和成功率???)

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!

第一次跳槽十分忐忑不安,和没毕业的时候开始找工作是一样的感受,真的要相信自己,有条不紊的进行。如果有我能帮忙的地方欢迎随时找我,比如简历修改、内推、最起码,可以把烦心事说一说,人嘛都会有苦恼的~

祝大家都有美好的未来,拿下满意的 offer。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值