1.javascript:void(0)
javascript:void(0)用在href属性值中,代表一个死链接,即点击链接标签不会有任何反应;
2.对象
(1)创建对象
1.new Object()
2.构造函数(使用场景:方法和属性名相同的对象)
例子:
function Person(name,age){
this.firstname=name;
this.age=age;
this.says=function(){
console.log(“hello !”)
}
}
使用:let Obj=new Person(‘bill’,60)
3.es6特性
(1)静态打包器webpack
entry(入口)——output(出口)——loader——plugins(插件)
loader:让webpack能够处理那些非javascript文件,例如:将es6转换为es5
plugins:插件使用的时候,只需要用require(‘插件名’)添加到plugins数组中就可以了
(2)let 和const的概念
let与var
1.针对于同一个变量,let 只能在区域范围内声明一次,而var可以声明多次
例如:let a=2;
let a=3;(会有报错)
经典题:
for (var i = 0; i < 10; i++) {
setTimeout(function(){ console.log(i);
}) } // 输出十个 10
由于var申请的是全局变量,而循环里面的是个setTimeout是在循环过后才执行的
for (let j = 0; j < 10; j++) {
setTimeout(function(){ console.log(j);
}) } // 输出 0123456789
(3)变量提升的概念
经典题:
console.log(a); //ReferenceError: a is not defined
let a = “apple”;
let声明的变量不存在变量提升,只会按照顺序执行
console.log(b); //undefined
var b = “banana”;
var声明的变量存在变量提升,所以返回值是undefind(声明但却还没赋值)
(4)const和封闭作用域的概念
const在声明之后就不允许改变,声明的时候必须要初始化
经典题:
var PI = "a";
if(true){
console.log(PI); // ReferenceError: PI is not defined
const PI = "3.1415926";
}
ES6 明确规定,代码块内如果存在 let 或者 const,代码块会对这些命令声明的变量从块的开始就形成一个封闭作用域。代码块内,在声明变量 PI 之前使用它会报错。
4.结构解析
(1)数组解析
1.正常解析:let [a, b, c] = [1, 2, 3]; 或 let [a, , b] = [1, 2, 3]; 或 let [a, b, c, d, e] = ‘hello’;
2.嵌套:let [a, [[b], c]] = [1, [[2], 3]];
3.剩余运算符:let [a, …b] = [1, 2, 3]; //a = 1 //b = [2, 3]
4.不完全解析:let [a = 1, b] = []; // a = 1, b = undefined
注意:在匹配过程中,若结果是undefind就会触发默认值
let [a = 3, b = a] = []; // a = 3, b = 3
let [a = 3, b = a] = [1]; // a = 1, b = 1
let [a = 3, b = a] = [1, 2]; // a = 1, b = 2
(2)对象解析
与数组解析同理