ES6: 块级作用域
发表于|更新于|计算机基础
var
- 没有块级作用域的概念
- 会被提升到定义函数的顶部
- 可以重复声明
let
- 有块级作用域
- 不会被提升
- 禁止重复声明
const
- 有块级作用域
- 不会被提升
- 禁止重复声明
- 其值不可更改
- 必须进行初始化
文章作者: 三木
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 三木的技术博客!
相关推荐

2019-01-03
ES6:数组
新增的静态方法Array.of() :可以将传入的参数逐个传入数组,即使只有一个数值类型的参数,也会成为新数组的成员,而不是代表数组的长度 Array.from():可以将类数组结构转化为数组,例如: Array.from(arguments). 利用Array.from()也可以转换原来的数组,例如: let trans_args = function() { let args = Array.from(arguments, (value)=>value + 1); console.log(args); } trans_args(1, 2, 3); $ node test.js [ 2, 3, 4 ] 新增的普通方法find() 与findIndex():传入一个回调函数来表明查找的条件,例如: > let arr = [1, 2, 3, 4, 5]; undefined > arr.find((n)=>n>3); 4 > arr.findIndex((n)=>n>3); 3 fill...

2019-01-02
ES6中的类
ES6中添加的class关键字其实并非真正的类,而是ES5用函数来模拟类的语法糖。在ES6中可以用如下的语法创建一个类: class Students { constructor(name, age) { this.name = name; this.age = age; } sayName() { console.log(this.name); } sayAge() { console.log(this.age); } } let st1 = new Students('sen', 18); st1.sayName(); st1.sayAge(); 使用ES6的class语法糖和ES5自定义的类还是有些区别的: 类的声明不会被提升,类的实例化只能在类的声明之后 类声明中的代码只能运行在严格模式下 类中的方法是不可枚举的 实例化的时候必须加new关键字 ...

2018-07-24
ES6: 字符串处理
UTF-16编码: str.codePointAt(index) String.fromCodePoint(codepoint); normalize() 正则表达式 新增u修饰符用来处理UTF-16编码的问题 /&.$/u 新增pattern.flags 属性 // ‘ig’ 新增pattern.sticky 属性及’y’修饰符 // 只从lastIndex处匹配,如果和’g’一起存在则’g’被忽略 复制正则表达式 // let pattern = new RegEX(old_pattern, ‘gi’) 字符串处理 str.includes(sub_string) // true or false str.startsWith(sub_string) // true or false str.endsWith(sub_string) // true or false str.repeat(times); // str * times 模板字面量 支持多行字符串 支持变量 // `hello ${n...

2018-10-15
ES6: Set 与 Map
Set let my_set = new Set(); let my_set = new Set([1, 1, 2, 2]); my_set.add(5); my_set.delete(5); my_set.has(5); my_set.forEach(function(value){}); let my_set = WeakSet() // 只允许对象作为set的元素,便于垃圾回收 Map let my_map = new Map(); let map = new Map([[“name”, “Nicholas”], [“age”, 25]]); my_map.set(key, value); my_map.get(key) my_map.has(key) my_map.delete(key); my_map.clear(); my_map.size; my_map.forEach(function(value, key, ownerMap) { console.log(key + “ “ + value);...

2019-01-08
ES6: 模块编程
Javascript模块的限制 只能运行于严格模式 模块中的顶级作用域中的变量,不会被自动添加到全局作用域 顶级作用域的this为undefined 导出如果想让模块中的变量、函数、类被其他模块使用,需要将其导出,导出的方法如下: export var color = “red”; export function print_hello(){}; export { print_hello } export { print_hello as printh }; export default function print_hello(){}; export default print_hello export { print_hello as default} 导入如果想使用其他模块中的变量、函数、类,需要将其导入。导入后的变量、类、函数为只读。导入的方法如下: import { color, print_hello } from “./example.js”; import * as example from “./examp...

2018-09-18
ES6: 对象扩展
初始化简写: function createPerson(name, age) { return { name: name, age: age }; } ---> function createPerson(name, age) { return { name, age }; } 方法简写: var person = { name: "sen", sayName: function() { return this.name; } }---> var person = { name: "sen", sayName() { return this.name; } } 需要计算的属性名用[]表示 Object.is() 与===表现相同,除了 Object.is(NaN, NaN) // true Object.is(+0, -0) // false ...
评论
公告
欢迎访问我的技术博客,如果您觉得我的文章对您有所帮助,欢迎打赏和分享!


