es6常用知识点总结

1.定义变量的方式 let:

(1).没有变量提升(var具有变量提升 即在当前作用域的最上面定义这个变量 但不赋值)
例:console.log(x);var x = 20;---------显示undefined
console.log(m);let m = 100;-------报错
(2).let不可以重复声明
例:var x = 10;var x = 20;console.log(x);----显示20
let x = 10;let x = 20;console.log(x);----报错
(3).let 块级作用域内可用 (即花括号内 括号外不可用)
例:{let m = 100;}console.log(m);—报错
{var m = 100} console.log(m);–显示100
(4).let定义变量有块级作用域 SetTimeout函数分开执行
例: for (var i = 0; i < 5; i++) { //i=5 setTimeout(function () {console.log(i); }, 100);}-------------显示5个5
for (let i = 0; i < 5; i++) { //i=5 setTimeout(function () { console.log(i); }, 100); }-------------------------显示01234
(5).let暂时性死区(let定义的变量,在代码块内到定义let变量这一行位置,访问不到该变量)
例:function fn(){ console.log(a); let a = 20; } fn();---------------报错
function fn(){ console.log(a); var a = 20; } fn();---------------undefined
2.变量:

(1). 基本数据类型

(栈内存):string、number、boolean、null、undefined(

  • 定义了未赋值

  • 数组索引越界

  • 访问对象没有属性

  • 没有return 默认返回undefined)

(2). 引用数据类型

(堆内存):array object.

  • 变量提升概念:使用var定义变量未赋值的情况 在当前作用域的最上边定义了这个变量,但是未赋值而let定义变量没有提升

  • const:引用数据类型的常量 地址 指针不能变

  • 解构赋值

    • 数组解构(使用[])
      例:let arr = [1,2,3];
      let a = arr[0];
      let b = arr[1];
      console.log(a,b);--------显示1,2

    • 解构按属性对应

      例:
      let {name,age} = {name:‘zs’,age:‘18’};
      console.log(name,age);--------显示zs 18

    • 如果解构赋值取到undefined 使用默认值
      例:
      let {age:a,name,school=“北大”} = { name: ‘zs’, age: 18,school:“黑大” };
      console.log(name,a,school);----显示zs 18 黑大

    • 字符串也可以解构(使用[])

    例:let str = “abcdefg”;
    let [x,y,z] = str; console.log(x,y,z);

  • concat()合并数组
    …arr1,…arr2合并两个数组

4.类数组转成数组
let arr3=[…aLi]8.this
(1).this 触发谁的事件 this就是谁
(2).setTimeOut、setInterbal均指向window
(3).调用谁的方法,this就指向谁9.set类似于数组,但是成员的值都是唯一的,没有重复的值。函数接受数组或类数组作为参数。new Set();

 - add(value):添加某个值,返回Set结构本身。


 - delete(value):删除某个值,返回一个布尔值,表示删除是否成功。

 - has(value):返回一个布尔值,表示该值是否为Set的成员。 
 - clear():清除所有成员,没有返回值。
 - 遍历:keys() entires() forEach() for...of
 - 长度:.size()

5.AJAX

(1).是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。(异步处理:就是我们通过事件触发到 ajax,请求服务器,在这个期间无论服务器有没有响应,客户端的其他代码一样可以运行。 同步处理:我们通过实践触发 ajax,请求服务器,在这个期间等待服务器处理请求, 在这个期间客户端不能做任何处理。当 ajax 执行完毕才会继续执行其他代码。)
(2).创建对象:variable=new XMLHttpRequest();
(3).向服务器发出请求open(method,url,async)规定请求的类型、URL 以及是否异步处理请求。method:请求的类型;GET 或 POSTurl:文件在服务器上的位置async:true(异步)或 false(同步)send(string)将请求发送到服务器。string:仅用于 POST 请求例: xmlhttp.open(“GET”,“test1.txt”,true);
xmlhttp.send();
(4).服务器响应:responseText获得字符串形式的响应数据。responseXML获得 XML 形式的响应数据。1.responseText 属性如果来自服务器的响应并非 XML,请使用 responseText 属性。responseText 属性返回字符串形式的响应,因此您可以这样使用:document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;2.responseXML 属性如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:请求 books.xml 文件,并解析响应:xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName(“ARTIST”);
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + “
”;
}
document.getElementById(“myDiv”).innerHTML=txt;(5).onreadystatechange 事件当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。onreadystatechange存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。readyState存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。0: 请求未初始化1: 服务器连接已建立2: 请求已接收3: 请求处理中4: 请求已完成,且响应已就绪status200: "OK"404: 未找到页面12.promise:异步编程解决方案,比传统的解决方案——回调函数和事件——更合理 和更强大。将异步请求以同步方式表达出来例:new Promise(function (resolve, reject) { setTimeout(function () { console.log(‘第一个请求成功1’) let data = 1; if (data) { resolve(1111); }else{ reject(); } }, 3000) }).then(function (val) { console.log(‘调用resolve成功’,val) }).catch(function(){ console.log(‘失败’) })-----------显示 第一个请求成功1 调用resolve成功 1111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值