前端总结
JS
innerHTML & innerText 的作用与区别
1.都可以获取或者设置元素的内容
2.innerHTML可以解析内容中的html标签
3.innerText不能解析内容中的html标签
JavaScript的组成部分
1.ECMAScript(语法部分):Javascript语言基础
2.DOM:(文档对象模型):规定了访问HTML和XML的方法
3.BOM(浏览器对象模型):提供了浏览器窗口之间进行交互的对象和方法
介绍JS有哪些内置对象
1.数据封装类对象:Object,Array,Boolean,Number,String
2. - 其他对象:Function,Arguments,Math,Date,RegExp,Error
- 在JavaScript中,arguments是对象的一个特殊属性。arguments对象就像数组,但是它却不是数组。
argument 对象包含了函数调用的参数数组,通过这种方式你可以很方便的找到最后一个参数的值。 [1]
1:arguments是收到的实参副本
在词法分析中, 首先按形参形成AO的属性,值为undefined
当实参传来时, 再修改AO的相应属性.
2:并把所有收到实参收集起来,放到一个arguments对象里
t(a,b,c){},
调用时: t(1,2,3,4,5) 5个参数
此时 , AO属性只有a,b,c,3个属性, arguments里有1,2,3,4,5, 所有的值 - RegExp:正则表达式
3… - ES6新增对象:Symbol,Map,Set,Promise,Proxy,Reflect
- Symbol:Symbol 数据类型
Symbol概述 symbol 是ES6 引入了一种新的基本数据类型(原始数据类型) Symbol ,表示独一无二的值。
每个从 Symbol() 返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据 类型仅有的目的
Symbol数据类型的特点
1、Symbol的值是唯一的,用来解决命名冲突的问题
2、Symbol值不能与其他数据类型进行运算
3、Symbol定义得的对象的属性不能使用for…in 循环遍历,但是可以使用Reflect.ownKeys来获取对象 的所有键名 - Promise:是异步编程的一种解决方案 Promise,就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果;从语法上说,Promise是一个对象,从它可以获取异步操作的消息;Promise提供统一的API,各种异步操作都可以用同样的方法进行处理。 Promise对象有以下2个特点:
-
- 1.对象的状态不受外界影响;Promise对象代表一个异步操作,有三种状态:pending(进行中)、fufilled(已成功)、rejected(已失败);只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态
-
- 2.一旦状态改变,就不会再变,任何时候都可以得到这个结果;Promise对象的状态改变,只有两种可能:从pending变为fulfilled 和 从pending变为rejected;只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这是就称为resolved;如果改变已经发生了,再对Promise对象添加回调函数,也会立即得到这个结果;这与事件Event完全不同,事件的特点是,如果错过了它,再去监听,是得不到结果的
有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数,此外,Promise对象提供统一的接口,使得控制异步操作更加容易
Promise的缺点:
- 2.一旦状态改变,就不会再变,任何时候都可以得到这个结果;Promise对象的状态改变,只有两种可能:从pending变为fulfilled 和 从pending变为rejected;只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这是就称为resolved;如果改变已经发生了,再对Promise对象添加回调函数,也会立即得到这个结果;这与事件Event完全不同,事件的特点是,如果错过了它,再去监听,是得不到结果的
- +1.无法取消Promise,一旦新建它就会立即执行,无法中途取消
- +2.如果不设置回调函数,Pormise内部抛出的错误,不会反应到外部
- +3.当处于pending状态时,无法得知目前进展到哪一个阶段
----基本用法 ES6规定,Promise对象是一个构造函数,用来生成Promise实例