《JavaScript高级程序设计》阅读笔记 二

包含:第五章与第六章

说两句:用块引用啥的,就是图好看


JS无类与接口,存在类似的对象定义。新对象通过使用new操作符后跟一个构造函数来创建。

DATE

1.ECMAScript提供了很多像Date这样的原生引用类型

2.使用:

创建日期对象,使用new操作符调用Date构造函数

如果Date构造函数不传入参数(其毫秒表示)的情况下,创建对象保存当前时间

方法:Date.parse(),Date.UTC(),Date.now()

继承方法:.toLocaleString(),.toString()····

下面的正则表达式没搞明白,待俺明白之时就回来写

原始值包装类型

1.为了方便操作原始值,提供了三个特殊的引用类:Boolean,Number,String,在创建一个属性和变量时候,会创建一个相应原始包装类型的对象。

2.用new ABC(abc),创建实例对象

  用ABC(abc),创建类型ABC

3.Boolean对象,

少用呐~

4.Number对象,

重写了.valueOf()   .toLocaleString()   .toString()转化相应基数的字符串,

新有toFixed()控制小数点,toPrecision()科学计数法,isInteger()辨别是否为整数

5.String对象

.length()获得长度 .charAt(int)查询字符 .charCodeAt(int)查看指定字符编码 

.concat(string)拼接

.slice(int,int){负数为长度+负数}与.substr(){负数同slice}与.substring(){负数为0}提取子字符串

.indexOf(char)与.lastIndexOf(char)定位字符

.startsWith(string)与.includes(string)与.endsWith查询是否含有字符串

.trim()删除前后空格符

.repeat(int)重复多少次该字符串

.padStart(int,char)与.padEnd(int,char)占位多长,用何补充

.toLowerCase()与.toUpperCase()转化大小写

.localeCompare(char)比较两个字符串

这个String提供的方法蛮多的,重点的查询,求长,定位需要记一下。

单例内置对象

1.就是在程序开始执行时就存在的对象

2.很多有Object,Array,String和Global,Math

3.Global

实际上,全局变量和全局函数都会编成Global对象的属性

没有明确说明this是谁时,Global便是this

Global把特殊值(NAN,Infinity)作为属性,把原生引用类型构造函数(Object)作为属性

使用时,直接使用它的方法或者用this.Global调用

encodeURI(),encodeURIComponent()用于编码统一资源标识符,传给浏览器

decodeURI(),decodeURIComponent()用于把上述方法的参数转回统一资源标识符

eval()把内置参数编程语句

4.window(以后细说)

是Global的代理,因此所有全局作用域中声明的变量和函数编程了window的属性。

5.Math

对象属性

E,LN10,LN2,LOG2E,PI,SQRT1_2,SQRT2

.min() .max()最大最小值

.ceil()最接近的整数 .floor()最接近的整数 roound()四舍五入 fround()32位舍入

random()取0~1随机数

abs()绝对值,三角函数(),还有好多可查

小结,本章讲自带的对象(引用值)。程序开始就有的单例内置对象(Global,Math等),原始值包装类型(Number,boolean,String),还有一些其他类型。对了,一开始定义变量时候,会暂时创建相应的类型对象。


Object

1.表达式上下文,赋值符号后面接{};语句上下文,语句if后面接{}

let person = new Object()等同于let person = {},但后者实际没有调用Object

小细节,不仅可以用点语法.name访问,还可以使用中括号["name"]访问,这样有个优势是可以访问空格

Array

1.js的数组可以储存任意类型的数据,同时也是动态大小的

2.实例化数组,let XX = new Array()。括号内可以写具体大小,可以写保存元素

3.当然它也有独特的上下文 = [" "," "," "," "]数组字面量,但不会调用Array

4.提供两个静态方法,这些方法,第二个参数是可选映射函数参数

Array.from()用于把所有可迭代的对象转化成数组

Array.of()将一组参数转化为数组

5.对于数组空位,可以使用逗号表示创建空位,可以用map遍历跳过空位,用join补充空位

6.原型提供3种方法检索数组内容  .keys()标记  .values()值  .entries()键值对来返回迭代器

7.原型提供方法.fill()填充 .copyWithin()划分区域赋值.join()补充空位或者改分隔符

8.原型提供栈方法,用push推入,用pop弹出,最后一位

9.原型提供队列方法,用push推入最后一项,用shift弹出第一项

10.原型提供排序方法.reverse()反转  .sort()排序,注意这两个不是产生新数组

10.5. spilice(第几个开始,删除几个,...可替换)

11.与String十分类似的方法们;

concat拼接,slice切割,indexOf查找

12.迭代方法(最后返回数组或结果):

.every()与.some()相似  用法如.every((item, index, array) => { inex > 2})返回总值true or flase

.filter((item, inex, array) => { index> 2})返回满足条件的元素组成的一个数组

.map((item,index,array) =>{ item*2})返回一个经过加工的数组

.forEach((item, index, array)=>{执行某些操作})区别于其他迭代方式,真正遍历一遍,无返回

13.归并方法

reduce((prev, cur现在值, index, array)=>{prev执行操作})返回prev

对象的另一种造法是表达式上下文{ },数组的另一种造法是数组字面量。数组有好多内容,相较于其他语言,有一种融合的意味,栈方法队方法,String相近方法,填充,检索,归并,不用完全记下来,有个大致印象感觉就可以。不过from这个静态方法和迭代器一定记下来。

定型数组等俺有实力了,再搞

Map

1.基本使用

使用new关键字和Map构造函数,创建空映射

.set(键值对)添加一个元素,返回实例Map

.get(键)获取值 .has(键)判断有无

.delete()和.clear()删除

2.迭代

Map会维护插入键值对的顺序(Object就不会),因此可以根据插入顺序进行迭代。

Map提供entries()方法与[Symbol.iterator]属性,生成[key,value]形式的数组。

也可以使用forEach(callback, opt_thisArg(重写this回调值))方法传入回调,再迭代

.keys()与.values()返回顺序键与值的迭代器

弱映射等俺有实力了,再搞

Set

1.基本使用

使用new关键字和Set构造函数,创建空集合

.add(值)添加值 .has(值)查询

.delete()和.clear()删除

2.迭代

.values()方法与keys()方法均可以依次迭代Set内部元素

.entries()返回一个包含两个元素的数组,两个元素重复

弱集合等俺有实力了,再搞

小结,本章介绍了7种集合类型,但是由于能力有限,理解有限,暂为4种。这四种中Array的功能最多,Map与Set功能类似,Object好理解。


小结一下小结,本次共两章,一章介绍引用类型,原始包装对象类型,单例内置对象类型,与其他可调用的类型;一章介绍集合类型,数组,对象,映射,集合均可以储存事物

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值