是弱类型脚本语言,声明变量是无须指定变量的数据类型。JavaScript变量的数据类型是解释时动态决定的,但是JavaScript的值保存在内存中时,也是有数据类型的。JavaScript的基本数据类型有以下:
数值类型:
包含整型和浮点型
布尔类型:只有true
和
false
两个值
字符串类型:字符串必须使用单引号或者双引号括起来
Undefined
类型:表示已经创建但是没有赋初值的变量
Null:表示某个变量的值为空
1、数值类型:
数值类型包括整型变量和浮点型变量。
<script type="text/javascript">
var a,b;
a = 5E2;
b = 1.23e-3;
alert(a+ "\n" +b);
</script>
科学记数法中的E为间隔符号,E不区分大小写。
注意:数值直接量不要以0开头,因为JavaScript不仅仅支持十进制数,还支持其他进制数。八进制数以0开头,十六进制数以0x开头。十六进制数是非常重要的,因为在HTML中的许多代码都需要十六进制数。
当数值变量超出其表数范围时将会出现两个特殊值:Infinity(正无穷大)和-Infinity(负无穷大),前者表示数值大于数值类型的最大值,后者表示数值小于数值类型的最小值。
<script type="text/javascript"> var x = 1.2345678923456767; x = x + 1e999; alert(x); </script>
注意:
JavaScript中的算数运算符允许除数为0(被除数与除数可以同时为0,得到的结果为NaN),正数除0的结果为正无穷大,负数除0的结果是负无穷大。
字符串类型
JavaScript中没有字符类型,或者说字符类型和字符串类型完全相同,定义如下:
var a = ‘ a ’;
这种代码定义的a依然是字符串类型的变量,没有字符类型变量。
注意:在JavaScript中比较两个字符串的字符序列是否相等使用==即可,无须使用equal()方法。
JavaScript以内建类String表示字符串,String类中包含了一系列的方法操作字符串,String类有如下基本方法和属性操作字符串:
String():类似于面向对象语言的构造器,使用该方法可以构建一个字符串。
charAt():获取字符串特定索引处的字符
charCodeAt():返回字符串特定索引处的字符所对应的Unicode值。
length():直接返回字符串的长度,JavaScript中的中文字符算一个长度。
toUpperCase():将字符串所有的字母转换为大写字母
toLowerCase():将字符串的所有的字母转换为小写字母。
fromCharCode():静态方法,直接通过String类调用该方法,将一系列 UniCode值转换为字符串。
Indexof():返回字符串中特定字符串第一次出现的位置。
lastIndexOf():返回字符串中特定字符串最后一次出现的位置。
subString():返回某个字符串的子串
slice():返回字符串的某个子串,功能比sunString功能强大,可以支持负数参数
match():使用正则表达式搜索目标子字符串。
search():使用正则表达式搜索目标子字符串。
Concat():用于将多个字符串拼接成一个字符串。
split():将某个字符串分割成多个字符串,可以指定分割符
replace():将字符串的某个子串以特定的字符串代替。(只匹配第一个子串)
部分方法代码及结果如下:
<script type="text/javascript">
var a = 'abc中国';
var b = a.length;
var c = String.fromCharCode(97,98,99);
console.log(b); //5
console.log(c); //abc
var d = "abcdefghijklmn000m000";
var e = d.indexOf('e');
console.log(e); //4
var f = d.indexOf(e,6);
console.log(f); //-1
var g = d.lastIndexOf('m');
console.log(g); //17
var h = d.slice(2,4);
console.log(h); //cd
var i = 'abfd--abc@d.comcdefg';
var j = i.search(/[a-z]+@d.[a-zA-Z]{2}m/);
console.log(j); //6
var k = '1dfd2dfs3df5';
var l = k.match(/\d/g);
console.log(l); //1,2,3,5
</script> undefined和null
undefined类型的值只有一个undefined,该值用来表示某个变量不存在,或者没有为其分配值,也不用表示对象的属性不存在。null用于表示变量的值为空。如果不进行精确比较两者的话,很多时候undefined和null本身就相等,如果进行精确区分null和undefined,应该考虑使用精确等于符(===)。