介绍这三个之间的差别之前, 先来看一下JS 的数据类型。
在 Java ,C这样的语言中, 使用一个变量之前,需要先定义这个变量并指定它的数据类型,是整型,字符串型,....
但是在js 中定义变量统一使用 var , 或者不使用var 也可以使用。
那么js 中是否有数据类型的概念呢? 当然有, 使用 typeof 就可以判断这个变量的数据类型:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
s = "This is Test";
alert(typeof(s));
</script>
</HEAD>
<BODY>
</BODY><br></HTML>
以上例子弹出的值是 "string", 由此可以看出, js 也是有数据类型的。
js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型。
原始类型和引用类型有什么区别?引用的概念其他语言的引用很类似, 就是一个地址。看一下这个例子就知道了。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
var obj = new Object();
var objCopy = obj;
obj.att1 = "obj attribute";
alert(objCopy.att1);
</script>
</HEAD>
<BODY>
</BODY>
</HTML>
别忽略了object 类型的这种特性哦, 这个是会被经常误用的地方。类似上面的obj的改变引起了objCopy的改变。
除了以上5 中类型之外, 还有一种 “function”的类型。
<!--Add by oscar999-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
function test()
{
alert("hello");
}
alert(typeof(test));
</script>
</HEAD>
<BODY>
</BODY>
</HTML>
undefined 和 null, NaN 的区别
有了上面的介绍,就可以很容易把undefined 和其他的两个区分开来。
undefined判断的是变量的类型,而其他两个判断是变量的值。
undefined可以用来表示以下的状况
1. 表示一个未声明的变量,
2. 已声明但没有赋值的变量,
3. 一个并不存在的对象属性
null 是一种特殊的object ,表示无值;
NaN是一种特殊的number ,表示无值;
比较符(== 或 ===)
使用 == ,如果两边的类型不同, js 引擎会先把它们转成相同的类型在进行值的比较;
使用 ===, 则不会进行类型转换,类型不同,肯定不相等。
实例
有了以上的知识,再来看下面一些有意思却容易混淆的例子应该就很清晰了:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
var s;
alert(s==undefined); //true
alert(s===undefined); //true
alert(s==null); //true
alert(s===null); //false
alert(null==undefined); //true
alert(null===undefined); //false
</script>
</HEAD>
<BODY>
</BODY>
</HTML>
把var s 改成 var s = null 再看看效果~~
一般情况下, 对js 某个变量s 判空习惯使用 if(s!=null) , 如果s 没有定义的话,就会报undefined的js 错误, 所以完整的判空可以使用如下方式:
if(typeof(s)!="undefined"&&s!=null)
<ci-notifications.company.org>
Build Notifications <ci-notifications.company.org>
Build Notifications” <ci-notifications.company.org>
email-ext插件允许使用变量来动态插入数据到邮件的主题和内容主体中。变量是一个以$(美元符号)开始,并以空格结束的字符串。当一个邮件触发时,主题和内容主体字段的所有变量都会通过真实的值动态地替换。同样,变量中的“值”能包含其它的变量,都将被替换成真实的内容。
比如,项目配置页的默认主题和内容分别对应的是全局配置页面的DEFAULT_SUBJECT和DEFAULT_CONTENT,因此它会自动地使用全局的配置。同理,触发器中的Subject和Content分别对应的是项目配置页面的DEFAULT_SUBJECT和DEFAULT_CONTENT,所以它也会自动地使用项目的配置。由于变量中的“值”能包含其它的变量,所以就能为变量快速地创建不同的切入点:全局级别(所有项目),专属级别(单一项目),触发器级别(构建结果)。
如果你要查看所有可用的变量,你可以点击配置页的Content Token Reference的问号获取详细的信息。
所有的变量都是可选的,每个变量可以如下表示,字符串类型使用name=“value”,而布尔型和数字型使用name=value。如果{和}标记里面没有变量,则不会被解析。示例:$TOKEN,${TOKEN},${TOKEN,count=100},${ENV,var=”PATH”}
提示:用英文逗号分隔变量的参数。
常用的属性
加事件之前验证表单的文本框是否非空,并且只有在验证通过时才调用添加函数,你可以采用前端JavaScript进行简单的表单验证。
<form id="dataForm" onsubmit="return validateForm()">
<div>
<label >标题:</label>
<input type="text" id="titleInput" name="title" required>
</div>
<div>
<label >内容:</label>
<input type="text" id="content" name="content" required>
</div>
<button type="button" onclick="add()">添加数据</button>
</form>
form标签中添加onsubmit="return validateForm()"
function validateForm() {
var username = document.getElementById("titleInput").value;
var email = document.getElementById("content").value; // 假设还有一个email文本框
// 检查是否都不为空
if (username.trim() === "" || email.trim() === "") {
alert("不能为空,请填写后再提交。");
return false; // 阻止表单提交或事件继续
}
return true; // 如果验证通过,则允许执行后续操作
}
验证文本框非空的JS代码:如果验证失败(即输入框为空),validateForm函数会返回false,阻止表单提交;如果验证通过,则返回true,允许表单提交。
function createEditor() {
// 以下为添加数据的JS代码
}
添加数据的JS代码
function add() {
if(validateForm()){
createEditor();
}
}
validateForm函数返回True时,提交数据添加。
*请认真填写需求信息,我们会在24小时内与您取得联系。