ECMAScript6复习

javaScript组成:包括:ECMAScript,DOM,BOM

1.ECMAScript:javascript核心语法,不依赖平台

例如:定义变量,if,switch,for,数组Api,字符串API,正则Api…

2.DOM:(Document Object Model)针对浏览器标签操作 例如:获取id,获取类名,获取标签名

注:操作真实DOM,引起重绘和回流–>才引出虚拟DOM

  重绘:主要指页面颜色的改变,不影响DOM的空间变化 color,background
  回流:指页面元素的尺寸(width,padding,height,margin),位置的变化:left,top,bottom,right等
  
    tranform:translateX(300px)
  
  重绘未必引起回流,但回流一定引起重绘

3.BOM:(Browser Object Model)主要针对浏览器相关API的操作

history: history.go(),history.back() pusState,popState,replaceState

navigator:跟浏览器系统信息相关

  navigator.userAgent
   
 参考:https://developer.mozilla.org/zh-CN/docs/Web/API/Navigator

location:主要获取浏览器地址栏相关的信息

location.search
location.href
location.hash
参考:https://developer.mozilla.org/zh-CN/docs/Web/API/Location

4.ECMA6/7/8…新增特性
ES6 ES2015 … ES11 ES2020

了解ES6/7/8/9/最新进展:https://github.com/tc39/proposals/blob/master/finished-proposals.md

let和const: 重点

let 定义变量
const 定义常量
面试官:
1.你说一下let和var的区别

相同点:都是定义变量
区别:

  1. 是否有变量提升 var有变量提升,let没有
  2. 是否能重复定义 var允许重复定义变量,let不允许重复定义
  3. 是否有块级作用域 { }
    全局作用域:在函数外部定义的范围
    局部作用域:在函数内部定义的范围
    块级作用域:在{ }大括号中定义范围

2.你说一下let和const的区别

let 定义变量
const 定义常量,是不能修改的,如果要修改,将常量定义成对象的形式,这样,就可以给对象中的属性进行修改

symbol:是ES6新增的基本数据类型
number,string,boolean,null,undefined,symbol(ES6新增)
注:

  symbol:定义的值是唯一性
  两个symbol类型的值永远不等

例如:
var s1=Symbol()
var s2=Symbol()
s1=== s2
false

扩展运算符( … )
扩展运算符(也称展开操作符)两层作用:

1.将数组转换成数据列表 [a,b,c,d]—>a,b,c,d

例如:
var arr1=[666,777,888]
var arr2=['hello','vuejs']
var result=[...arr1,...arr2]

2.将数据列表转换成数组 a,b,c,d—>[a,b,c,d]

3.展开对象

var result={...obj1,...obj2}
或
result=Object.assign({},obj1,obj2)

例如:
function sum1(str,...args) {
  var result=0;
  for(var i=0;i<args.length;i++) {
    result+=args[i]
  }
   return result;
}
sum1('请输入',20,30,40)

class类
定义一个类:

class Person {

   constructor(a,b) {
     //构造器
     this.属性=a

   }

  方法1() {}
  方法2() {}
  方法3() {}

}

继承一个类:

class Child extends Person {

   constructor(a,b) {
     super()  //代表父类
     //构造器
     this.属性=a

   }

  方法1() {}
  方法2() {}
  方法3() {}

}

set和map:
set:理解成是一个不重复的数组

set类型的数据转换成数组:
var s=new Set()
Array.from(s)[...s]

var s=new Set()
s.add()
s.has()
s.delete()
s.size

例如:数组去重:

var arr=[3,34,23,2,2,23,23,3,34,34,34,45]

[...new Set(arr)]

map:理解成是一个对象,增强了对象key的数据类型,以前只能是字符串,现在对象的属性可以是做任意的数据类型!

{
  "name":'jack',
  '10':'abc',
  'undefined':999
}

var m1=new Map()
m1.set(属性名,) //设置
m1.get(属性名)  //获取
m1.delete(属性名)  //删除


//遍历Map类型获取所有值
for(var [key,value] of m1) {

  console.log(key)
  console.log(value)
}

Promise:重点
注:1.用于处理回调地狱的异步解决方案
具体实现:

function waiting() {

    return new Promise((resolve,reject)=>{
    
             setTimeout(function() {
      
                //console.log(2)
                reject('哈哈')
    
            },2000)      

    })

 }


waiting().then(res=>{
   console.log(1)
   console.log('res:',res)
    console.log(3)

}).catch(error=>{

   console.log('error:',error)

})

.then
.catch
.race
.finally
Promise.all([waiting(),waiting2(),waiting3()])
   .then(res=>{


   }).catch(res=>{

})

async/await(ES2017) 重点

串行执行:必须先执行第一个异步,将第一个异步的结果返回传递给第二个异步函数,再执行第二个异步的操作过程

//第一个函数
function waiting() {
    return new Promise((resolve,reject)=>{
          //我这里只是用setTimeout来模拟axios,
             setTimeout(function() {
                resolve('第二个接口返回')

            },2000)

        
    })

 }
//第二个函数
function waiting2() {
    return new Promise((resolve,reject)=>{
          //我这里只是用setTimeout来模拟axios,
             setTimeout(function() {
                reject('第二接口返回')

            },2000)

        
    })

 }


async function handleFn() {
   console.log(1)

 // 串行执行,先等待第一个函数返回
   let res=await waiting()
    console.log('res:',res)
    
    //再等待第二个函数返回
    let res2=await waiting2(res)
    console.log(res2)
 }

并行:两个接口同时执行

function waiting() {
    return new Promise((resolve,reject)=>{
          //我这里只是用setTimeout来模拟axios,
             setTimeout(function() {
                resolve('第二个接口返回')

            },2000)
     
    })

 }


function waiting2() {
    return new Promise((resolve,reject)=>{
          //我这里只是用setTimeout来模拟axios,
             setTimeout(function() {
                reject('第二接口返回')

            },2000)
     
    })

 }

async function handleFn() {
   console.log(1)
    //并发执行,waiting(),waiting2()两个接口都成功返回才返回结果
    let res=await Promise.all([waiting(),waiting2()])
     console.log('res:',res)
     console.log('end')
 }

 handleFn().catch(res=>{

     console.log('error:',res)
 })

解构赋值

箭头函数 重点

module(export,import)

generator

模板字符串

for of

ES2015+如果正常跑在浏览器上,都要通过babel去编译转换成ES5才能正常在浏览器运行

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值