编辑代码


var colorArr = ['red','green','yellow','red','blue','orange','black','white','purple'];
// 新建一个字符串测试数组
var unNumArr = ['0','1','2','3','4','5','6','7','8'];
// 新建一个有序数值测试数组
var numArr = ['123','21','5','231','50','3','21','0','34'];
// 新建一个无序数值测试数组
var obj = [
    {
        name:'万恒志',
        age:22
    },
    {
        name:'任婕婷',
        age:22
    },
    {
        name:'刘备',
        age:122
    },
    {
        name:'张飞',
        age:123
    },
    {
        name:'关羽',
        age:146
    },
];
// // 数组的位置方法

// // 1. indexOf() 正向查找   lastIndexOf()

// console.log('第一个‘red’的下标是:' + arr.indexOf('red'));
// // 正向从前往后查找默认第一个‘red’的下标,还可以制定查找第几个元素
// console.log('第二个‘red’的下标是:' + arr.indexOf('red',2));

// var arr2 = ['whz','red','green','whz','rjt'];
// console.log('第一个‘red’的下标是:' + arr2.lastIndexOf('whz'));
// // lastIndexOf 则是从后往前查找第一个匹配的元素,返回其下标值
// console.log('第二个‘red’的下标是:' + arr2.lastIndexOf('whz',2));
// // 如果查不到结果,就返回-1

// // 数组的迭代方法
// // 1. filter方法 将数组元素进行过滤
// var filterResult = numArr.filter(function(item,index,array){
//     return item>10;
//     // 过滤出item大于10的所有元素
// });
// console.log(filterResult);

// // 2. map方法 映射
// console.log(numArr.map(function(item,index,array){
//     return item*2;
// }));

// // 3. 数组遍历 forEach
// colorArr.forEach(function(item,index){
//     console.log(item);
// });

// 字符串的方法
var strChinese = '  万恒志喜欢任婕婷  ';  // 中文字符串
var strEnglish = 'whz love rjt, when I was young, I fall in love with her.';    // 英文字符串

// // 1. 属性
// console.log('字符串为:' + strEnglish);
// // 打印一下字符串
// console.log('字符串长度为:' + strEnglish.length);
// // 打印字符串的长度属性

// // 2. 方法
// console.log('获取字符为:' + strEnglish.charAt('9'));
// // 获取指定的字符
// console.log('字符串编码为:' + strEnglish.charCodeAt('0'));
// // 获取指定的字符对应的编码

// // 一般情况不需要使用concat方法进行字符串的拼接,可以用加号进行拼接。


// // 2. 字符串的切片方法
// // slice方法 substring方法 substr方法第一个参数都是一样的

// console.log(strChinese.slice(2));
// console.log(strChinese.substr(2));
// console.log(strChinese.substring(2));
// // 从第二个元素截取到末尾

// // 三个方法不同的地方在于第二个参数

// console.log(strChinese.slice(2,4));
// console.log(strChinese.substr(2,4));
// console.log(strChinese.substring(2,4));
// // slice和substring方法基本一样,顾头不顾尾
// // 但是substr方法 ,从第一个参数开始,第二个参数指返回的字符数


// // 3. 字符串的其他方法
// console.log(strChinese.indexOf('任'));
// // 查找任字符在字符串中的位置
// console.log(strChinese.indexOf('任',6));
// // 从第6个元素之后开始找
// console.log(strChinese.lastIndexOf('任'));
// // 倒序查找,用法和上述indexOf差不多

// console.log(strChinese);
// console.log(strChinese.trim());
// // trim方法去除前后空格

// console.log(strEnglish.toUpperCase());
// // 转换为大写字母
// console.log(strEnglish.toLowerCase());
// // 转换为小写字母

// 如何查找当前字符的所有位置

// var arr = [];
// // 创建一个空数组,用于保存所有找到的字符的位置。
// var pos = strEnglish.indexOf('w');
// while(pos > -1){
//     arr.push(pos);
//     pos = strEnglish.indexOf('w',pos+1);
// }

// console.log(arr);

// // map方法的应用

// var objName = obj.map(function(item,index){
//     return item.name;
// });
// var objAge = obj.map(function(item,index){
//     return item.age;
// });

// console.log(objName);
// console.log(objAge);

// 日期对象
// var now = new Date();
// console.log(now);

// // var xmas = new Date('Dec 25,2002 18:21:00');
// // // UTC格式输出日期顺序
// // console.log(xmas);

// // var xmds = new Date(1995,11,23,14,14,14);
// // // 月份取值是0-11
// // console.log(xmds);


// // 日期对象常用的方法
// // 1. 获取月份的第几天,取值是1--31
// console.log(now.getDate());

// // 2. 获取月份  取值0--11
// console.log(now.getMonth()+1);
// // 获取月份的时候需要+1

