相关疑难解决方法(0)

JavaScript中使用"严格"做什么,背后的原因是什么?

最近,我通过Crockford的JSLint运行了一些我的JavaScript代码,它给出了以下错误:

第1行问题1:缺少"使用严格"声明.

做一些搜索,我意识到有些人会加入"use strict";他们的JavaScript代码.一旦我添加了语句,错误就会停止显示.不幸的是,谷歌没有透露这个字符串声明背后的历史.当然它必须与浏览器如何解释JavaScript有关,但我不知道效果会是什么.

那么它是"use strict";什么,它意味着什么,它是否仍然相关?

当前的任何浏览器都会响应"use strict";字符串还是将来使用?

javascript syntax jslint use-strict

7339
推荐指数
29
解决办法
105万
查看次数

像StackOverflow的输入标签那样的jQuery自动完成标记插件?

哪些解决方案实现了SO用于输入标签的相同自动完成功能?

有插件可以处理一个单词,但我还没有看到任何处理多个单词的插件.

tags jquery autocomplete

518
推荐指数
4
解决办法
20万
查看次数

如何在JavaScript中声明字符串常量?

我想在JavaScript中声明字符串常量.

有没有办法做到这一点?

javascript constants

93
推荐指数
4
解决办法
12万
查看次数

这个符号在JavaScript中意味着什么?

这是什么?

这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.

为什么是这样?

Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.

主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.

此外,这是PHP符号引用的公然副本.我们需要一个JS.


请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接

javascript

86
推荐指数
1
解决办法
14万
查看次数

如何在ReactJS中定义常量

我有一个将文本映射到字母的函数:

sizeToLetterMap: function() { 
     return {
                small_square: 's',
                large_square: 'q',
                thumbnail: 't',
                small_240: 'm',
                small_320: 'n',
                medium_640: 'z',
                medium_800: 'c',
                large_1024: 'b',
                large_1600: 'h',
                large_2048: 'k',
                original: 'o'
            };
}
Run Code Online (Sandbox Code Playgroud)

这些字母用于创建flickr照片网址.因此,photoUrl函数接受图像对象和大小文本对象,并调用sizeToLetterMap来为该大小文本提供字母.

功能:

photoUrl(image, size_text): function () {
      var size = this.sizeToLetterMap(size_text);
}
Run Code Online (Sandbox Code Playgroud)

我不认为将sizeToLetterMap作为函数进行适当的设计.我认为它更适合作为常数.如何在ReactJS中定义常量?

reactjs

40
推荐指数
4
解决办法
7万
查看次数

38
推荐指数
5
解决办法
4万
查看次数

你能在JavaScript中使用常量变量吗?

我在一个网站上读到你可以在JavaScript中创建常量变量,如:

const x = 20;
Run Code Online (Sandbox Code Playgroud)

但在另一个网站上我读到你不能.所以我现在很困惑现在是什么?

同样在Visual Studio 2010中,当我编写const它时,它会在JavaScript文件中加下划线并显示语法错误.

javascript constants

36
推荐指数
3
解决办法
5万
查看次数

如何在JavaScript中使函数参数不变?

我想要做的是使用尽可能多的不可变变量,从而减少我的代码中的移动部件的数量.我想在必要时使用"var"和"let".

这不起作用:

function constParam(const a){
    alert('You want me to '+a+'!');
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

javascript constants ecmascript-6

34
推荐指数
2
解决办法
2万
查看次数

解决IE8破坏的Object.defineProperty实现问题

使用ECMAScript5的Object.defineProperty功能考虑以下代码:

var sayHi = function(){ alert('hi'); };
var defineProperty = (typeof Object.defineProperty == 'function');
if (defineProperty) Object.defineProperty(Array.prototype,'sayHi',{value:sayHi});
else Array.prototype.sayHi = sayHi;
var a = [];
a.sayHi();
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome和Firefox 4(如果defineProperty存在),适用于Firefox 3.6(defineProperty不存在).但是,IE8 仅部分支持defineProperty.因此,它尝试运行该Object.defineProperty方法,但随后失败(浏览器中未显示错误)并停止在页面上运行所有其他JavaScript代码.

是否有更好的方法来检测和避免IE8的破坏实施:

if (defineProperty){
  try{ Object.defineProperty(Array.prototype,'sayHi',{value:sayHi}); }catch(e){};
}
if (!Array.prototype.sayHi) Array.prototype.sayHi = sayHi;
Run Code Online (Sandbox Code Playgroud)

对于好奇的人,我在我的ArraySetMath库中使用它来在那些支持它的浏览器中定义不可枚举的数组方法,并回退到旧浏览器的可枚举方法.

javascript internet-explorer-8 ecmascript-5

26
推荐指数
2
解决办法
2万
查看次数

如何防止在Javascript中更改变量值

可能重复:
Javascript中是否有常量?

有没有办法在javascript中声明最终值的静态,以便它不能被第三方更改?

我所拥有的是文章共享应用程序,免费用户受到广告支持.我想做的是通过改变内容的存储变量来防止免费用户改变innerHTML内容.

我现在拥有的是一个计时器,它每5秒在用户网站上重新加载文章的innerHTML,并且我将重载的值存储在变量中.

但是,如果使用jsbeatify的天才探索哪个变量是删除广告的关键并改变了这一点,那么我们就会失去收入和产品的曝光率.

如何防止内部变量的改变?


UPDATE

这是我想出的最终结果:

http://jsfiddle.net/PgdYP/1/

<div id="specialdiv"></div>
<input type="button" value="try to change the function i to do something different" onclick="t.i = function(){alert(data.secret);}"><BR>
<input type="button" value="set function to null out of spite" onclick="t=null;">
Run Code Online (Sandbox Code Playgroud)


 <script type="text/javascript">
    e = function(){var data = { };
    Object.defineProperty(data, 'secret', {
       value: "Hello world!",
       writable : false,
       enumerable : true,
       configurable : false
       });this.z=function(){window.setTimeout("try{document.getElementById('specialdiv').innerHTML =   '"+data.secret+"';t.i.z();}catch(err) {document.body.innerHTML=err;}",5000);}}
        g = function(){};
        g.prototype = new e();e=null;window.t = {}
        Object.defineProperty(window.t, 'i', {
        value: new g(), …
Run Code Online (Sandbox Code Playgroud)

javascript static final

11
推荐指数
1
解决办法
2万
查看次数