JavaScript08

1.数组API

reverse() 翻转数组中的元素

var arr = ['a','b','c','d'];
//翻转数组元素
arr.reverse();
console.log(arr);

sort() 对数组进行排序,默认按照编码排序

sort( function(a,b){
  return  a-b; //按照数字从小到大排列
  //return  b-a; //按照数字从大到小排列
} )
var arr = [23,9,78,6,45];
//排序
//默认按照编码排序
//arr.sort();

如何学习API:API的作用、有哪些参数,哪些参数可选,哪些参数必选、返回结果是什么

concat(arr2,arr3…) 拼接多个数组,arr2,arr3表示要拼接的数组,返回拼接后的数组

//拼接多个数组
var arr1 = ['陈辉','李昊','冯勉'];
var arr2 = ['涛桑','包新龙','林波'];
var arr3 = ['王书','易望龙','崔晨锐'];
console.log( arr1.concat(arr2,arr3) );

slice(start, end) 截取数组元素,start开始的下标,end结束的下标,不包含end本身;如果下标是负数表示倒数,返回截取的元素,格式为数组。

var arr = ['陈辉','李昊','冯勉','包新龙','林波','王书','易望龙','崔晨锐'];
//截取数组元素
//console.log( arr.slice(2) );
//console.log( arr.slice(2,4) );
//console.log( arr.slice(-3,-1) );

练习:创建数组包含a~f,每个字母是一个元素;分别截取bc,ef;最后再将这两组拼接成一个新数组。

var arr = ['a','b','c','d','e','f'];
var arr1 = arr.slice(1,3);
var arr2 = arr.slice(-2);
//console.log(arr1,arr2);
console.log( arr1.concat(arr2) );

splice(start, count, v1,v2…) 删除数组中的元素,start开始的下标,count删除的数量,count为空删除的最后,下标是负数表示倒数;v1,v2…表示删除后补充的元素,返回删除的元素,原数组会发生变化

var arr = ['陈辉','李昊','冯勉','包新龙','林波','王书','易望龙','崔晨锐'];
//删除数组元素
//console.log( arr.splice(1) );
//console.log( arr.splice(1,2) );
console.log( arr.splice(-4,0,'陈宫傲','法紫阳','聂凯凯') );
console.log(arr);

练习:创建数组包含a~h,删除cd,替换f为m,在下标为1的位置插入z

var arr = ['a','b','c','d','e','f','g','h'];
console.log( arr.splice(2,2) );
console.log( arr.splice(-3,1,'m') );
console.log( arr.splice(1,0,'z') );
console.log(arr);


indexOf() 查找数组中是否含有某个元素,返回找到的第一个的下标,如果找不到返回-1

var arr = ['a','e','c','d','e','f','g','h'];
//查找是否含有某个元素
console.log( arr.indexOf('e') );

push() 往数组的末尾添加元素,返回数组的长度
pop() 删除数组末尾的一个元素,返回删除的元素

var arr = ['陈辉','李昊','冯勉','包新龙'];
//在末尾添加元素
//console.log( arr.push('涛哥','东哥') );
//删除数组末尾的一个元素
console.log( arr.pop() );
console.log(arr);

unshift() 往数组的开头添加元素,返回数组的长度

shift() 删除数组开头的一个元素,返回删除的元素

2.二维数组
用于对一组数据进行二次分类
[ [元素1,元素2 ], [ ], [ ] ]
访问
数组[下标][下标]

3.字符串对象

包装对象:目的是为了让原始类型的数据像引用类型数据,具有属性和方法,一共有三种包装对象,String、Number、Boolean

new String() 将数据转为字符串,返回对象
String() 将数据转为字符串,返回字符串

var str1 = '1';//字面量

var str2 = new String(1);
var str3 = String(1);//'1'
console.log(str2,typeof str2);
console.log(str3,typeof str3);

(1)转义字符 \

’ 将特殊意义的引号转义为普通引号

\n 将普通的字符n转义为换行符

\t 将普通的字符t转义为制表符(tab键效果)

console.log("It's a dog");
//转义字符 \
console.log('It\'s a dog');
console.log('It"s a dog');
//换行符
console.log('a\nd');
console.log('a\tb');

console.log( 'C:\\Users\\web' );
console.log( 'C:/Users/web' );

(2)API

length 获取字符串的长度
charAt(下标) 获取下标对应的字符,也可以使用数组形式 字符串[下标]

var str = 'javascript真难';
//获取字符串长度
console.log(str.length);
//通过下标来找字符
console.log(str.charAt(4),str[4]);

练习:声明变量保存字符串’javascript’,遍历字符串,统计出a字符出现的次数