// // 3. 获取年份
// console.log(now.getFullYear());

// // 4. 获取星期几  0--6
// console.log(now.getDay());

// // 5. 获取小时  0--23
// console.log(now.getHours());

// // 6. 获取分钟  0--59
// console.log(now.getMinutes());

// // 7. 获取秒  0--59
// console.log(now.getSeconds());

// // 8. 获取毫秒  0--999
// console.log(now.getMilliseconds());


// // 日期对象格式化的一些方法
// // 1. 星期几   日  月  年
// console.log(now.toDateString());

// // 2. 获取时  分  秒  时区
// console.log(now.toTimeString());

// // 3. 月  日  年
// console.log(now.toLocaleDateString());

// // 4. 月  日  年  时  分  秒
// console.log(now.toLocaleString());

// // 5. 时  分  秒  时区
// console.log(now.toTimeString());

// // 6. 获取国际时间 不常用
// console.log(now.toUTCString());

// // 如何显示数字时钟时间格式?



// function nowNumTime(){
//     var now = new Date(); // now`s time 
//     var hour = now.getHours(); // now`s hour
//     var second = now.getSeconds(); // now`s second
//     var minute = now.getMinutes(); // now`s minute
//     var strtemp = '' + (hour>18?(hour-12):hour); // 12小时进制
//     if(hour === 0){
//         strtemp = '12';
//     }
//     strtemp = strtemp + ((minute<10)?':0':":") + minute;
//     strtemp = strtemp + ((second<10)?':0':":") + second;
//     strtemp = strtemp + ((hour>=12)?' p.m.':' A.M.');
//     return strtemp;
// }


// 字符串与数值类型相互转换
// var fstr = '123453.321431';

// // 1. 解析为整数,当不是数值的时候,就不会保留了
// console.log(fstr);
// console.log(parseInt(fstr));

// // 2. 解析为浮点数
// console.log(parseFloat(fstr));

// // 3. Number函数,如果解析之后不是纯数值的字符串,那么返回NaN
// console.log(Number(fstr));
// // 检测返回值是否是NaN方法,如果不是数值就返回一个true
// console.log(isNaN('aaa'));

// // 数值转字符串
// // 1. 
// var num = 213272.61836;
// // toString转换
// var a = num.toString();
// // 强制转换
// console.log(String(num));
// // 隐式转换
// '' + num;
// // 保留两位小数,四舍五入
// console.log(num.toFixed(2));

// // Global 对象
// // URI 统一通用资源定位符
// // encodeURI,会把中文和空格等不合法字符进行编码
console.log(encodeURI(strChinese));
// console.log(encodeURI(strEnglish));
// // encodeURIComponent 将所有的字符进行编码
// console.log(encodeURIComponent(strEnglish));


// console.log(decodeURI('%20%20%E4%B8%87%E6%81%92%E5%BF%97%E5%96%9C%E6%AC%A2%E4%BB%BB%E5%A9%95%E5%A9%B7%20%20'));

// windows对象详解
// 定义的全局变量和函数,都挂载在最顶层的window对象上。


// // math数学对象

// console.log(Math.E);
// console.log(Math.LN10);
// console.log(Math.LN2);
// console.log(Math.LOG2E);
// console.log(Math.SQRT2);
// console.log(Math.PI);
// console.log(Math.SQRT1_2); // 1/2二分之一开平方
// console.log(Math.max(12,321,4231,4,21,4,2314,1,42,14,2,15));
// console.log(Math.min(12,321,4231,4,21,4,2314,1,42,14,2,15));
// console.log(Math.max.apply(null,numArr));
// // 获取数组中的最大最小值,用max.apply方法
// console.log(Math.ceil(3.0));
// // ceil方法,不管小数点后面有多少位,都要往前进1,向上取整
// console.log(Math.floor(3.9));
// // 向下取整
// console.log(Math.round(3.5));
// // 标准的四舍五入

// console.log(Math.random());
// // 随机数0--1

// 某个范围的随机整数
function random(min,max){
return Math.floor(Math.random()*(max - min) - min);
}



// function colorRandom(){
//     var r = random(0,256);
//     var g = random(0,256);
//     var b = random(0,256);

//     return `rgb(${r},${g},${b})`;
// }

// console.log(colorRandom());

// 产生随机验证码
function creatCode(){
    // 设置默认的字符串
    var code = '';
    // 设置验证码长度
    var size = 4;
    // 设置随机遍历的字符串内容
    var randomCode = ['w','h','z','l','o','v','e','r','j','t'];
    for(var i = 0;i<size;i++){
        var index = random(0,9);
        code += randomCode[index];
    }
    return code;

}

console.log(creatCode());


// BOM对象 --- 浏览器对象模型
// 前进、后退、搜索按钮、地址栏等对象

// 1. window对象
// 2. location对象
// 3. screen对象
// 4. history对象