自学JavaScript -day 2(字符串、数组、对象)

JavaScript

字符串

字符串的表示

使用''""括起来的字符为字符串

字符串本身包含'"

则需要使用转义字符\,例如I'm "ok"写为:

'I\'m \"ok\"';

ASCII字符的表示

ASCII字符可以用\x##的十六进制表示,如'A'可表示为:

'\x41';	//完全等同于'A'

Unicode字符的表示

Unicode字符可以用\u####表示,如'中文'可表示为:

'\u4e2d\u6587';	//完全等同于'中文'

多行字符串的表示

  1. 每行结束使用'\n'

  2. ES6标准新增了一种方法,用反引号表示:

    `wait
    for
    131
    `;
    

对字符串的操作

字符串拼接

  1. 使用+
    var name='131';
    var days='21';
    var s='wait for '+name+' - day '+days;
    
    缺点:连接大量字符串较麻烦
  2. 使用ES6新增的一种模板字符串:
    var name='131';
    var days='21';
    var s=`wait for ${name} - day ${days}`;
    

字符串的长度

var s='Hello World';
s.length;		//字符串长度为11

获取字符串指定位置的字符

使用类似Array的下标操作,索引从0开始:

var s='Hello World';
s[0];	//'H'
s[10];	//'d'
s[11];	//undefined

字符串不可变,所以对某个索引赋值,字符串不会发生变化,如:

var s='Hello World';
s[0]='a';	//s依旧为'Hello World'

JavaScript为字符串提供的一些常用方法

调用这些方法本身不会改变原有字符串的内容,而是返回一个新字符串

toUpperCase

把字符串全变为大写

var s='Defg';
var temp=s.toUpperCase();	//返回'DEFG'并赋值给变量'temp'
toLowerCase

把字符串全变为小写

var s='Defg';
s.toLowerCase();	//返回'defg'并赋值给变量'temp'
indexOf

指定字符串第一次出现的位置

var s='Defg abcd';
s.indexOf('abcd');	//返回5,没找到返回-1
substring

返回指定索引区的字串

var s='Defg';
s.substring(0,2);	//返回'De'
s.substring(2);		//返回'fg',从索引2开始到最后

sclice()用于数组中选出指定元素

var s=[0,'1',2,'3'];
s.slice(0,2);	//返回	0,'1'
s.slice(2);		//返回	2,'3',从索引2开始到最后

因为字符串也是一种数组,所以字符串也可以用slice()

数组

对数组的操作

数组的长度

var a=[1,2.1,'a',true,null];
a.length;	//获得数组长度,5

//直接给数组的length赋值会改变数组中元素的个数
a.length=6;	//变为:a=[1,2.1,'a',true,null,undefined]
a.length=2;	//变为:a=[1,2.1]

改变数组中的值

var a=[1,2.1,'a',true,null];
a[1]=131;	//变为:a=[1,131,'a',true,null]

//通过索引赋值时,索引超出范围,也会引起数组大小变化
a[6]=111;	//变为:a=[1,131,'a',true,null,undefined,111]

indexOf

找出指定元素的位置

var a=[1,2.1,'a',true,null];
a.indexOf(1);	//元素1的索引为0,没找到返回-1

slice

对应字符串的substring()

slice(start,end)

start 必须,end 可选

var a=[1,2.1,'a',true,null];
a.slice(0,2);	//[1,2.1]
a.slice(3);		//[true,null]
slice()

即不传递参数,则会截取所有元素,可以用于复制数组

var a=[1,2.1,'a',true,null];
var b=a.slice();	//数组a中元素和数组b中元素相同
a===b;				//false

push和pop

push():向数组末尾添加若干元素
pop(): 删除最后一个元素

var a=[1,2.1,'a',true,null];
a.push(1,2);	//返回数组新长度7,变为:a=[1,2.1,'a',true,null,1,2];
a.pop();		//返回数组最后一个值:2,变为:a=[1,2.1,'a',true,null,1];

unshift和shift

unshift():向数组头部添加若干元素
shift(): 删除第一个元素

var a=[1,2.1,'a',true,null];
a.unshift(1,2);	//返回数组新长度7,变为:a=[1,2,1,2.1,'a',true,null];
a.shift();		//返回数组最后一个值:1,变为:a=[2,1,2.1,'a',true,null];

sort

对数组排序,原数组改变

var a=['B','C','A'];
a.sort();	//变为:a=['A','B','C']

reverse

数组反转

var a=['B','C','A'];
a.reverse();	//变为:a=['A','C','B']

splice

var a=[1,2,3,4,5];

//从索引1开始删除2个元素,并添加2个元素
a.splice(1,2,3,1);	//返回删除元素[2,3],并在删除位置添加元素[3,1],则a变为[1,3,1,4,5]

//只删除
a.splice(2);		//返回删除元素[1,4,5],则a变为[1,3]

//只填加
a.splice(2,0,1);		//返回[],无删除元素,则a变为[1,3,1]

concat

数组连接,并返回一个新的数组,原数组不进行修改

var a=[1,2,3];
var b=a.concat(['a','b','c']);	//b=[1,2,3,'A','B','C'];

contact()可以接受任意个元素和数组,对于数组,它会把数组拆开,然后全部添加到新数组中

var a=[1,2,3];
a.contact(1,2,[3,4]);	//[1,2,3,1,2,3,4]

join

把数组中的每个元素用指定元素连接起来,然后返回连接后的字符串

var a=['a','b','c',1,2,3]
a.join('-');	//'a-b-c-1-2-3'
//如果元素不是字符串,则会自动转换成字符串后再连接

多维数组

var a=[[1,2,3],[4,5,6],'+'];
//数组a包含3个元素
//利用索引取到 5
console.log(arr[1][1]);

小节

对象

描述

var person={
	name:"Bobby",
	birth:1995,
	'month-date':'12-21'
};

最后一个属性后面无,
如果属性名包含特殊字符,必须用''括起来

访问

//一般属性
person.name;	//'Bobby'
person['name'];	//'Bobby'

//含特殊字符的属性
person['month-date'];

//访问不存在的属性,会返回undefined

//打印出所有属性:值
for(var temp in person){
	console.log(temp+':'+person[temp]);
}

添加删除属性

var person={
	name:"Bobby"
	'month-date':'12-21'
};
//新增birth属性
person.birth=1995;
//删除birth属性
delete person.birth;	//也可以delete person['birth'];
//删除一个不存在的属性也不会报错

查找属性是否存在

var person={
	name:"Bobby",
	birth:1995,
	'month-date':'12-21'
};

'name' in person;	//true

in判断的属性如果是对象继承来的,也会返回true

'toString' in person;	//true
//toString 定义在object对象中,而所有对象最终都会在原型链上指向object,所以person也拥有toString属性
//要判断一个属性是否是person自身拥有的,而不是继承得到的,可以用如下方法
person.hasOwnProperty('name');		//true
person.hasOwnProperty('toString');	//false
发布了7 篇原创文章 · 获赞 0 · 访问量 115

猜你喜欢

转载自blog.csdn.net/qq_42713936/article/details/94448223
今日推荐