工作中的解题思想(三)

  1. 关于原型链以及instanceof的使用 原型链和instanceof的用法 参考链接:https://juejin.im/post/5c19c1b6e51d451d1e06c163
  2. 构造函数的返回值
// 例子1
function Person(name) {
    this.name = name
    return name;
}
let p = new Person('Tom');
// 问:p或者Person返回什么?
// 答:{name: 'Tom'}
// 例子2
function Person(name) {
    this.name = name
    return {}
}
let p = new Person('Tom');
// 问:p或者Person返回什么?
// 答:{}

对于上述的解析:构造函数不需要显示的返回值。使用new来创建对象(调用构造函数)时,如果return的是非对象
(数字、字符串、布尔类型等)会忽略返回值;如果return的是对象,则返回该对象(注:若return null也会忽略返回值)。

  1. parseInt()特殊的用法
parseInt('101',2)  // 5   -> 1 * 2^2 + 0 * 2 + 1 * 2^0 = 4 + 0 + 1 = 5
parseInt('133',2)  // 1   -> 将133看作2进制数,由于2进制是0-1   1 * 2^0 = 1
parseInt('3',2)  // NaN  -> 如果被解析参数的第一个字符无法被转化成数值类型,则返回 NaN
parseInt('13733',5)  // 8  -> 将13733看作5进制数,由于5进制是0-4      1 * 5^1 + 3 * 5^0 = 5 + 3 = 8
  1. session和token的区别 参考链接:https://blog.csdn.net/qq_35891226/article/details/79931210
  2. JSON.parse()和JSON.stringify()的使用 参考链接1:https://www.html.cn/archives/8735 参考链接2:https://cloud.tencent.com/developer/article/1152862
  3. JSON.parse()中尾随逗号在JSON 中无效,所以如果传递给它的字符串有尾随逗号,JSON.parse()将会抛出错误
// 例子:
const user = '{"name": "John","email": "john@awesome.com",}'
const userStr = JSON.parse(user)    // Uncaught SyntaxError: Unexpected token } in JSON at position 44
  1. 关于map的试题
let array = [,1,,2,,3];
array = array.map((i) => ++i)  // [,2,,3,,4]
// 解析:forEach,filter,every,some,map会跳过空位