javascript – JS在后缀操作中无效的左侧表达式?

前端之家收集整理的这篇文章主要介绍了javascript – JS在后缀操作中无效的左侧表达式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在玩一个 javascript,并且遇到错误.错误是这样的:

后缀操作中的左侧表达式无效.

脚本很长,但我认为这是这个问题.奇怪的是,当我在本地运行它时,这是有用的,但是当它被打包时,使用asset_packager,它会失败.

任何想法为什么我可能会得到这个错误

更新:做了更多的研究后,我发现了这个功能.错误似乎发生在“while”语句之后,我认为它是“a”.这是一个插件,所以我不想去搞乱代码,但你可以这样做吗?

m.getInternetExplorerMajorVersion = function() {
            var a = m.getInternetExplorerMajorVersion.cached = typeof m.getInternetExplorerMajorVersion.cached != "undefined" ? m.getInternetExplorerMajorVersion.cached : function() {
                var a = 3,b = d.createElement("div"),c = b.getElementsByTagName("i");
                while ((b.innerHTML = "<!--[if gt IE "++ + a + "]><i></i><![endif]-->") && c[0])
Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
                    ;
                return a > 4 ? a : !1
            }();
            return a
        }

解决方法

你没有说出哪个插件,但是我正在处理同样的问题,Jeffrey,我认为同一个插件,因为我的代码看起来几乎相同.

我跟着你的领先.该插件是History.js,从页面
https://github.com/browserstate/History.js/和我正在使用捆绑的html4 html5版本,这是最小化,但是正在通过我的内部gzip压缩.

我改变了那个片段

innerHTML="<!--[if gt IE "+ ++a+"]><i></i><![endif]-->"

innerHTML="<!--[if gt IE "+ (++a)+"]><i></i><![endif]-->"

而且做了这个工作!

我开始想知道究竟是什么问题.最重要的嫌疑人当然是gzip.正常情况下,代码正确

var a=0; "begining of string "+ ++a+" the rest of string";

并返回“开始字符串1的其余字符串”

然而,gzip压缩可以摆脱空白,并将其转换为浏览器所理解的东西:

var a=0;"begining of string "+++a+" the rest of string";

什么给我们错误Uncaught ReferenceError:在后缀操作中无效的左侧表达式

正如我所想 – 这是gzip的问题.它删除了一个白色字符太多.在PHP版本5.4.8-1上使用方法gzencode($content,9,FORCE_GZIP)

猜你在找的JavaScript相关文章