JavaScript
- JavaScript 是一种单线程可以运行在浏览器或者 服务端 的弱类型脚本语言
1).单线程: - 进程:完成一项任务所经历的过程
- 线程:线程比进程范围要小,一个进程可以包含多个线程
2). 弱类型:变量的类型由赋值的类型决定
3). 脚本语言:不会提前编译,是在运行时边解释边执行的语言 - JavaScript发展史
- JavaScript是1995年诞生的 布兰登·艾奇使用10天的时间创作出来的
- 1996年指定规范 , 可以在 各种 网站使用
- 1997年 JavaScript 发布 了 JavaScript 1.0版本(TC39委员会)
- 1998年 JavaScript 发布 了 JavaScript 2.0版本
- 1999年 JavaScript 发布 了 JavaScript 3.0版本
- ………
- JavaScript于2005年针对JavaScript4.0版本的讨论,比较激烈,不欢而散。
- JavaScript 于 2009年发布了JavaScript5.0版本
- JavaScript 于 2011年发布EcmaAcript5.1 标准版本
- JavaScript 于 2015发布Ecma2015(也称ES6)标准版本
- …… 往后每年6月份都会发布新的ES版本
- JavaScript和ECMAScript关系
JavaScript包括三部分 ECMAScript(核心),DOM,BOM
4.跟踪ES最新技术进展
找gitHub官方的JavaScript
5.ES6新增特性- let和const
Var:可变量提升,作用于全局,可重复定义
Let: 不可变量提升,作用于局部,不可重复定义
Const: 定义常量,不可重复赋值,定义一个对象时,可以更改内部变量 - 解构赋值
- set 和 map 数组和对象的升级版本
1)set : 是唯一的里边的值 永远不重复,可以用来去重
Add : 添加唯一值,delete:删除某一个值,clear:删除所有
forEach:遍历set对象- map对象的升级版本
Let ml = new Map()
ml.set(key.value)设置key的值
ml.get(key)获取key对应的值
ml.keys()获取key所组成的对象
ml.values()获取value组成的对象
ml.entries()获取key.values组成的对象
ml.forEach()遍历map对象
- map对象的升级版本
- let和const
4.模块化
ES6的模块化: Es module
导出: export default { }
导入:import { },aa from ‘暴露的对象’
node里的模块化:commonJS
导出modules.exports={}
导入require('导入你的模块")
5. class类
第一点:ES5中是用函数来模拟一个类,ES6中class来实现一个类
类与对象的关系:一个类可以创建出多个对象(对象也称为实例)
-
扩展运算符(. . .)
有两个作用: -
展开操作
a) 展开数组
Var arr1 = 【1,2,3,4】
Var arr2 = [“aaa”,‘bbb’,’ccc’]
Var arr3 = 【. . . arr1,. . . arr2】
b) 展开对象
Var arr1 = {names:’1’,ages:’2’}
Var arr2 = {name:“aaa”,age:‘bbb’}
Var arr3 = {. . . arr1,. . . arr2} -
Rest操作
-
promise
-
箭头函数
格式:(参数1,参数2, . . . 参数N)=>{//代码块}
面试官经常会问:普通函数和箭头函数区别
a) this指向不同 ,箭头函数没有自己的this ,他的this指向自己的父级函数的this
b) 箭头函数不能实例化
c) 箭头函数没有arguments -
模板字符串
//js 定义字符串形式有三种 单引号(‘ ’) 双引号(“ ”)反引号 ()
Let str1 = ‘hello’
Let str2 = “vue.js”
Let str3 =我爱中国的${str2}
-
数组和字符串新增的api方法
字符串:
Str.includes()检测字符是否有某个字符串,如果是返回true,否则false Str.startswith(
)检测字符是否在字符串开始,如果是返回true,否则false
Str.endswith(``)检测字符是否在字符串结尾,如果是返回true,否则false
数组:
Array.from:可以将类对象转换成真正的数组
何为类数组:也叫伪数组,看着像数组,但不具备数组的api方法
但维数组有length属性,可以像真实数组那样通过下标来访问
真是数组 = Array.from(伪数组)
Array.of
Find
findIndex
flat:数组扁平化
如何将数组降维数组声明的变量 调用 arr.flat(降低几个维度)
-