javascript - 严格模式与非严格模式
大家讲道理
大家讲道理 2017-04-11 11:35:37
[JavaScript讨论组]

我在IE浏览器中,使用strict模式.

发现,严格模式下, 不允许一个属性多处定义的错误提示, 这个怎么解决?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
黄舟
误解题主的问题了.请忽略我的解释.

可能是你的浏览器不支持. 严格模式, 也是区分浏览器兼容的.


'use strict';
// 如果浏览器支持strict模式,
// 下面的代码将报ReferenceError错误:

abc = 'Hello, world';
alert(abc);
巴扎黑

use strict模式下, 在相同作用域下的相同变量不允许多次定的:

// global scope
let aVariable = 1;
let aVariable = 3;  // Identifier 'aVariable' has already been declared

但是在不同的作用于是可以多次定义, 按照局部(local)屏蔽全局(global)原则:

// global scope
let aVariable = 1;

{
  // local scope
  // in fact the aVariable here is another identifier!
  let aVariable = 3;
  console.log(aVariable);  // 3
}

console.log(aVariable);  // 1

其实一个变量在实际使用的时候, 不需要多次定义, 可以一次定义, 多次修改变量值. 可以采用类似c语言的方式, 作用域scope里在用到的变量在作用于最前面声明并初始化:

function sampleFoo() {
  let a = [],
      i = 0;  // variable for loop with initailization
  
  for (i = 1; i <= 3; i += 1) {  // "i" changes
    a.push(i);
  }
}
PHP中文网

那就看到是哪个js报错,然后去修改js就好了啊

把重复的属性名改了

可能是你自己多写了。。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号