第一章 JS的基础数据类型
前言 在JavaScript之中一共有十种数据类型分别为:
五种不同的数据类型 :String Number boolean object fuction
三种对象类型:Object Date Array
两种不包含任何值的类型:Null undefined
(1)undefined类型
只有一个特殊的值就是undefined,在使用var声明变量但未初始化时,变量的值是undefined。
(2)null类型
只有一个特殊的值就是null,null值表示一个空对象指针,使用typeof操作符检测null值会返回“object”。
(3)boolean类型
布尔值和布尔代数的表示完全一致,一个布尔值只有true、false两种值,要么是true,要么是false,可以直接用true、false表示布尔值,也可以通过布尔运算计算出来。boolean类型的字面值true和false是区分大小写的。
(4)number类型
JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型:123; // 整数123 070; //八进制的56 0xA; //十六进制的10 0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
(5)string类型
字符串是以单引号’或双引号”括起来的任意文本,比如’abc’,”xyz”等等。请注意,”或”“本身只是一种表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c这3个字符。
如果’本身也是一个字符,那就可以用”“括起来,比如”I’m OK”包含的字符是I,’,m,空格,O,K这6个字符。
如果字符串内部既包含’又包含”怎么办?可以用转义字符\来标识,比如:
‘I’m “OK”!’;
表示的字符串内容是:I’m “OK”!
转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\。
object类型
第二章 JS有关于数组的基本操作
1 概念:
数组基本定义:所谓数组就是用来存贮一系列变量的值,类别Java不同的地方在于,JS的数组存放的基加粗样式本的值不一定是同一个类型的。简而言之就是用一个变量的名称来进行存贮一系列的值。
2 数组常用的语法点:
(1)、数组的初始化操作:
初始化与Java类似分为静态初始化和动态初始化 (即数组定义时就进行赋值,以及后期赋值的区别)
var aObj=new Array([Size]);
var aObj=new Array(‘a’,’b’,’c’);
var aObj=[‘a’,’b’,’c’]; (直接定义法)
注:var aObj=[,,]; //数组中有两个元素,undefined
(2)数组元素的添加以及删除基本操作
1.栈操作:push()、pop()方法从数组末尾增加和减少一个或多个元素;
2.队列操作:shift()方法从数组首部移出一个元素,push()方法从数组末尾插入一个元素;
unshift()方法从数组的首部插入一个元素; 注:以上这些方法都会更改数组的长度。
3.使用delete运算符删除数组元素:
a=[1,2,3];
delete a[1]; //数组a在索引1处不在有元素
效果为打印的时候,数组之中只有两个元素1和3;
1 in a //false 表示1已经被删除
需要注意的是 数组删除之后的长度大小不发生改变
a.length //3,不影响数组长度,即长度不变
(此方法删除数组元素类似于赋值为undefined)
(3)数组的截取和合并操作
1.截取: aObj.slice(start, [end]);
注:(参数说明:参数为索引,取前不取后;索引为负数,则从倒[后]数计;)
var a=[1,2,3,4,5];
a.slice(3); //[4,5]
a.slice(1,-1); //[2,3,4]
a.slice(-3,-1); //[3,4]
2.合并: aObj.concat(item1,item2,item3。。。);
该方法只合并元素,并入到一个数组中:
var a=[1,2,3];
a.concat([4,5],[6,7]) //[1,2,3,4,5,6,7]
a.concat(4,[5,[6,7]]) //[1,2,3,4,5,[6,7]]
(4)数组排序
aObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址
aObj.sort(); //对数组元素排序,返回数组地址
(5)数组的字符串化操作
aObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用。
(6)数组中比较强大的方法splice
splice( para1,para2,val1,val2… ):项数组中添加和删除项,para1表示起始位置索引,para2表示删除的个数,后面的变量表示要添加的项的值,注 意是从para1处开始删除和添加的。
注意 : 参数为负数的问题,如果para1为负数,则会从数组结尾处计算,而para2为负数或0的话不会执行删除操作。
demo:
var a=[1,2,3,4];
console.log(a.splice(-2,1,'a','b')); //[3]
console.log(a); //[1, 2, "a", "b", 4]
console.log(a.splice(1,2,[1,2],3)); //[2, "a"]
console.log(a); //[1, [1,2], 3, "b", 4]
热身case :去除数组之中重复元素
(1)解决方案一:构造新数组进行暂存,遍历之后与暂存的值比较。如果相同,则不加进暂存的数组之中。
数组暂存解决方案:
function unique1(arr){
var Tarr=new Array();
for (var i = 0; i < arr.length; i++) {
if(Tarr.indexOf(arr[i])<0)
Tarr.push(arr[i]);
}
return Tarr;
}
(2)键值缓存互换