js高级(一)

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)对象解析

与数组解析同理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值