You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决移动端JavaScript的Uncaught SyntaxError: Unexpected token =错误

解决移动浏览器中类静态属性的语法错误问题

你遇到的Uncaught SyntaxError: Unexpected token =错误,根源在于**类的公共静态字段语法(static 变量名 = 值)**是ES2022新增的特性,不少旧版本移动浏览器(比如旧版Android Chrome、iOS Safari)未实现该语法支持,而桌面浏览器更新更及时,所以能正常运行。

下面提供两种可行的解决方法:

方法一:修改代码为兼容语法

把静态属性的定义移到类外部进行赋值,这是所有浏览器都支持的传统写法:

export class Global {
    static getdata() {
        return this.data = {
            name: this.name,
            userid: this.userid,
            admin: this.admin,
            staticname: this.staticname,
            vrecording: this.vrecording,
            arecording: this.arecording
        }
    }
}

// 在类外部初始化静态属性
Global.PeersIndex = new Array();
Global.AudioTracks = new Array();
Global.AudioTrack = undefined;
Global.silenceAudioTrack = undefined;
Global.client = undefined;
Global.id = undefined;
Global.mediastream = undefined;
Global.MediaVideoStream = undefined;
Global.MediaAudioStream = undefined;
Global.VisualMedia = undefined;
Global.capturestream = null;
Global.MixAudio = new Event('onAudioMix');
Global.username = undefined;
Global.userid = undefined;
Global.admin = undefined;
Global.staticname = undefined;
Global.vrecording = undefined;
Global.arecording = undefined;
Global.data = undefined;
Global.videoInput = new Array();
Global.audioInput = new Array();
Global.audioOutput = new Array();
Global.Constraints = {
    audio: false,
    video: false
};
Global.camAvailable = false;
Global.micAvailable = false;

方法二:用Babel转译代码

如果你的项目使用Webpack、Vite等构建工具,可以通过Babel将ES2022语法转译为兼容旧浏览器的ES5语法:

  • 确保安装@babel/preset-env并配置兼容目标(比如targets: { "browsers": ["last 2 versions", "iOS >= 12", "Android >= 8"] })
  • 最新版本的@babel/preset-env已经默认支持类静态字段的转译,无需额外配置插件

若项目是纯原生JS,优先选择方法一,无需额外依赖就能解决问题。

内容的提问来源于stack exchange,提问作者maranR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 06:01:14