在Javascript访谈中很难

时间:2013-10-18 16:02:10

标签: javascript encoding character special-characters

大家。

几天前,面试官问我一个问题。 我无法回答。可能在这个网站上存在一些大师JS。 =)

我们只有一个字符串VARNAME[byte][byte][byte][byte]其中[byte]代表一个字符。

问题:如果 HEX必须是 ,如何写JS正确十进制不是 超过1000?

我试过

1)VARNAME[20][3D][09][30]它是平等的

2)VARNAME<space>=1<space>这是正确的JS CODE BUT!

3)十进制中的0x203D = 8253不正确必须为&lt; = 1000     0x0120 = 2352不正确必须&lt; = 1000!

我尝试在09年更换20,然后:

0x093d = 2365它更好,但超过1000 =(

我怎么能成功?采访者说这是可能的,因为char可以是任何(我的意思是

varname;<space><space><space>等等,但他不能说我的答案。

谁能成功呢?

1 个答案:

答案 0 :(得分:0)

所描述的问题没有答案。

变量引用后可以出现在表达式上下文中的最低代码点是\u0009,正如您所指出的那样,将导致值大于1000(&gt; = 2304)。 ECMAScript 5规范要求JavaScript环境在遇到无效字符时生成早期错误。这里唯一合法的字符是标识符延续字符或 InputElementDiv ,它是 Whitespace LineTerminator Comment 令牌 DivPunctuator ,其中任何一个都不允许\u0000 - \u0003范围内的代码点,问题需要答案才能得到答案

有些环境在遇到\u0000时终止解析(C字符串结尾字符)但在这方面不符合ES5。

JavaScript允许任何角色处于这个位置的说法完全错误。

如果VARNAME在字符串或正则表达式中,则所有这些都会更改,但是,这两者都可以使用范围\u0000 - \u0003中的字符。如果这是面试官正在寻找的伎俩我只能说这是一个不公平的问题。

请记住,在一次采访中,您正在采访公司的次数与公司面谈的次数相同或更多。如果加入一家公司认为这样的问题是在面试中使用的有效问题,我会有严重的保留意见。