JavaScript 语法和知识
JS 简介
- NetScape 的 Brendan Eich发明设计,最初命名为 LiveScript
- 2009年 ES5发布,现在大部分JS都是这个标准
- 目前最新是2015年发布的 ES6
JS 语法
- 数据类型
-
- Object 对象
-
- 以 Key-Value 键值对的形式存在的集合
- Key都是字符串类型
- Value 可以是任意类型
- Array 数组
-
- 有序排列的集合
- 值可以是任意类型
- 遍历数组可以使用 Map(返回新数组) 或 ForEach(不返回新数组)
- String 字符串
-
- 可以是任何由单引号或双引号定义的类型
- Number 数字
-
- 数字可以是任何表示数字的类型
- Boolean 布尔
-
- 值只有两个:true / false
- Map 映射
-
- Map 和 Set 是ES6中新增的类型
- Set 集合
- null / undefined
-
- null 表示一个值为空
- undefined 表示示定义,通常用于比较不存在的属性或值
- 控制流
-
- while
-
while (a<10){ a++; }
- for
-
for (let i=0; i<10; i++){ console.log(i) }
- Array
-
const arr=[1,2.3];
- Map
-
const arr2= arr.map( d=> d+1);
- forEach
- 函数
-
- 定义
-
- 命名函数
-
- 匿名函数
-
- 变量作用域
-
- var 定义的变量在各自函数内部起作用
- const、let 变量为块级作用域(块级作用域指每一个{}中的代码块)
- 全局作用域
-
- 不指定var/const/let 的变量都自动提升为全局变量,绑定到Window对象
- 高阶函数
-
- 接收另一个函数作为参数的函数称为高阶函数
- CallBack--回调
-
function first(a,b,callback){ return callback(a,b); } function second(c,d){ return c+d; }
- 闭包 - - 函数的返回值可以为函数 - 所有的参数和变量都保存在返回函数中 - 当调用返回函数时才会执行所有的运算逻辑 - ``` function closureFunc(a,b){ return function(i){ return Math.pow(a+b,i); }
- 用途(匿名自执行函数、封装、结果缓存等待调用)
- 特殊对象
- -
- 特殊对象
- - JSON、对象的序列化 / 反序列化操作
- JSON.stringify 序列化
- JSON.parse 反序列化
##### JS 进阶
- 事件循环(Event Loop)
- - 主线程不断重复获取执行消息、再获取执行不断循环的机制称为事件循环
- 堆 :大块非结构化内存区域,储存对象、数据
- 栈 :调用栈,储存该次循环待主程序执行的任务
- 队列 :事件队列,先进先出被推入调用栈中
- 原型链
- - prototype
- "__proto__"
- constructor
- 应用场景:继承、代码复用
- 浏览器储存
- - Cookies
- - 用于与服务端通信
- 储存量小
Local Storage
- 储存量比cookies大
- 只能储存字符
Session Storage
- 只存在于当前Session,关闭浏览器就没了
IndexedDB
- 相当于浏览器上的SQL数据库
- 更大的储存空间
- API较难掌握
- 跨域
- - 客户端与不同源的服务器通信
- CORS:跨域资源共享
- JSONP:基于<script>标签可以跨域特性,只能用于GET请示
- iframe:通过<iframe>标签在一个页面展示不同源数据
- 反向代理
- Webpack打包
- - 将不同类型的源文件编译打包成静态文件
- 特点:统一管理、模块化
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习使用,请在下载后24小时内删除,严禁商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
【注意:本站发布资源来源于网络搜集,均有较强时效性,请在下载前注意查看文章资源发布或更新时间,距离当前时间太久的资源不建议下载,特别是安卓专区相关资源,会有大概率失效无法使用】
评论(0)