//练习:声明变量保存javascript,遍历字符串,查找a出现的次数
var str = 'javascript';
for(var i = 0,count = 0;i < str.length;i++){
  //console.log(str[i]);
  //判断是否为a
  if(str[i] === 'a'){
    count++;
  }
}
console.log(count);

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

var str = 'javascript'; 
//查找满足条件的第1个
console.log( str.indexOf('a') );
//查找满足条件的最后1个
console.log( str.lastIndexOf('a') );

练习:声明变量保存用户输入的邮箱,如果邮箱中不含有@,打印’邮箱格式错误’,否则打印’邮箱格式正确’

var email = 'hello@tedu.cn';
if(email.indexOf('@') === -1){
  console.log('非法的邮箱');
}else{
  console.log('合法的邮箱');
}

slice(start, end) 截取字符串,start开始的下标,end结束的下标,不包含end,如果end为空会截取到最后,如果是负数表示倒数,返回截取到的字符串

var str = 'javascript';
//截取字符串
//console.log( str.slice(4) );
//console.log( str.slice(4,7) );
console.log( str.slice(-3,-1) );

练习:声明变量保存邮箱,分别截取出邮箱的用户名和域名 tao123@tedu.cn

var str = 'tao123456@126.com';
//查找@的下标
var i = str.indexOf('@');
var user = str.slice(0,i);
var domain = str.slice(i+1);
console.log(user,domain);

substr(start, count) 按照长度截取字符串,start开始的下标,count截取的长度,如果count为空截取到最后,如果下标是负数表示倒数,返回截取到的字符串

var str = 'javascript';
//console.log( str.substr(4) );
//console.log( str.substr(4,3) );
console.log( str.substr(-3,2) );

练习:声明变量保存一个人的身份证号码,分别截取生日中的年月日和性别,最后打印出以下格式 xxxx年xx月xx日 性别x

110235197307151870

var id = '110235199502203786';
var y = id.substr(6,4);
var m = id.substr(10,2);
var d = id.substr(12,2);
var s = id.substr(-2,1);
var sex = s%2 ? '男' : '女';
console.log(y + '年' + m + '月' + d + '日 性别' + sex);

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

var str = 'JavaScript';
console.log( str.toUpperCase() );
//console.log( str.toLowerCase() );
console.log(str);

split( 字符 ) 将字符串按照指定的字符分割为数组
练习:截取文件名称的后缀名 web.2104.tao.jpg

//abx.123.tt.jpeg
var str = 'abx.123.tt.jpeg';
var arr = str.split('.');
//找最后一个元素
console.log(arr[arr.length - 1]);
3.Math对象

不需要new来创建对象,可以直接使用对象下的api

PI 获取圆周率
abs() 获取绝对值
ceil() 向上取整
floor() 向下取值
round() 四舍五入取值
random() 获取随机,范围 >=0 <1

//获取圆周率
//console.log( Math.PI );
//绝对值 absolute
//console.log( Math.abs(18-20) );
//向上取整
//console.log( Math.ceil(3.14) );
//向下取值
//console.log( Math.floor(3.14) );
//四舍五入
//console.log( Math.round(5.49) );

//取随机 >=0 <1
//console.log( Math.random() );
//console.log( Math.random() );
//console.log( Math.random() );

(2)练习:

将一句英文中每个单词的首字母大写,其余字母小写
hOw aRe yOU -> How Are You

//将一句英文中每个单词的首字母大写,其余字母小写
var str = 'hOw aRe yOU';
//将字符串按照空格切割为数组
var arr = str.split(' ');
//遍历数组,得到每个单词
for(var i = 0;i < arr.length;i++){
  //console.log(arr[i]);
  //截取首字母转大写
  var f = arr[i].substr(0,1).toUpperCase();
  //截取其余的字母转小写
  var o = arr[i].substr(1).toLowerCase();
  //console.log(f+o);
  //用转换后替换之前
  arr[i] = f + o;
}
//将数组转为字符串,用空格分隔
console.log(arr.join(' '));

随机获取a~z之间的4个字母,放入到一个新数组

​ 格式 :[‘b’,‘c’,‘z’,‘t’]

//随机获取a~z之间的4个字母,放入到一个新数组
var arr = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
//准备一个空数组,用于保存获取到的随机
var arr2 = [];
//循环4次,每次获取一个随机
for(var i = 0;i < 4;i++){
  //随机下标 0 ~ 25
  //0~1 * 26   0~25.x  向下取整   0~25
  var n = Math.floor(Math.random() * arr.length);
  //console.log(n,arr[n]);
  //将每次获取的随机元素放入到arr2
  arr2.push( arr[n] );
  //解决不重复,每次获取到随机后,从原数组删除该元素
  arr.splice(n,1);
}
console.log(arr2);
console.log(arr);

(3)预习js第9天 重点Date对象

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值