所有人。
几天前,一位面试官问了我一个问题。但我无法回答。可能是在这个网站上存在一些大师JS。=)
我们只有一个字符串:VARNAME[byte][byte][byte][byte],其中[byte]是一个字符的位置。
问题:如果在HEX中字节的对必须不大于小数点中的,那么如何编写JS?
,我试着跟随:
1) VARNAME[20][3D][09][30]是相等的
2) VARNAME<space>=1<space>和它是正确的JS代码但是!
( 3)十进制中的0x203D = 8253不正确必须是<=1000 0x0120 = 2352不正确必须是<=1000!
我试着在09年替换20个,然后:
0x093d = 2365它更好,但超过1000 =(
我怎么能做到呢?面试官说这是可能的,因为char可以是任何(我的意思是)
varname;<space><space><space>等等),但他不能回答我。
伙计们,谁能做到?
发布于 2013-10-18 16:52:41
上述问题没有答案。
在变量引用之后可以出现在表达式上下文中的最低代码点是\u0009,正如您所指出的,它将导致大于1000的值(>= 2304)。ECMAScript 5规范要求JavaScript环境在遇到无效字符时产生早期错误。这里唯一合法的字符是标识符延续字符或InputElementDiv,它们要么是空格、LineTerminator、注释、令牌,要么是DivPunctuator,它们都不允许在\u0000-\u0003范围内的代码点,这些代码点是问题有答案所必需的。
有些环境会在遇到\u0000时终止解析(C端字符串字符),但在这方面这些环境不符合ES5。
关于JavaScript允许此位置上的任何字符的语句是完全错误的。
但是,如果VARNAME位于字符串或正则表达式中,则这一切都会发生变化,这两个表达式都可以接受范围\u0000-\u0003中的字符。如果这是面试官要找的诀窍,我只能说这是一个不公平的问题。
记住,在面试中,你和公司面试的次数一样多,甚至更多。对于加入一家认为这样的问题在面试中使用的有效问题的公司,我会有严重的保留意见。
https://stackoverflow.com/questions/19454039
复制相似问题