node学习笔记第一天
ES6
---
* JavaScript语言随着使用的人越来越多,ECMA语法规范:if/else
* 为了让js语言更适应大型应用的开发、旨在消除一些怪异的行为
### 包含内容(strict严格模式)
---
* 使用严格模式的方式:
- 在全局中或者文件中直接使用
+ `use strict`;
+ 以下的代码就按照严格模式来执行
- 在函数中开启严格模式
+ `function xx(){ "use strict"; }`
+ 以上函数内的代码就执行严格模式,非该函数内的代码正常模式
* 全局变量显式声明
```javascript
'use strict';
// function aa(){
// 'use strict'
// }
personName = 'jack'; //personName is not defined
console.log(personName);
```
* 禁止使用with语句
```javascript
'use strict';
var person = {
name: 'jack'
};
//下面一行报错:Strict mode code may not include a with statement
with(person) { //针对参数对象做一些操作
name = 'rose';
}
console.log(person);
```
* 禁止this关键字指向全局对象
```javascript
function aaa() {
return this; //开启严格模式的时候,返回的this是undefined,以前是window
}
aaa();//在ES5中没有开启严格模式返回值是window,而开启以后进制this指向全局对象,所以是undefend
```
* 保留字
- implements, interface, package, private, protected, public, static, yield
LET关键字
* LET是块级作用域,块级就代表着{},如果没有在{}内,就是全局的作用域
* 不存在变量类型提升
- 不会出现:不管在哪里使用,最终都变成了全局对象
* 注意事项:
- 1:变量查找机制:和以前一样,就近原则,如果当前作用域{}内没有该变量的声明,就往上级作用域查找
- 2:每个块内使用的是自己各自的let声明变量
- 3:不允许同一个作用域下,还同一个名称的声明
* let就是为了解决变量会自动提升成全局变量的一个问题
严格模式和关键字的区别
* 严格模式的开启,影响着代码的限制(我们使用上的不同)
* 关键字对代码的功能的增强(效果上的不同)
* 通常使用ES6,就建议开启严格模式,避免有依赖报错
const关键字
* 也是块级作用域
* 注意点:
- 1:必须一次性完成初始化,声明+赋值
- 2: 不能够二次赋值:`const p = {}; p='abc';//不能`
+ 可以给对象挂载属性,不会改变对象的指向
* `const p = {}; p.name= 'abc';//可以`
小总结
* 严格模式
- 约束以前代码的方式的一些限制
+ 必须显示声明全局变量(先声明后使用,否则报错)
- 禁止this指向全局对象,如果全局函数中return this;返回的是undefined
- with在ES5中是根据传入的对象才做相关操作,ES6严格模式下是禁止的
* Let:块级作用域,如果不再{} 下就是全局的变量,在{}下就属于自己块的声明
- 查找机制: 就近原则,当前块内没有声明就向上级作用域查找
- 不存在变量类型提升(不会自动提升成全局变量)
- 使用细节:
- 同一个块内不允许同名变量的声明
* const
- 块级作用域,不存在变量类型提升
- 必须一次性完成初始化,声明+赋值
- 不允许二次赋值,可以挂载属性
模板字符串(字符串扩展)
* 使用方式:
- tab键的上方,反引号包括起来`字符串扩展`
* 模板字符串支持换行符的输出
* 可以嵌入对象或者变量`${对象.属性名}`
* 了解:可以支持原生字符串的输出 `String.raw`hello\r\nworld``
扩展ES6函数
* 字符串操作
- 字符串对象.includes(参数);
+ 判断调用的字符串对象是否包含参数字符串,返回值Boolean
- 字符串对象.startsWith(参数);
+ 判断调用的字符串对象是否以参数字符串开头,返回bool
- 字符串对象.endsWith(参数);
+ 判断调用的字符串对象是否以参数字符串结尾,返回bool
- 字符串对象.repeat(num);//了解
+ 返回调用字符串对象的num次字符串内容
* 数学操作
- Math.trunc(float); //返回截取掉小数位的整数部分
+ Math.trunc(3.1415926);// 3
* 数组操作
- 在数组中查找指定元素
+ 数组对象.find(callback);
+ callback:参数列表: ele元素,index下标,arr原数组
+ 注意:该函数的返回值同过回调函数内部的return来做控制
+ 返回值:返回元素的值,如果没有查找到返回undefined
* 获取数组
+ 获取数组Array.of(3,3,5); //了解就可以,返回一个数组[3,3,5]
+ 通过对象参数获取数组` Array.from({length:3,1:'abc','2':'def'});`
+ length是必须的属性,其他的属性可以是1或者'1' -->
```javascript
let citys = ['北京', '上海', '广州'];
//找到上海元素
let city = citys.find(function(ele, index, arr) {
console.log('ele', ele);
return '上海' === ele; //结束遍历并返回元素
});
console.log(city);
// 在数组中查找元素的下标
// 返回的是指定元素的下标,如果没有查找到元素返回-1
let citys = ['北京', '上海', '广州'];
// //找到上海元素
let index = citys.findIndex(function(ele, index, arr) {
console.log('ele', ele);
return '上海' === ele; //结束遍历并返回元素
});
console.log(index);
```
箭头函数
* 让this不再多变
- 箭头函数本身是没有this的,在声明时箭头函数会根据上层函数的this进行绑定,不再是根据调用时的this去改变了
* 没有参数
- `()=>1;` //没有参数返回1
* 一个参数
- `num => num;` //这种情况可以省略参数的括号
* 多个参数
- `(n1,n2) => n1+n2;` //返回n1+n2
* 多行代码
- `(n1,n2) => {//code.....} `
* 箭头函数本没有arguments,会根据声明绑定上一次function拿到其中的arguments
* 箭头函数不可以用作构造函数
#### ESpromise
* 承诺,异步操作
* readyState状态
```
readyState
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status
200: "OK"
404: 未找到页面
参考资料
* ES6参考资料:http://es6.ruanyifeng.com/
* babel参考资料: http://www.ruanyifeng.com/blog/2016/01/babel.html
* node学习 http://cnodejs.org/getstart 《Node.js 包教不包会》
#### ES6转换ES5
node学习笔记第一天的更多相关文章
- ActionBarSherlock学习笔记 第一篇——部署
ActionBarSherlock学习笔记 第一篇--部署 ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- node学习笔记-搭建node环境
最近项目要用到node,利用空闲整理做下笔记 第一步 安装node,方式比较多,最为直接的是直接去官网 可直接从官网下载安装http://nodejs.cn/download/ 根据自己情况 ...
- node学习笔记(二)(ajax方式向node后台提交数据)
通过ajax向node后台提交数据过程(附手写前后台代码),并总结post与get的区别 POST 前台代码 //CSS简单给点样式 <style> form{ width: 200px; ...
- Django学习笔记---第一天
Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...
- ASP.NET Core 学习笔记 第一篇 ASP.NET Core初探
前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入 ...
- GIT学习笔记——第一章
git之vim编辑器退出命令 # 学习笔记 张文军微博主页 张文军码云主页 张文军新浪云主页 张文军博客主页 ## 刚学习git,好多东西没接触过,进入vim后不知道如何出来了,网上找了很多都 ...
- Node 之 Express 学习笔记 第一篇 安装
最近由于工作不忙,正好闲暇时间学学基于 node 的 web开发框架. 现在关于web开发框架除了Express 还有新出的 KOA以及其它一些. 但是想想还是先从 Express 入手吧.因为比较成 ...
- Nodejs全站开发学习系列 & 深入浅出Node学习笔记 & Spider抓取
https://course.tianmaying.com/node 这个系列的文章看起来很不错,值得学习一下. /Users/baidu/Documents/Data/Interview/Web-S ...
随机推荐
- kubectl get 输出格式
常见的输出格式有: * custom-columns=<spec> # 根据自定义列名进行输出,逗号分隔 * custom-columns-file=<filename> # ...
- CentOS 6.3下部署LVS(NAT模式)+keepalived实现高性能高可用负载均衡
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- IIS7以上版本去掉伪静态去掉index.php方法
1,由于从iis7以上的版本httpd.ini文件已不会被解析,将以下的xml文件复制到web.config 的文件中,然后放到网站的根目录即可. <?xml version="1.0 ...
- Runtime 运行时之一:消息传递
什么是Runtime? Runtime顾名思义即为运行时.就是系统运行时候的一些机制,它提供了一些使得对象之间能够传递消息的重要函数,其中最主要的就是消息机制了.相较于C语言而言,C语言使用的是“静态 ...
- Linux学习——定义命令行函数(cd .. -> ..)
在使用shell的时候,每天要面对各种命令行,比如ls , cd .. 等 抱着简单,可依赖的思想.有些可以简化的操作可以要通过在 ~/.bashrc 中进行添加: 1. cd .. -> .. ...
- Sass-学习笔记【基础篇】
最下边附结构图 在线编辑器网址如下:http://sassmeister.com/ 注意编写的时候,符号千万别用了中文的:.:.....之类的,会报错,Sass也转换不成css. less和sass ...
- c# winform窗体边框风格的设计
1.首先,窗体的FormBorderStyle设置成None,不要控制边框. 2.然后,TransparencyKey和BackColor颜色设置成相同的,这样,窗体就透明了. 3.最后,窗体的拖动 ...
- Windows Phone 页面切换动画
1.首先引用Microsoft.Phone.Toolkit 2.将App.xaml.cs 中的 RootFrame = new PhoneApplicationFrame(); 改成RootFrame ...
- angular -- 自定义指令和模板
angular 可以自定义一些指令,来简化我们前端的工作量. 第一种:简单指令示例: <h3>自定义指令</h3> <sheng></sheng> &l ...
- Thinkphp --- 去掉index.php
这里我使用的面板是宝塔,操作的 apche: 具体的配置可以参考这里: https://www.cnblogs.com/fangziffff123/p/7588782.html 首先是:Thinkph ...