ECMAScript 的背景
JavaScript 是大家所了解的语言名称,但是这个语言名称是商标( Oracle 公司注册的商标)。因此,JavaScript 的正式名称是 ECMAScript 。1996年11月,JavaScript 的创造者网景公司将 JS 提交给国际化标准组织 ECMA(European computer manufactures association,欧洲计算机制造联合会),希望这种语言能够成为国际标准,随后 ECMA 发布了规定浏览器脚本语言的标准,即 ECMAScript。这也有利于这门语言的开放和中立。
ES6数据类型
值类型
数字 number
字符串 string
布尔 boolean
未定义 undefined
引用类型
数组 Array
对象 Object
空 null
判断(typeOf) 引用类型返回 object
let和const变量
let和var的区别
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[1](); // 10
上面代码中,变量i是var声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的function在运行时,会通过闭包读到这同一个变量i,导致最后输出的是最后一轮的i的值,也就是10。
而如果使用let,声明的变量仅在块级作用域内有效,变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是1。
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[1](); // 1
不能变量提升
var会发生”变量提升“的现象,即变量可以在声明之前使用,值为undefined。而let声明的变量一定要在声明后使用,否则就会报错。
// var的值
console.log(a); // 输出undefined
var a = 1;
// let的值
console.log(a); // 报错
let a = 1;
不能重复声明
let不能重复声明同一个变量。
let是局部变量,只在一对{}内有效
const 命令
基本用法
const声明一个只读的常量。一旦声明,常量的值就不能被改变。建议变量名大写
const A = 10;//10
a = A;//报错
console.log(a);
变量的解构赋值
数组
(1)交换变量的值
let x = 1;
let y = 2;
[x,y] = [y,x];
console.log(y); //x = 2,y = 1;
(2)默认值
let a, b, c ;
[a, b, c=5] = [4, 8];
console.log(a, b, c);
// 没有默认参数 c 是undefine
(3)跳过
function f() {
return [1, 2, 3, 4]
}
let a,b;
[a,,,b]=f();
console.log(a,b);//1,4
(4)剩余值
function f() { return [1, 2, 3, 4] }
let a,b;
[a,...b]=f();
console.log(a,b);//[2,3,4]
(5)浅拷贝(复制)
var arr = [1,3,5];
var arr2 = [...arr];
arr2[1]='x';
console.log(arr2);//[1,"x",5]
对象
(1)对象没有顺序
var a = {name:"mumu",age:16,weight:100,eye:2};
let{weight,name}=a;
console.log(name,weight);//mumu 100
(2)剩余值
var a = {name:"mumu",age:16,weight:100,eye:2};
let{weight,...rest}=a;
console.log(rest,weight);//{name: "mumu", age: 16, eye: 2} 100
(3)浅拷贝(复制)
var a = {name:"mumu",age:16,weight:100,eye:2};
var a2={...a};
a2.name="yiyi";
console.log(a2,a);
(4)默认值
var a = {name:"mumu",age:16,weight:100,eye:2};
let {name,eye=1}=a;
console.log(name,eye);
字符串
遍历 for of
var str="目前在学习ES5知识点"
for(let s of str){ //for of遍历
console.log(s);
}
检测包含
包含 includes()
开头 startsWith()
结尾 endsWith()
ES5 字符串
重复 repeat()
var str="Love "
console.log(str.repeat(100)); //重复100遍
去空格 trim()
var str=" hello 祖国 ";
console.log(str.trim()); //去除左右空格
console.log(str.trimLeft()); //去除左空格
console.log(str.trimRight()); //去除右空格