一、<a href="javascript:;">的用法说明
1、 标签的 href 属性用于指定超链接目标的 URL,href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。
2、JavaScript: 是一个伪协议,其他的伪协议还有 mail: tel: file: 等等。
1 <a id="jsPswEdit" class="set-item" href="javascript:;">修改密码</a>
javascript:是表示在触发默认动作时,执行一段JavaScript代码,而 javascript:; 表示什么都不执行,这样点击时就没有任何反应。
一般在这种情况下,会给绑定一个事件回调,来执行业务,如:
1 document.getElementById('jsPswEdit').addEventListener('click', function(e) {
2 e.preventDefault();
3 // 当<a>触发click时,处理业务
4 }, false);
PS:
href=”javascript:;”就是去掉a标签的默认行为,跟href=”javascript:void(0)”是一样的,void 是JavaScript 的一个运算符,void(0)就是什么都不做的意思
3、简单来说,”javascript:”是另外一种嵌套js代码在网页中的方法。
跟通过标签嵌套js代码差不多。
如点击下面链接会会执行”javascript:”后面的内容。不过不推荐这种写法。
理由是使用标签href属性通常是保存超链接,用来控制页面转向。
1 <a href = "javascript:alert(22);">点我</a>
二、javascript-data type
数据类型
在javascript中不需要明确指定数据类型,可以根据赋值自动选择数据类型。
数据类型一般分为六类
number
boolean
string
null
undefined
object
其中object为对象类型,其他为原始类型。object中又包括 function,array,date等。
JavaScript中可以用‘+’‘-’进行隐式转换
string + num = num (‘123’+0 = 123 )
num + string = string ( 123 + ‘’ = ‘123’)
javascript中’==’判断可以用于不同类型
null == undefined true
null == string -> num
boolean == ?-> num
num ,string == object -> 基本类型
javascript中‘===’为严格等于,必须类型相同。
类型检测
typeof
基本类型和函数的检测,遇到null失效。
instanceof
用于对象类型判断。 obj instanceof object true/flse
判断 obj是否为object类型的对象。
适合自定义对象,原生对象。
Object.prototype.toString()
适合内置对象和基元类型,遇到null,undefined失效。