Web前端之JS概述、函数和数组(8)——数组和字符串

一、复习

1.数组
(1)创建 数组字面量 [ 'a','b'... ]
内置构造函数 new Array()
(2) 数组元素的访问 数组[下标]
(3) 数组的长度 数组.length 最后 数组[数组.length-1]
(4) 添加元素 数组[数组.length]=元素
(5)数组遍历 关联数组 for-in
索引数组 for-in for循环

2. 数组API

toString()/join('|')/concat(arr2,arr3...)/slice(start,end)
splice(start,count,value1,value2...)/reverse()/
sort(function(a,b){ return a-b; })

二、学习一门编程语言的基本步骤

(1)了解背景知识:历史、现状、特点、应用场景
(2)搭建开发环境:编写hello world
(3)变量和常量+
(4)数据类型
(5)运算符
(6)逻辑结构
(7)通用小程序
(8)函数和对象
(9)第三方库、框架
(10)实用的项目

三、数组和字符串

1.数组API
push() 往数组的末尾添加一个元素,返回数组的长度
pop() 删除数组末尾的元素,返回删除的元素
unshift() 往数组的开头添加一个元素,返回数组的长度
shift() 删除数组开头的元素,返回删除的元素

2.二维数组
数组中的每个元素也是数组

var arr=[ [],[],[]... ]

访问数组中的元素 数组[下标][下标]

3.字符串对象
包装对象:让原始类型的数据也可以像引用类型一样,具有属性和方法。
JS提供了3种包装对象:String、Number、Boolean
将任意的数据包装成字符串对象

new String(true)  //'true' ,返回类型为object
String(true)//  'true',返回类型为string

字符串对象本质上还是字符串,在使用中和字符串没有任何区别。

(1) 转义字符 \
转换字符的意义(作用)
\n 将字符n转换成换行符
\' 将引号转成普通的字符
\t 将字符t转换成制表符(tab键效果)

练习:打印出现 welcome to chi\na

  console.log('welcome to chi\\na');

(2)字符串中的API

 toUpperCase()  将英文字母转为大写
 toLowerCase()  将英文字母转为小写

练习:初始化4个英文字母(aMtC)并保存到变量中;循环弹出提示框,在提示框中输入4个英文字母(不区分大小写),如果输入正确结束循环。

var  code='aMTC';
while(true){
	var str=prompt('input checkcode');
	if(code.toUpperCase()==str.toUpperCase())
		break;
}//思路:不区分大小写就是都转成大写或者小写去比较相等与否。

字符串.length 获取字符串的长度
charAt() 获取下标对应的字符 字符串[下标]
charCodeAt() 查看某个字符的Unicode编码

练习:遍历字符串’javascript’,获取a出现的次数。

var str='javascript';
var count=0;
for(var i=0;i<str.length;i++){
	if(str.charAt(i)=='a')
		count++;
}
console.log(count);

indexOf() 查找某个字符第一次出现的下标,找不到返回-1
lastIndexOf() 查找某个字符最后一次出现的下标,找不到返回-1

练习:创建函数checkEmail,传递1个参数(要检测的邮箱),如果字符串中含有@,返回true,否则返回false。

function checkEmail(email){
    	if(email.indexOf('@')!=-1)
    		console.log('true');
    	else
    		console.log('false');
}
checkEmail('jerry123@sina.com.cn');

slice(start,end) 截取字符串,start开始的下标,end结束的下标,不包含结束本身;如果为负数,表示倒数第n个

练习:使用变量保存身份证号,获取其中的年月日以及性别。

'110230199802183572' -> 1998年02月18日 男
   
var str='110230199802183572';
var a=str.slice(6,10);//1998
var b=str.slice(10,12);//02
var c=str.slice(12,14);//18
var d=str.slice(-2,-1);//7
d=(d%2==1?'男':'女');
console.log(a+'年'+b+'月'+c+'日'+' '+d);

substr(start, count) 截取字符串,start开始的下标,count截取的长度;start为负值表示倒数第n个,count为空表示截取到最后。

练习:使用变量保存一个邮箱,分别获取邮箱的用户名和域名
jerry123@sina.com.cn

思路:”获取@的下标, 0~下标 下标下一位~最后

var email='jerry123@sina.com.cn';
var name=email.substr(0,email.indexOf('@'));
var field=email.substr(email.indexOf('@')+1);//count为空代表到最后
console.log('用户名:'+name+'\n域名:'+field);

练习:将一个英文单词的首字母转为大写,其余转为小写。

  'heLLo'   ->   'Hello'

split() 按照指定的字符,将字符串转为数组。 string->array

'how  are  you'
var str='how are you';
console.log(str.split(' '));//输出['how','are','you']   句子拆分成单词

(3)匹配模式(了解)
作用:用于查找、替换字符串
replace(value1,value2) 查找并替换; value1要查找的字符串,value2要替换的字符串。value1可以使用字符串,也可以使用正则表达式 /china/ig

i->ignore 忽略大小写 g->global 全局查找

例子:

var str='China是世界上人口最多的国家,china的互联网高度发达,CHINA有好多程序员,China将来需要更多的程序员';
    //查找 china,并替换成 中国
console.log(str.replace('china','中国'));
    //正则表达式的写法
    //i->ignore 忽略大小写
console.log(str.replace(/china/i,'中国'));
    //g->global 全局查找,有g才会全部否则只替换第一个
console.log(str.replace(/china/ig,'中国'));
    //查找所有的china
console.log(str.match(/china/ig))
    //查找china的下标
console.log(str.search(/chinese/i));

match(value) 用于查找匹配的字符串,返回一个数组
search(value) 用于查找满足条件的第一个字符的下标,如果找不到返回-1; 和indexOf功能类似。

(4)Math对象
Math对象不需要使用new关键字
1° 绝对值 abs()
2° 向下取整 parseInt() floor() //3.5->3
3° 向上取整 ceil() //4.1->5
4° 四舍五入取整 round()
5° 获取最大值 max()
6° 获取最小值 min()

(5)遇到的一个问题
对于弱类型语言(动态语言)而言:不可以直接修改字符串数组的内容。
在这里插入图片描述

四、课后任务:

(1)复习今天内容,整理思维导图
(2)练习:
将一句英文中每个单词的首字母转大写,其余字母转小写;

'hoW  aRe  yOu'   ->  'How  Are  You'

var str='hOw aRe yOU';
var arr=str.split(' ');
for(var i=0;i<arr.length;i++){
  var first=arr[i].substr(0,1).toUpperCase();
  var last=arr[i].substr(1).toLowerCase();
  arr[i]=first+last;
}
console.log(arr.join(' '));

(3)预习JS中的随机,Date对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值