Jogiter / jogiter.github.com

Jogiter`s Blog
https://blog.jogiter.cn/
3 stars 0 forks source link

Basic-Interview-Questions #37

Open Jogiter opened 2 years ago

Jogiter commented 2 years ago
Jogiter commented 2 years ago

原型链

function Foo() {
  this.bar = 10
}

Foo.prototype.bar = 42

var foo = new Foo()
console.log(foo.bar)

delete foo.bar
console.log(foo.bar)
Anwser ```js 10 42 ```
Jogiter commented 2 years ago

JSON.stringify

let a = {y: 1}
a.x = a
JSON.stringify(a) 
what happened: ```js Uncaught TypeError: Converting circular structure to JSON ```
Jogiter commented 2 years ago

typescript

unknow vs any

Any

Unknown

Summary

public

class Car {
    constructor(public m: string, n: string) {}
}

var car = new Car('a', 'b')
compile ```js class Car { constructor(m, n) { this.m = m; } } ```
Jogiter commented 2 years ago
  1. turing code-challenge 给定一个字符串,仅将字符串颠倒顺序,特殊字符的位置不变。 比如给定一个字符串 ab-cd,将转换成 dc-baac-cd-efgh!!,将转换成 hg-fe-dcca!!
Anwser ```js function reverLet(S) { let result = '' const length = S.length let startIdx = 0 let endIdx = length - 1 let start = '' let startCode = '' let end = '' let endCode = '' let middle = '' while (startIdx < length && startIdx <= endIdx) { start = S.slice(0, startIdx) startCode = S.slice(startIdx, startIdx + 1) middle = S.slice(startIdx + 1, endIdx) end = S.slice(endIdx + 1) endCode = endIdx === length - 1 ? S.slice(endIdx) : S.slice(endIdx, endIdx + 1) if (!/[a-wA-W]/.test(startCode)) { startIdx++ } else if (!/[a-wA-W]/.test(endCode)) { endIdx-- } else { S = `${start}${endCode}${middle}${startCode}${end}` startIdx++ endIdx-- } } result = S return result } // console.log(reverLet('ab-cde-fgh!!')) console.log(reverLet('ac-cd-efgh!!')) ```