Loading

03JavaScript值类型使用

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>03JavaScript值类型使用</title>
</head>
<body>
<script src="https://cdn.staticfile.org/moment.js/2.24.0/moment.js"> </script>
<script>
/*3.1 类型判断*/
// let web = [];
// let web1 = {};
// console.log(web instanceof Array,web1 instanceof Object); // true true
// console.log(typeof web, typeof web1); // object object

/*3.2 字符串转义与模板字面量使用*/
// // 转义符 \
// let web = "www.\"baidu\".com";
// console.log(web); // www."baidu".com
//
// // 制表符 \t
// let web1 = "www.bai\tdu.com";
// console.log(web1); //www.bai	du.com
//
// // 换行 \n
// let web2 = "www.bai\ndu.com";
// console.log(web2) // www.bai
//                   // du.com
//
// // 字符串的连接
// let web3 = "上海";
// let web4 = "北京";
// console.log(`我在${web3}不在${web4}`); // 我在上海不在北京

/*3.3 模板字面量嵌套使用技巧*/
// function show() {
//     return "baidu.com";
// }
//
// let web = `www.${show()}`;
// console.log(web); // www.baidu.com

/*3.4 标签模板实例操作*/
// let name = "百度";
// let web = "www.baidu.com";
// tag`${name}的地址是${web}`;
//
// function tag(strings, ...vars) {
//     console.log(vars); //(2)['百度', 'www.baidu.com']
//     console.log(strings);//(3)['', '的地址是', '', raw: Array(3)]
// }

/*3.5 字符串基本函数使用*/
// //获取字符串的长度
// let name1 = "baidu.com";
// console.log(name1.length); //9
//
// //字符串转大写
// let name2 = "baidu.com";
// console.log(name2.toUpperCase()); //BAIDU.COM
//
// //字符串转小写
// let name3 = "BaiDu.Com";
// console.log(name3.toLowerCase()); //baidu.com
//
// //清除字符串的空白
// let name4 = "  baidu.com  ";
// console.log(name4.length,name4.trim().length); //13 9
//
// //获取其中某个字符
// let name5 = "baidu.com";
// console.log(name5[1],name5[3]); //a d

/*3.6 字符串截取操作*/
// let name1 = "baidu.com";
// console.log(name1.slice(1,3), name1.substring(1,3), name1.substr(1,3)) //ai ai aid
// console.log(name1.slice(-3,-1), name1.substr(-3, 2)) // co co

/*3.7 检索字符串使用*/
// const hd = "baidu.com";
// console.log(hd.includes("ai"),hd.includes("c",7)) //true false
// console.log(hd.indexOf("ai"),hd.indexOf("i",3)) //1 -1
// console.log(hd.lastIndexOf("ai"),hd.lastIndexOf("i",3)) //1 2
// console.log(hd.startsWith("b"),hd.startsWith("B"),hd.toUpperCase().startsWith("B"),hd.endsWith("M")) //true false true false

/*3.8 字符串替换标题关键词*/
// let name = "www.baidu.com";
// console.log(name.replace("baidu","google")); //www.google.com

/*3.9 电话号码模糊处理*/
// // 重复函数
// console.log("*".repeat(3)); //***
//
// //模糊处理
// function phone(mobile, len=3) {
//     return String(mobile).slice(0,len*-1) + "*".repeat(len)
// }
// console.log(phone(14892835896)); //14892835***

/*3.10 类型转换使用*/
//3.10.1 string转number
// let number1 = "99";
// let number2 = 100;
// console.log(number1+number2, number1*1+number2, Number(number1)+number2); //99100 199 199

//3.10.2 number转string
// let number1 = 99;
// console.log(typeof number1); // number
// console.log(typeof (99+"")); // string
// console.log(typeof String(number1)); // string

// let number2 = 99;
// console.log(number2.toString() + 100); //99100

//3.10.3 特殊string转number
// let number1 = "99.99LiuChang88";
// console.log(parseInt(number1),parseFloat(number1));//99 99.99

// let number2 = "LiuChang88";
// console.log(parseInt(number2));//NaN => 非数值

//3.10.4 将字符串转为数组
// let number1 = "www.baidu.com";
// console.log(number1.split('.')); //(3)['www', 'baidu', 'com']

