JavaScript是弱类型脚本语言,声明变量时无须指定变量的数据类型。变量的数据类型是解释时动态决定的。但JavaScript的值保存在内存中时,也是有数据类型的。
一、基本数据类型

基本数据类型有如下5个。
➢数值类型:包含整数或浮点数。
➢布尔类型:只有true或false两个值。
➢字符串类型:字符串变量必须用引号括起来,引号可以是单引号,也可以是双引号。
➢undefined 类型:专门用来确定一个已经创建但是没有初值的变量。
➢null类型:用于表明某个变量的值为空。

科学计数法形如5.12e2代表5.12乘以10的2次方

1.字符串类型
JavaScript的字符串必须用引号括起来,可以是单引号或双引号。JavaScript中没有字符类型,或者说字符类型和字符串类型是完全相同的,JavaScript以String内建类来表示字符串, String类里包含了一系列方法操作字符串,

String类有如下基本方法和属性操作字符串。
➢String(): 类似于面向对象语言中的构造器,使用该方法可以构建一个字符串。
➢charAt(): 获取字符串特定索引处的字符。
➢charCodeAt(): 返回字符串中特定索引处的字符所对应的Unicode值。
➢length: 属性,直接返回字符串长度。JavaScript中的中文字符算-一个字符。
➢toUpperCase(): 将字符串的所有字母转换成大写字母。
➢toLowerCase(); 将字符串的所有字母转换成小写字母。
➢fromCharCode(): 静态方法,直接通过String类调用该方法,将一系列Unicode值转换成字符串。
➢indexOf(): 返回字符串中特定字符串第一次出现的位置。
➢lastIndexOf(); 返回字符串中特定字符串最后一次出现的位置。
➢substring(): 返回字符串的某个子串
➢slice(); 返回字符串的某个子串,功能比substring更强大,支持负数参数。
➢match(): 使用正则表达式搜索目标子字符串。
➢search(): 使用正则表达式搜索目标子字符串。
➢concat); 用于将多个字符串拼加成- -个字符串。
➢split(): 将某个字符串分隔成多个字符串,可以指定分隔符。
➢replace(): 将字符串中某个子串以特定字符串替代。

2.布尔类型
布尔类型的值只有两个: true 和false.布尔类型的值通常是逻辑运算的结果,或者用于标识某种状态

3.undefined 和null
undefined类型的值只有一个undefined,该值用于表示某个变量不存在,或者没有为其分配值,也用于表示对象的属性不存在。null用于表示变量的值为空。undefined 表示没有为变量设置值或属性不存在:而null 表示变量是有值的,只是其值为null.

二、复合类型

复合类型大致上有如下3种。
➢Object: 对象。
➢Array: 数组。.
➢Function: 函数。

常用的内置类:

➢Array: 数组类 ➢Object: 对象类。 ➢Function: 函数类。
➢Error: 错误类。 ➢Date: 日期类。 ➢Number: 数值类。
➢Math: 数学类,该对象包含相当多的执行数学运算的方法。
➢String: 字符串类。

JavaScript数组作为栈使用的两个方法如下。

➢push(ele): 元素入栈,返回入栈后数组的长度。
➢pop);元素出栈,返回出栈的数组元素。

JavaScript数组作为队列使用的两个方法如下。

➢unshif(ele): 元素入队列,返回入队列后数组的长度。
➢shift(): 元素出队列,返回出队列的数组元素。

与Java不同,栈不遵循先进后出,push是从数组尾部插元素,pop从后面弹出一个元素
队列不遵循先进先出,unshift从头部插入元素,shift从前面弹出元素,因此并不限制push和shift一起用

运算符总结

===:严格等于,必须前后两个变量的值相等,数据类型也相同时才会返回true。

with语句:避免重复书写对象
with(document){ writeln("Hello<br/>"); writeln("Word<br/>"); }for in 循环
for in循环的本质是一种foreach循环,它主要有两个作用:
➢遍历数组里的所有数组元素。
➢遍历JavaScript对象的所有属性。

<script>
        //for的两种遍历方法
        var a =['a','b','c','d'];
        for (let index = 0; index < a.length; index++) {
            document.writeln(a[index]+'<br>');
        }
        for ( key in a) {
            document.writeln('索引'+key+'的值是:'+a[key]+'<br>');
        }
</script>