JavaScript中冒号(:)的四种核心用法详解

作者:闭包旅人时间:2026-10-24 04:25:30浏览:169

本文详细解析JavaScript中冒号(:)的四种主要用法:switch语句分支、?:三元表达式的false分支、对象直接量成员声明以及标签语句。通过对比不同对象创建方式及HTML事件中的协议前缀,阐明冒号在语法结构中的关键作用,帮助开发者准确掌握其应用场景。

冒号在JavaScript中频繁出现,但网络上关于其用法的介绍往往零散且缺乏深度,容易让人困惑。经过两天的资料查阅与整理,我对冒号(:)的使用有了更清晰的认识,特此总结,希望能帮助其他开发者理清思路。


switch与三元运算符中的冒号

1、switch语句分支


2、?:三元表达式的false分支


3、声明对象直接量的成员


4、声明标签



1和2相信地球人都知道吧?如果有人不知道,那我改成地球上的程序员都知道,哈哈


对象直接量中的冒号用法

第三点涉及对象直接量,我们需要先明确什么是对象直接量。


对象直接量(亦称对象初始化程序)由一组属性/值对组成,这些对之间用冒号分隔,而不同的属性对之间则用逗号分隔,整个结构被包裹在花括号{}中。


JavaScript中的对象可以像C#或Java等面向对象语言中的对象一样,拥有属性和方法。


在JavaScript中创建对象有多种方式,例如可以使用Object构造函数来创建。


代码如下:

var obj1 = new Object();
obj1.X = "20px";
obj1.Y = "30px";
obj1.myFunction = function() { alert("我是一个方法!"); };
obj1.myFunction();

用对象直接量创建一个对象:

代码如下:

var obj2={X:"20px",Y:"30px",myFunction:function(){alert("我是一个方法!");}}
obj2.myFunction();

使用对象直接量创建对象的方式看起来更加简洁直观。


当然,你也可以先定义一个类似类的构造函数,然后通过new关键字创建实例。


代码如下:

function myClass(x, y) {
this.X = x;
this.Y = y;
} 
myClass.prototype.myFunction=function(){
alert("我是一个方法!");
} 
var obj3 = new myClass("20px", "30px");
obj3.myFunction();

4、声明标签

HTML事件中的协议前缀与标签声明

脚本语言种类繁多,除了JavaScript,其他脚本语言也能实现类似功能。


例如:


<input type="button" onclick="vbscript:vbFunction()" value='按钮'/>


当点击按钮时,浏览器会使用vbscript语法执行你定义的vbFunction方法。


如果将onclick后面的vbscript:vbFunction()改为javascript:vbFunction();,则可能会出错。


在某些情况下,你可以省略协议前缀直接调用方法。


<input type="button" onclick="vbFunction()" value='按钮'/>


此时,onclick中的方法无论使用vbscript还是javascript,IE浏览器会自动识别并执行相应的语法,但其他浏览器不支持vbscript。


平时使用JavaScript时,习惯上会加上声明前缀,即"javascript:"。


<input type="button" onclick="javascript:alert('你点击了我!')" value='按钮'/>


"javascript:"前缀常被一些安全研究人员或黑客利用,用于绕过简单的HTML表单限制、Cookie/Session验证,甚至进行SQL注入。如需了解具体原理,请查阅其他资料,但请确保仅用于合法学习,切勿用于破坏。


这里做一个简单的演示例子:


首先打开www.baidu.com首页,然后将下面这行代码直接复制到浏览器地址栏并按回车。


javascript:alert(document.forms[0].wd.value='csdn');document.forms[0].submit()


效果如何?不错,我们利用JavaScript直接操作了搜索框中的文本,并执行了表单提交。更复杂的操作,大家可以自行研究。

作者最新文章