//3.10.5 将数组转为字符串
// let number1 = ["www","baidu","com"];
// console.log(number1.join(".")); //www.baidu.com

// let number2 = ["www","baidu","com"];
// console.log(number2.toString()); //www,baidu,com

/*3.11 Boolean隐式转换*/
// 比较时会转换成数值(Number(<值>))后进行比较,特别注意: ==表示强转,===表示不强转
// 表达式判断时会做布尔类型转换(Boolean(<值>))

// 0 == false  "" == false  1 = true
// console.log(1 == true);     //true
// console.log(0 == false);    //true
// console.log("" == false);   //true
// console.log("1" == true);   //true
// console.log("0" == false);  //true
// console.log(8 == true);     //false
// console.log("8" == true);   //false
// console.log({} == true);    //false

// object、number、string 作为if判断时系统会隐式[console.log(Boolean(<值>))]转为true
// let name1 = 8;
// let name2 = "8";
// let name3 = {};
// let name4 = "";
// let name5 = [];

// if (name1) {
//     console.log("number"); //number
// }
//
// if (name2) {
//     console.log("string"); //string
// }
//
// if (name3) {
//     console.log("object"); //object
// }
//
// if (name4) {
//     console.log("string"); // 没有任何值输出
// }
//
// if (name5) {
//     console.log("array");  // array
// }

// 数组
// let array = [];
// console.log(Number(array), array == false);  //0 true
// let array1 = [3,4,5];
// console.log(Number(array1), array1 == true); //NaN false

/*3.12 显示转换Boolean类型*/
/*3.12.1 针对数值*/
// let number = 0;
// console.log(typeof number);   // number
// // 一个 感叹号 转换为布尔并取反
// console.log(!number);    // true
// // 两个 感叹号 再转换回来
// console.log(!!number);   // false
// console.log(Boolean(number)); // false

/*3.12.2 针对字符串*/
// let string = "www.baidu.com";
// console.log(!!string);        // true
// console.log(Boolean(string)); // true

/*3.12.3 针对数组*/
// let array = [];
// console.log(!!array);        // true
// console.log(Boolean(array)); // true

/*3.12.4 针对对象*/
// let object = {};
// console.log(!!object);        // true
// console.log(Boolean(object)); // true

/*3.13 Number声明方式与基本函数*/
/*3.13.1 基本声明*/
// let number = 99;
// console.log(typeof number);            // number
// console.log(typeof number.toString()); // string

/*3.13.2 判断数值是否为整数*/
// let number = 99;
// console.log(Number.isInteger(number)); // true

/*3.13.3 对数值保留指定小数位并进行四舍五入*/
// let number = 99.986;
// console.log(number.toFixed(2)); // 99.99

/*3.14 数值类型转换技巧与NaN类型*/
/*3.14.1 NAN类型(Not A Number)*/
// console.log(Number("liuChang"));   // NaN
// console.log(1/"liuChang");         // NaN
// // NaN 和 NaN 之间不能比较
// console.log(NaN == NaN);           // false
// console.log(Number.isNaN(1/"LC")); // true

/*3.14.2 类型转换*/
// console.log(Number(true));  // 1
// console.log(Number(false)); // 0

// let name = "89.987baiduCom";
// console.log(parseInt(name));   // 89
// console.log(parseFloat(name)); // 89.987

// let array1 = [];
// let array2 = [2];
// let array3 = [1,2,3];
// console.log(Number(array1), Number(array2), Number(array3)); // 0 2 NaN

/*3.15 Math数学计算*/
/*3.15.1 取最大值、最小值 */
// console.log(Math.max(1,2,3,4,5,6)); //6
// console.log(Math.min(1,2,3,4,5,6)); //1

/*3.15.2 从数组中取最大值*/
// let grade = [120,118,130,119];
// console.log(Math.max.apply(null,grade)); //130

/*3.15.3 向上取整、向下取整*/
// console.log(Math.ceil(5.1345)); // 6
// console.log(Math.floor(5.987)); // 5

/*3.15.4 舍入函数*/
// console.log((5.556).toFixed(2));  // 5.56
// console.log(Math.round(5.556));   // 6

/*3.15.5 随机数获取*/
// // >>0 ~ <1
// console.log(Math.random())
// // 获取0 ~ 5之间的数
// console.log(Math.floor(Math.random() * (5 + 1)));
// // 获取2 ~ 5之间的数
// console.log(2 + Math.floor(Math.random() * (5 - 2 + 1)));

