大家。
几天前,面试官问我一个问题。 我无法回答。可能在这个网站上存在一些大师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>
等等,但他不能说我的答案。
谁能成功呢?
答案 0 :(得分:0)
所描述的问题没有答案。
变量引用后可以出现在表达式上下文中的最低代码点是\u0009
,正如您所指出的那样,将导致值大于1000(&gt; = 2304)。 ECMAScript 5规范要求JavaScript环境在遇到无效字符时生成早期错误。这里唯一合法的字符是标识符延续字符或 InputElementDiv ,它是 Whitespace , LineTerminator , Comment , 令牌和 DivPunctuator ,其中任何一个都不允许\u0000
- \u0003
范围内的代码点,问题需要答案才能得到答案
有些环境在遇到\u0000
时终止解析(C字符串结尾字符)但在这方面不符合ES5。
JavaScript允许任何角色处于这个位置的说法完全错误。
如果VARNAME在字符串或正则表达式中,则所有这些都会更改,但是,这两者都可以使用范围\u0000
- \u0003
中的字符。如果这是面试官正在寻找的伎俩我只能说这是一个不公平的问题。
请记住,在一次采访中,您正在采访公司的次数与公司面谈的次数相同或更多。如果加入一家公司认为这样的问题是在面试中使用的有效问题,我会有严重的保留意见。