js原生对象

原生对象

Math对象

Math 是 JavaScript 的原生对象,提供各种数学功能。

该对象不是构造函数,不能生成实例,所有的属性和方法都必须在 Math 对象上调用。

// console.log(Math); // {} 它里面有很多的属性和方法,针对数学计算的

console.log(Math.floor(3.999)); // 3 向下取整 去掉小数部分
console.log(Math.ceil(3.001)); // 4 向上取整 只要有小数就进位
console.log(Math.round(3.14159)); // 3 四舍五入
console.log(Math.abs(-100)); // 100 绝对值
console.log(Math.max(1, 2, 36, 9)); // 36 取参数的最大值
console.log(Math.min(1, 2, 36, 9)); // 1 取参数的最小值

console.log(Math.pow(2, 10)); // 1024 2的10次方
console.log(Math.pow(3, 2)); // 9 3的平方
console.log(Math.sqrt(60)); // 7-8 开根号

随机数

随机数:大于等于0小于1的一个数

for (var i = 0; i < 20; i++) {
    console.log(Math.random());
}

公式

  • 1、大减小加1
  • 2、乘以随机数
  • 3、加上最小数
  • 4、向下取整
// 随机数公式
function getRandom(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
}

for (var i = 0; i < 20; i++) {
    console.log(getRandom(10, 100));
}

案例:抽奖、验证码

时间对象

创建时间

创建一个时间,它是一个对象,它下面有很多的属性和方法

// 没有参数,创建的是电脑此时此刻的时间
var d = new Date();
console.log(d); // {}   它是一个对象,它下面有很多的属性和方法
console.log(typeof d); // 'object'
console.log(d.toString()); // 转字符串
console.log(d.toLocaleString()); // 转当地的时间字符串


// -------------------------------
// 1、有参数(全数字)
var d = new Date(2030, 9, 1, 12, 12, 12); // 2030年10月1日 12点12分12秒   月要减1

// 2、有参数(字符串参数)
var d = new Date('2030-12-1 12:12:12'); // 2030年12月1日 12点12分12秒
var d = new Date('2030/11/1 12:12:12') // 2030年11月1日 12点12分12秒
var d = new Date('2030,11,1 12:12:12') // 2030年11月1日 12点12分12秒

// 3、时间戳
var d = new Date(-86309844266320);


console.log(d.toLocaleString());

时间的字符串表示

var d = new Date();

// 英文
console.log(d.toString());
console.log(d.toTimeString());
console.log(d.toDateString());

console.log('---------------------------------');

// 中文
console.log(d.toLocaleString());
console.log(d.toLocaleTimeString());
console.log(d.toLocaleDateString());

获取时间的某一部分

var d = new Date(); // {}  

var year = d.getFullYear(); // 年
var month = d.getMonth(); // 月,返回的是0--11,代表1--12
var day = d.getDate(); // 日

var week = d.getDay(); // 星期 ,返回0--6,代表周日--周六

var h = d.getHours(); // 小时
var m = d.getMinutes(); // 分钟
var s = d.getSeconds(); // 秒


console.log(year, month, day, week, h, m, s);

案例:数字时钟

设置时间的某一部分

var d = new Date();

d.setFullYear(2030); // 设置年为2030
d.setMonth(15); // 设置月 具有容错的能力
d.setDate(45); // 设置日 具有容错能力

console.log(d.toLocaleString());

时间戳

// 时间戳:从1970年1月1日0时到这个时间的毫秒数


// 方式一
var d = new Date();
console.log(d.getTime()); // 1630984426632


// 方式二,只能返回当前的时间戳,IE8及以下不支持
console.log(Date.now()); // 1630984426632


Date.parse();

案例:倒计时

moment.js

官网:http://momentjs.cn/

moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。日常开发中,通常会对时间进行下面这几个操作:比如获取时间,设置时间,格式化时间,比较时间等等。通过moment.js可以快速的格式化时间,得到想要的格式。

下载:http://cdn.staticfile.org/moment.js/2.24.0/moment.js

创建时间
// 创建时间
var d = moment(); // 创建当前时间
var d = moment('2030-12-12');
var d = moment('2030-12-12 12:12:12');
var d = moment('20301212');
var d = moment(Date.now() + 86400000); // 接收时间戳

console.log(d.format('YYYY年MM月DD日 HH:mm:ss'));
格式化时间
var d = moment();

// format格式化,我们可以给format传参
console.log(d.format('YYYY')); // 年
console.log(d.format('MM')); // 月
console.log(d.format('DD')); // 日
console.log(d.format('d')); // 星期  返回0--6
console.log(d.format('HH')); // 小时
console.log(d.format('mm')); // 分钟
console.log(d.format('ss')); // 秒
console.log(d.format('x')); // 只含秒的时间戳
console.log(d.format('YYYY年MM月DD日 HH:mm:ss')); // 2020年05月26日 11:36:16
添加时间
// 添加时间
// 格式:时间.add(增加的数量, 时间的键);
var d = moment().add(7, 'day'); // 7天以后
var d = moment().add(7, 'year'); // 7年以后
console.log(d.format('YYYY年MM月DD日 HH:mm:ss'))
减少时间
// 减少时间
// 格式:时间.subtract(减少的数量, 时间的键);
var d = moment().subtract(7, 'day'); // 7天以前
var d = moment().subtract(7, 'year'); // 7年以前
console.log(d.format('YYYY年MM月DD日 HH:mm:ss'));