/*公式:
取 2~5 的随机数(不包括 5)公式为:min+Math.floor(Math.random()*(Max-min))
取 2~5 的随机数(包括 5)公式为:min+Math.floor(Math.random()*(Max-min+1))
*/

/*3.16 日期时间戳的使用与计算脚本执行时间*/
// const date = new Date();
// console.log(date); // Wed Jul 06 2022 18:38:38 GMT+0800 (中国标准时间)
// console.log(typeof date, date * 1); // object 1657103918167

/*3.16.1 基本使用*/
// const date = Date();
// console.log(date);  // Wed Jul 06 2022 18:39:42 GMT+0800 (中国标准时间)
// console.log(typeof date, date * 1); // string NaN

/*3.16.2 时间戳*/
// const date = Date.now();
// console.log(date); // 1657097502627 注意: 后 3 位是毫秒

/*3.16.3 脚本运行时间计算*/
// const start = Date.now();
// for (let i=0;i<200000000;i++) {}
// const end = Date.now();
// console.log((end - start)/1000+"秒"); // 0.177秒

// console.time("for");
// for (let i=0;i<200000000;i++) {}
// console.timeEnd("for"); // for: 180.9658203125 ms

/*3.16.4 根据具体的日期变为js的时间对象*/
// const date = new Date("1990-9-22 7:22:21");
// console.log(date) // Sat Sep 22 1990 07:22:21 GMT+0800 (中国标准时间)
// console.log(date.getMonth()) // 8

// const date = new Date(1990,8,22,7,22,21);
// console.log(date) // Sat Sep 22 1990 07:22:21 GMT+0800 (中国标准时间)
// console.log(date.getMonth()) // 8

// const param = [1990,8,22,7,22,21];
// const date = new Date(... param);
// console.log(date); //Sat Sep 22 1990 07:22:21 GMT+0800 (中国标准时间)
// console.log(date.getMonth()); //8

/*3.17 ISO与TIMESTAMP格式互换*/
/*3.17.1 标准时间转为时间戳*/
// const date = new Date("1990-9-22 7:22:21");
// console.log(date * 1);       // 653959341000
// console.log(Number(date));   // 653959341000
// console.log(date.valueOf()); // 653959341000
// console.log(date.getTime()); // 653959341000

/*3.17.2 时间戳转为标准时间*/
// const date = new Date("1990-9-22 7:22:21");
// const timestamp = date.valueOf();
// console.log(new Date(timestamp)); // Sat Sep 22 1990 07:22:21 GMT+0800 (中国标准时间)

/*3.18 封装日期格式化函数*/
// const date = new Date("1992-2-12 10:22:18");
// console.log(date); // Wed Feb 12 1992 10:22:18 GMT+0800 (中国标准时间)
// // 获取日期的年份
// console.log(date.getFullYear());   // 1992
// // 获取日期的月数(注意: 月数从 0 开始)
// console.log(date.getMonth()+1);    // 2
// // 获取日期的日
// console.log(date.getDate());       // 12
// // 获取日期的小时
// console.log(date.getHours());      // 10
// // 获取日期的分钟
// console.log(date.getMinutes());    // 22
// // 获取日期的秒数
// console.log(date.getSeconds());    // 18
//
// const formatDate = `${date.getFullYear()}年${date.getMonth()+1}月`;
// console.log(formatDate); // 1992年2月

/*3.19 优秀的日期处理库momentjs*/
let date = moment().format('YYYY-MM-DD HH:mm:ss');
console.log(date); // 2022-07-06 19:20:03

let date1 = moment("1992-02-12 09:13:22").format('YYYY-MM-DD HH:mm:ss');
console.log(date1); // 1992-02-12 09:13:22

let date2 = moment("1992-02-12 09:13:22").add(10,"days").format('YYYY-MM-DD HH:mm:ss');
console.log(date2); // 1992-02-22 09:13:22

let date3 = moment().format('YYYY年MM月DD HH时mm分ss秒');
console.log(date3); // 2022年07月06 19时20分03秒

</script>
</body>
</html>

 

posted @ 2022-07-16 20:57  云起时。  阅读(12)  评论(0编辑  收藏  举报