什么是':'(冒号)在JavaScript中做?

我正在学习JavaScript,并在浏览jQuery库时看到:冒号)被使用了很多。 这在JavaScript中使用了什么?

 // Return an array of filtered elements (r) // and the modified expression string (t) return { r: r, t: t }; 
 var o = { r: 'some value', t: 'some other value' }; 

在function上等同于

 var o = new Object(); or = 'some value'; ot = 'some other value'; 

而且,冒号可以用来标注一个语句。 例如

 var i = 100, j = 100; outerloop: while(i>0) { while(j>0) { j++ if(j>50) { break outerloop; } } i++ } 

你们都忘记冒号也在三元运算符中使用(尽pipe我不知道jquery是否使用它)。

三元运算符是一个if / then语句的expression式forms(expression式返回一个值)。 它是这样使用的:

 var result = (condition) ? (value1) : (value2) ; 

三元运算符也可以用来产生副作用,就像if / then一样,但是这是非常糟糕的做法。

“:”基本上是键值对的分隔符。 在你的例子中,它是一个Javascript对象文字符号。

在JavaScript中,对象是用冒号定义属性的标识符和它的值,所以你可以有以下内容:

 return { Property1 : 125, Property2 : "something", Method1 : function() { /* do nothing */ }, array: [5, 3, 6, 7] }; 

然后像这样使用它:

 var o = { property1 : 125, property2 : "something", method1 : function() { /* do nothing */ }, array: [5, 3, 6, 7] }; alert(o.property1); // Will display "125" 

它的一个子集也被称为JSON(Javascript对象表示法),它在AJAX调用中很有用,因为它在服务器端语言中是紧凑和快速的parsing,而且JavaScript可以轻松地将JSONstring反序列化为对象。

 // The parenthesis '(' & ')' around the object are important here var o = eval('(' + "{key: \"value\"}" + ')'); 

如果包含某种特殊字符或空格,也可以将其放在引号内,但我不build议这样做,因为这会使事情变得更加困难。

请记住, JavaScript语言中的JavaScript Object Literal Notation与消息传递的JSON标准不同。 2之间的主要区别是函数和构造函数不是JSON标准的一部分,但在JS对象文字中是允许的。

它是对象字面值语法的一部分。 基本格式是:

 var obj = { field_name: "field value", other_field: 42 }; 

然后你可以用下面的方法访问这些值

 obj.field_name; // -> "field value" obj["field_name"]; // -> "field value" 

你甚至可以将函数作为值,基本上给你的对象的方法:

 obj['func'] = function(a) { return 5 + a;}; obj.func(4); // -> 9 

它可以用来列出variables中的对象。 另外,它在一个句子的简写中被使用一点点:

 var something = {face: 'hello',man: 'hey',go: 'sup'}; 

像这样调用它

 alert(something.man); 

另外,如果一句话:

 function something() { (some) ? doathing() : dostuff(); // if some = true doathing();, else dostuff(); } 

我们不要忘记switch语句,在每个“case”之后使用冒号。

这是JSON或JavaScript对象表示法。 这是描述对象或哈希映射的快速方法。 冒号前的是属性名,冒号后的是它的值。 所以在这个例子中,有一个属性“r”,其值是variablesr中的值。 同样的t。

这些通常是JavaScript中使用冒号“:”的场景

1-声明和初始化一个对象

 var Car = {model:"2015", color:"blue"}; //car object with model and color properties 

2-设置标签(不build议,因为它会导致复杂的控制结构和意大利面代码)

 List: while(counter < 50) { userInput += userInput; counter++; if(userInput > 10000) { break List; } } 

3-在切换语句

 switch (new Date().getDay()) { case 6: text = "Today is Saturday"; break; case 0: text = "Today is Sunday"; break; default: text = "Looking forward to the Weekend"; } 

4-三元运算符

 document.getElementById("demo").innerHTML = age>18? "True" : "False"; 

我以前做过的一个愚蠢的错误可能会帮助一些人。

请记住,如果在这样的事件中使用“:”,则值不会改变

 var ondrag = (function(event, ui) { ... nub0x: event.target.offsetLeft + event.target.clientWidth/2; nub0y = event.target.offsetTop + event.target.clientHeight/2; ... }); 

所以“nub0x”会初始化发生的第一个事件,永远不会改变它的值。 但是“nub0y”会在下一个事件中改变。