JavaScript 面向对象的程序设计知识点

面向对象的程序设计


1.内置对象及内置函数

## 基本包装类型

基本包装类型,和其他引用类型一样,拥有内置的方法可以对数据进行额外操作。
每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型对象,
从而可以调用一些方法操作这些数据。
读取模式:后台就会自动创建一个基本包装类型的对象。
1.自动创建 String 类型的一个实例(和基本类型的值不同,这个实例就是一个基本包装类型的对象)
2.调用实例(对象)上指定的方法
3.销毁这个实例
//用 String 构造函数创建一个实例,这个实例是一个对象
var str = new String('test')
//对象中有内置方法供开发人员调用
var str2 = str.substring()
// 销毁这个实例
str = null

引用类型和基本包装类区别:
引用类型:使用new操作符创建的引用类型实例,在执行流离开当前作用域之前一直都保存在内存中,
基本包装类型:只存在一行代码的执行瞬间,然后立即销毁读取完就立即销毁

给基本类型添加方法或者属性:
*增加对应的包装对象的原型方法
*使用new运算符创建String对象

## Boolean类型

直接将Boolean当做一个工具方法来使用

## Number类型

*内置属性(静态属性,直接调用即可)
MAX_VALUE          可表示的最大的数。
MIN_VALUE          可表示的最小的数。
NaN                非数字值。
NEGATIVE_INFINITY  负无穷大,溢出时返回该值。
POSITIVE_INFINITY  正无穷大,溢出时返回该值
prototype          使您有能力向对象添加属性和方法。
*内置方法(对象方法)
toString         把数字转换为字符串,使用指定的基数。
toLocaleString   把数字转换为字符串,使用本地数字格式顺序。
toFixed          把数字转换为字符串,结果的小数点后有指定位数的数字。
toExponential    把对象的值转换为指数计数法。
toPrecision      方法可在对象的值超出指定位数时将其转换为指数计数法。
valueOf          返回一个 Number 对象的基本数字值。

## String类型

*对象属性
constructor   对创建该对象的函数的引用  
length        字符串的长度        
prototype     允许您向对象添加属性和方法
*字符方法
charAt(index)        返回指定索引位置的字符
charCodeAt(index)    以Unicode编码形式返回指定索引位置的字符
                     返回的字符以Unicode编码的形式返回
*字符串操作方法
concat()     连接字符串。与Array.prototype.concat类似
slice()      方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
substring()  提取字符串中两个指定的索引号之间的字符。与slice一样,但是不支持负数参数
substr()     从起始索引号提取字符串中指定数目的字符。

*字符串位置方法
indexOf(str,n)      从n开始搜索第一个str,并将搜索的索引值返回 没有则返回-1
lastIndexOf(str,n)  从n开始搜索的最后一个str,并将搜索的索引值返回 没有则返回-1

*大小写转换方法
toLowerCase()         把字符串转换为小写。
toUpperCase()         把字符串转换为大写。
toLocaleLowerCase()   把字符串转换为小写。本地化
toLocaleUpperCase()   把字符串转换为大写。本地化

*字符串的模式匹配方法
match()    找到一个或多个正则表达式的匹配。
replace()  替换与正则表达式匹配的子串。
search()   检索与正则表达式相匹配的值。
split()    把字符串分割为字符串数组。


## Math对象

*对象属性:var pi = Math.PI;
E       返回算术常量 e,即自然对数的底数(约等于2.718)。
LN2     返回 2 的自然对数(约等于0.693)。
LN10    返回 10 的自然对数(约等于2.302)。
LOG2E   返回以 2 为底的 e 的对数(约等于 1.414)。
LOG10E  返回以 10 为底的 e 的对数(约等于0.434)。
PI      返回圆周率(约等于3.14159)。
SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)。
SQRT2   返回 2 的平方根(约等于 1.414)。
*对象方法:MDN文档
Math.min()   //求一组数中的最小值
Math.max()   //求一组数中的最大值
Math.ceil()  向上舍入
Math.floor() 向下舍入
Math.round() 四舍五入
Math.random() 返回大于0小于1的一个随机数 [0,1)


## Date对象

常用对象方法:
var time=new Date();
哪一年
console.log(time.getFullYear()) // 2021
哪一个月份,月份是从 0 开始数的
console.log(time.getMonth()) // 7  实际是8月
哪一天
console.log(time.getDate()) // 30
哪小时
console.log(time.getHours()) // 22
哪分钟
console.log(time.getMinutes()) // 45
哪秒钟
console.log(time.getSeconds()) // 23
当前日期是一周中的第几天(周日是 0,周六是 6)
console.log(time.getDay()) // 1
得到执行时间到 格林威治时间 的毫秒数 时间戳
console.log(time.getTime()) // 1630334723399

2.拓展库

## Moment.js      http://momentjs.cn/

JavaScript日期处理类库
a.Node.js中使用
1.在当前目录下使用node安装moment库
  npm install moment --save
2.模块化导入moment
  var moment = require('moment');
  设置本地语言为中文
  require('moment/locale/zh-cn')
  moment.locale('zh-cn');
3.根据对应的格式输出当前时间
  console.log(moment().format('MMMM Do YYYY, h:mm:ss a'));
  //八月 30日 2021, 11:07:46 晚上
b.浏览器中使用
// 可以下载js文件,也可使用对应的cdn文件,bootcdn
<script src="moment.js"></script>
<script>
    moment().format();
</script>
c.时间戳转换
console.log(moment(parseInt(1630334723399)).format('YYYY-MM-DD HH:mm:ss'));
//2021-08-30 22:45:23
//有关format的格式,参考http://momentjs.cn/docs/#/displaying/format/


## lodash       https://www.lodashjs.com/

解决浅拷贝问题:
var _ = require('lodash');
var obj = {
  name:'zhangsan',
  age: 18
}
// 使用cloneDeep方法
var obj2 = _.cloneDeep(obj);
obj2.age = 20;
console.log(obj); // { name: 'zhangsan', age: 18 }
console.log(obj2); // { name: 'zhangsan', age: 20 }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值