ES6语法篇(其一)
转载链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/es6-grammar-part-one/
一、let命令
基本用法:ES6新增了let命令,用来声明变量。用法与var类似,但是let命令只在代码块内有效
example: { let a=10;
var b=1;
}
a // ReferenceError:a is not defined
b:// 1
1.1 let不存在变量的提升:let不会像var那样发生'变量提升'的现象,变量一定要在声明后使用,否则会报错(我理解的就是var 值所以不会报错,是因为初始值就是undefined)
1.2 let不允许在相同的作用域内重复声明同一个变量
二、const命令
const也是用来声明变量,但是声明的是常量。一旦声明,常量值就不可以改变。用法跟其他语言(java,c,c++)一样
三、跨模块常量
const命令声明的常量只在当前的代码块有效,如果我们想设置跨模块常量,那就需要采用下面的写法了
// first.js
export const a=1;
export const b=3;
export const c=4;
//second.js
import * as first from './first'
console.log(first.a); // 1
console.log(first.b); // 3
//third.js
import {a,b}from './first'
console.log(first.a); // 1
console.log(first.b); // 3
四、Module
4.1export命令:
模块功能主要有两个命令构成:export和import。export用于规定模块的对外接口,import命令用于
输入其他模块提供的功能
一个模块就是一个独立的文件。文件内部的东西,外面是无法获取的。如果你想你想读取模块的某个变量,就需要export出来改变量
example: //example.js
export var firstname='Jane';
export var lastname='zhou'
另一种export的写法
var firstname='jane';
var lastname='zhou'
export {firstname.lastname}; 建议用第二种写法,一目了然。
export命令除了输出变量外,还可以输出函数或者类(Class)
export function multiply (x,y){
return x*y;
}
注意:export 命令可以出现在模块的任何的位置,只要处于模块的顶层就可以。如果处于块级作用
域,就会报错(import)命令也是如此。因为处于代码块之中就没法做静态优化了,这样违背了ES6
设计的初衷。
4.2 import命令:
使用export命令定义对外的接口,其他js文件可以通过import命令来加载这个模块。
//main.js
import {firstname,lastname} from example.js
ES6语法篇(其一)的更多相关文章
- ES6语法知识
let/const(常用) let,const用于声明变量,用来替代老语法的var关键字,与var不同的是,let/const会创建一个块级作用域(通俗讲就是一个花括号内是一个新的作用域) 这里外部的 ...
- 一些基础的ES6 语法
<script> window.onload = function () { //---------------------------let----------------------- ...
- gulp打包js多个文件夹并压缩混淆,编译ES6语法,及多个import依赖由一个入口打包成一个cdn
感觉和webpack的步骤差不多 首先安装gulp:参考上一篇 安装完之后 新建一个文件目录起名 在当前目录下打开cmd 执行:npm init 创建package.json文件 然后安装第一个插件g ...
- es6语法重构react代码
1.使用React.Component创建组件,需要通过在constructor中调用super()将props传递给React.Component.另外react 0.13之后props必须是不可变 ...
- vue 2.0 无法编译ES6语法
# vue2.0 webpack 无法编译 ES6 语法 之前在使用 vue 1.x 时用 vue-loader@8.0.0 版本可以正常打包vue的代码,包括ES6语法也能正常转为ES5语法,但是当 ...
- Flex 布局:语法篇
网页布局(layout)是 CSS 的一个重点应用.布局的传统解决方案,基于盒状模型,依赖 display 属性 + position 属性 + float 属性.它对于那些特殊布局非常不方便,比如, ...
- 把JavaScript代码改成ES6语法不完全指南
目录 * 核心例子 * 修改成静态变量(const)或块级变量(let) * 开始修改 * 疑问解释(重复定义会发生什么) * 疑问解释(let的块级作用域是怎样的) * 疑问解释(const定义的变 ...
- 让intellij idea 14 支持ES6语法
用eclipse做前端开发,用到了webpack,结果各种依赖导致软件卡的一比,简直不能动!虽然在同事的帮忙下,修改了一下配置,但仍然卡的没脾气.改用intellij idea 14解决了卡的问题,但 ...
- .vue文件在webstorm中es6语法报错解决方法
1 语法支持es6设置 Preferences > Languages & Frameworks > JavaScript 把 Javascript Language versio ...
随机推荐
- 使用Let's Encrypted HPPTS你的网站
1.前言 最近,有同事咨询我,怎么样使用Let's Encrypted部署数字证书,于是,结合自己之前的实践,简单总结下. 2.HTTPS的优势 什么加密,防篡改,防广告植入什么的,这个就不多说了.这 ...
- 石头剪刀布(智能判断你是否赢了)(if判断和for)
- charles mock方法及问题
一. 抓包后修改返回数据1.生成一个完成的请求返回信息1.charles抓取一个完整的请求,返回数据2.然后找到该请求,右键“save response”,将该完整请求返回文件保存至本地3.修改本地需 ...
- webpack 3之hash、chunkhash和contenthash三者的区别
在使用webpack 3中,文件名的hash值可以有三种hash生成方式,那具体使用哪一种呢? 1.hash 如果都使用hash的话,所有文件的hash都是一样的,而且每次修改任何一个文件,所有文件名 ...
- cf803c 数论
细节很多的题 #include<bits/stdc++.h> using namespace std; #define ll long long int main(){ ll n,k,tm ...
- python 全栈开发,Day94(Promise,箭头函数,Django REST framework,生成json数据三种方式,serializers,Postman使用,外部python脚本调用django)
昨日内容回顾 1. 内容回顾 1. VueX VueX分三部分 1. state 2. mutations 3. actions 存放数据 修改数据的唯一方式 异步操作 修改state中数据的步骤: ...
- Math对象的常用属性和方法
属性 描述 Math.PI 返回π(3.1415926) 方法 描述 Math.round() 将数字四舍五入到离它最近的整数 Math.sart(n) 返回平方根,例如Math.sart(9)返回3 ...
- hdu 1005 根据递推公式构造矩阵 ( 矩阵快速幂)
f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Sample Input1 1 3 //a b n1 2 100 0 0 ...
- 使用k8s operator安装和维护etcd集群
关于Kubernetes Operator这个新生事物,可以参考下文来了解这一技术的来龙去脉: https://yq.aliyun.com/articles/685522?utm_content=g_ ...
- python全栈开发day29-网络编程之socket常见方法,socketserver模块,ftp作业
一.昨日内容回顾 1.arp协议含义 2.子网,子网掩码 3.两台电脑在网络中怎么通信的? 4.tcp和udp socket编码 5.tcp和udp协议的区别 6.tcp三次握手和四次挥手,syn洪攻 ...