字符串对象

字符串创建

// 1、字面量,单双引号引着的就是字符串
var str1 = '平头哥';
console.log(str1, typeof str1);

// 2、方法创建
var str2 = String('平头妹');
console.log(str2, typeof str2); // 平头妹 string

// 3、构造函数创建
var str3 = new String('welcome');
console.log(str3, typeof str3); // {"welcome"}     "object"

字符串属性和方法

var str = '小芳约不';


// 1、长度
console.log(str.length); // 4

// 2、下标,可以通过下标获取某一个字符
// 字符串[下标]     字符串.charAt(下标)
console.log(str[1]); // 芳
console.log(str.charAt(2)); // 约

// 3、循环:因为字符串有长度,又可以通过下标获取某一个字符,所以可以循环
for (var i = 0; i < str.length; i++) {
    console.log(str[i]);
}

// ---------------------------

// 4、charCodeAt: 返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535之间的整数
console.log(str.charCodeAt(0)); // 小  23567
console.log(str.charCodeAt(1)); // 芳  33459
console.log(str.charCodeAt(2)); // 约  32422
console.log(str.charCodeAt(3)); // 不  19981

// 5、将Unicode编码转成汉字
console.log(String.fromCharCode(23567, 33459, 32422, 19981)); // 小芳约不

indexOf和lastIndexOF

  • 字符串.indexOf(要查找的字符, 查找的起始位置); 从左向右找
  • 字符串.lastIndexOf(要查找的字符, 查找的起始位置); 从右向左找

作用:返回查找字符在这个字符串中的下标,没有返回-1

案例:字符串去重

字符串截取

var str = 'abcdefg';

// 字符串.substring(截取的起始位置, 截取的结束位置);
console.log(str.substring()); // abcdefg  没有参数,返回全部
console.log(str.substring(2)); // cdefg  有一个参数,从参数处开始到最后
console.log(str.substring(2, 5)); // cde  从第一个参数开始到第二个参数结束,但是不包括第二个参数
console.log(str.substring(-2, 5)); // abcde  负数相当于0
console.log(str.substring(5, -2)); // abcde  如果第一个参数比第二个参数大,则交换

// ---------------------------------------
// 字符串.slice(截取的起始位置, 截取的结束位置);     推荐使用
// 1、负数和长度相加,2、第一个参数比第二个参数大返回空
// 截取的标准方法
var str = 'abcdefg';
console.log(str.slice()); // abcdefg   没有参数,返回全部
console.log(str.slice(2)); // cdefg   有一个参数,从参数处开始到最后
console.log(str.slice(2, 5)); // cde   从第一个参数开始到第二个参数结束,但是不包括第二个参数
console.log(str.slice(2, -2)); // cde   负数同长度相加
console.log(str.slice(5, 2)); // ''   第一个参数比第二个参数大,不交换位置,返回空字符

// ---------------------------------------------
var str = 'abcdefg';
// 字符串.substr(起始下标, 截取的个数)
console.log(str.substr()); // abcdefg  没有参数,返回全部
console.log(str.substr(2)); // cdefg  有一个参数,从参数处开始到最后
console.log(str.substr(2, 2)); // cd  从第一个参数开始,截两个
// 截取字符串"abcdefg"中的def
var str = 'abcdefg';
console.log(str.slice(3, 6)); // 'def'

转大小写

var str = 'abcd';

var s = str.toUpperCase(); // 转大写
console.log(s); // ABCD

var m = s.toLowerCase(); // 转小写
console.log(m); // abcd

字符串split 和 数组join

// 字符串.split(参数)
// 作用:将字符串以参数拆分成数组

var str = '2023-12-21';

console.log(str.split('-')); // ["2023", "12", "21"]
console.log(str.split()); // ["2023-12-21"]
console.log(str.split('')); // ["2", "0", "2", "3", "-", "1", "2", "-", "2", "1"]

// --------------------------
// 数组.join(参数)
// 作用:将数组以参数拼接成字符串
var arr = ["2023", "12", "21"];
console.log(arr.join('-')); // 2023-12-21
console.log(arr.join()); // 2023,12,21
console.log(arr.join('')); // 20231221

replace (翻转)

// 字符串.replace(被替换的字符, 新的字符串);
// 返回被替换以后的字符串,不影响原字符串

var str = '我就是我';

var s = str.replace('我', '平头哥');
console.log(s); // '平头哥就是我'
console.log(str); // '我就是我'

trim

// 字符串.trim();
// 作用:去除字符串左右空格
// IE8及以下不支持(正则里解决)

var str = '    小芳,约不    ';

console.log('(' + str + ')');
console.log('(' + str.trim() + ')');

字符串比较

// 如果两边都是字符串,则是字符串的比较,字符串比较的字符编码,从左向右,一位一位的比较
// 常用字符对应编码:“0”---48,“A”---65,“a”---97。
console.log(12 > 2); // true
console.log(12 > '2'); // true
console.log('12' > '2'); // false 

console.log('A' < 'a'); // true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值