相关疑难解决方法(0)

带引号和没有引号的对象键之间有什么区别?

两者之间有什么区别吗?

obj = {'foo': 'bar'} 
Run Code Online (Sandbox Code Playgroud)

obj = {foo: 'bar'}
Run Code Online (Sandbox Code Playgroud)

我注意到-当我不使用引号时你不能在密钥中使用.但它真的有所作为吗?如果是的话,哪个?

javascript

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

使用逗号分配是否有效?

为什么aaa = 1,2,3工作和设置的值aaa1

为什么不起作用var bbb = 1,2,3

为什么var bbb = (1,2,3)工作和设置的值bbb3

控制台会话示例

javascript syntax

108
推荐指数
3
解决办法
4949
查看次数

有效的javascript对象属性名称

我正在尝试找出对javascript对象的属性名称有效的内容.例如

var b = {}
b['-^colour'] = "blue";     // Works fine in Firefox, Chrome, Safari
b['colour'] = "green";      // Ditto
alert(b['-^colour']);       // Ditto
alert(b.colour);            // Ditto
for(prop in b) alert(prop); // Ditto
//alert(b.-^colour);     // Fails (expected)
Run Code Online (Sandbox Code Playgroud)

这篇文章详细介绍了有效的javascript变量名称,' - ^ color'显然无效(作为变量名).这同样适用于对象属性名称吗?看看上面我试图解决的问题

  1. b [' - ^ color']无效,但可以在所有浏览器中使用quirk,我不应该相信它可以继续工作

  2. b [' - ^ color']是完全有效的,但它只是一种只能以这种方式访问​​的形式 - (它支持所以对象可以用作地图吗?)

  3. 还有别的

顺便说一句,javascript中的全局变量可能会在顶层声明为

var abc = 0;
Run Code Online (Sandbox Code Playgroud)

但也可以创建(据我所知)

window['abc'] = 0;
Run Code Online (Sandbox Code Playgroud)

以下适用于所有上述浏览器

window['@£$%'] = "bling!";
alert(window['@£$%']);
Run Code Online (Sandbox Code Playgroud)

这有效吗?它似乎与变量命名规则相矛盾 - 或者我不是在那里声明变量?变量和对象属性名称之间有什么区别?

javascript

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

是否存在一个规范,即元素的id应该成为全局变量?

如果我有一个<div id='a'>Chrome浏览器,那么在javascript中我可以做(就好像是一个全局变量).a.stuff()a

然而,这不适用于FireFox - 我将需要使用document.getElementById('a').

这里的正确行为是什么?(根据W3规格)

另外我感兴趣的是,如果我有一个id为div aa在我的脚本中也有一个全局变量,Chrome将如何解决这种歧义.这种行为是随机的还是笨拙的?

如何将一个id由连字符(" - "),冒号(":")和句点(".")组成的元素进行翻译(好吧我知道它们可以被访问document.getElementById但浏览器将如何将其转换为表示它们的全局变量)

html javascript dom global-variables identifier

39
推荐指数
3
解决办法
8458
查看次数

'@'符号在Javascript,Coffeescript或Jquery中有特殊含义吗?

我有一些看起来像的代码

self = @
Run Code Online (Sandbox Code Playgroud)

然后使用@someMethodName或self.someMethodName

@有一些特殊含义吗?

javascript jquery coffeescript

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

声明变量jQuery和JS

这可能是一个愚蠢的问题,但我无法在互联网上找到任何关于此的文件.

当声明变量在Javascript中使用我通常使用var x = 0但我在他们使用的jQuery教程中看到过$x = 0.那两个有什么区别?

此外,我会以同样的方式调用这两个变量,还是我之前需要使用$ mark?例如:for(i=0; i < x; i++)for(i=0; i < $x; i++)

javascript jquery

21
推荐指数
3
解决办法
4万
查看次数

使用括号(`[]`)和点(`.`)表示法之间的区别

使用[].访问数组或对象属性的真正区别是什么?哪一个使用?

另外为什么.运营商不允许索引属性?

javascript syntax

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

jQuery:为什么在变量名前加一个$?

我正在尝试学习jQuery,我在一个例子中遇到了这一行.

var $title = $(tag).attr('title');
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我前面的$是什么$title.

如果我$title用just 替换,这个例子似乎工作正常title.

我知道这可能是一个愚蠢的问题,但它是浪费时间谷歌搜索"$的目的"

非常感谢.

jquery

9
推荐指数
1
解决办法
2355
查看次数

Javascript函数定义中的句点(函数window.onload(){})

可能重复:
JavaScript函数语法说明:function object.myFunction(){..}

我最近看到一些(遗留的)javascript代码看起来像:

function window.onload(){
  // some code
}
Run Code Online (Sandbox Code Playgroud)

这对我来说看起来不像是有效的javascript,因为你不能在标识符中有句号,但它似乎在IE8中有效.我认为它相当于:

window.onload = function(){}
Run Code Online (Sandbox Code Playgroud)

我在Chrome和IE9中尝试了相同的代码,它们都引发了语法异常,所以我认为IE8的这个"特性"是一些应该被替换的非标准函数定义吗?有问题的代码只发送到IE浏览器,所以这可能是我之前没有遇到过这个问题的原因.

javascript

8
推荐指数
1
解决办法
2602
查看次数

如何在点符号中使用变量,如方括号表示法

我一直在Javascript中使用方括号表示法来创建和调用关联数组.

在这个例子中,我理解方括号表示法允许您使用变量来调用数组中的某个对象.

你会用点符号做这样的事情吗?

var item = {};
    item['1'] = 'pen';

var x = 1;

console.log(item[x]);  // console will show 'pen'
Run Code Online (Sandbox Code Playgroud)

javascript

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