自学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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值