一、复习
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对象