目录
1.字符串变驼峰
字符串“get-element-by-id”,转换成“getElementById”
步骤分析:
- 先使用split分割成多个字符串数组
- 数组从索引号为1的位置开始循环、
- 循环的每个元素首字母使用toUpperCase()转换成首字母大写
- 使用join()把数组转换成字符串
function combo(msg) {
var arr = msg.split("-"); //[get,element,by,id]
for (var i = 1; i < arr.length; i++) {
arr[i] = arr[i][0].toUpperCase() + arr[i].substring(1); //Element
}
msg = arr.join(""); //msg=” getElementById”
return msg;
}
var str = "get-element-by-id";
var res = combo(str);
console.log(res);
2.日期转换
输出今天的日期,以YYYY-MM-DD的方式
步骤分析:
- new Date()获取当天的日期
- getFullYear()获取年
- getMonth() 获取月但是要+1并且使用三元表达式将月份转换成两位数,如果没有大于10就在前面拼接一个0,大于就直接输出
- getDate()获取日
- 最后使用字符串拼接
var d = new Date();
// 获取年,getFullYear()返回4位的数字
var year = d.getFullYear();
// 获取月,月份比较特殊,0是1月,11是12月
var month = d.getMonth() + 1;
// 变成两位
month = month < 10 ? "0" + month : month;
// 获取日
var day = d.getDate();
day = day < 10 ? "0" + day : day;
alert(year + "-" + month + "-" + day);
3.短路表达式
foo = foo||bar
相当于:
var foo;
if(foo){
foo=foo;
}else{
foo=bar;
}
4.随机数练习
用js随机数选取10-100之间的10个数字,存入一个数组并排序。
var arr = [];
function getRandom(istart, iend) {
var iChoice = iend - istart + 1;
return Math.floor(Math.random() * iChoice) + istart;
}
for (var i = 0; i < 10; i++) {
var num = getRandom(10, 100);
arr.push(num);
}
arr.sort();
console.log(arr.sort());
5.人民币
将数字12345678转换成RMB形式,如:”12,345,678“
var str = 12345678 + "";
// 封装一个反转字符串的方法
function res(str) {
// split(转换为数组) reverse(反转数组) join(转化为字符串)
return (str = str
.split("")
.reverse()
.join(""));
}
// 调用反转数组的方法
str = res(str);
//每三位字符加一个 ','的方法
function toRMB(str) {
var rmb = "";
for (var i = 1; i <= str.length; i++) {
rmb += str[i - 1]; // 添加字符串的每一项
if (i % 3 == 0 && i != str.length) {
rmb += ",";
}
}
return rmb;
}
// 调用函数
str = res(toRMB(str));
console.log(str); // 12,345,678
6.求阶乘
阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。
Number.prototype.N = function() {
var re = 1;
for (var i = 1; i <= this; i++) {
re *= i;
}
return re;
};
var num = 3;
alert(num.N());
7.防抖和节流
用户过于频繁的操作,会不停的和服务端进行数据交互,所以我们需要使用防抖,只保留最后一次的操作,从而实现优化性能的作用。
<input type="text" id="inp" />
<script>
var timer = null;
document.querySelector("#inp").oninput = function() {
if (timer != null) {
clearTimeout(timer);
}
timer = setTimeout(() => {
console.log(this.value); //打印输入框的值 实际上这里的代码就应该是发送后端,实现数据交互了
}, 1000);
};
</script>