var let const、=>与function、增强表达赋值、类与对象

it2022-05-05  176

一、var let const

1、var

var明明定义在for里面的但是外部能够访问这个变量,说明var可以跨域访问。

2、let

let明明定义在for里面的但是外部不能够访问这个变量,说明let不可以跨域访问。

3、const

const foo = {}; // 为 foo 添加一个属性,可以成功 foo.prop = 123; foo.prop // 123 // 将 foo 指向另一个对象,就会报错 foo = {}; // TypeError: "foo" is read-only 上面代码中,常量foo储存的是一个地址,这个地址指向一个对象。 不可变的只是这个地址,即不能把foo指向另一个地址,但对象本身是可变的,所以依然可以为其添加新属性。

 

二、ES6 允许块级作用域的任意嵌套。

function f1() { let n = 5; if (true) { let n = 10; } console.log(n); // 5 } 上面的函数有两个代码块,都声明了变量n,运行后输出5。这表示外层代码块不受内层代码块的影响。 如果两次都使用var定义变量n,最后输出的值才是10。

三、=>与function

1、使用function

报错。因为,作用域的限制,this表示wx.getSystemInfo(){}这个对象所以导致其访问不到setData()函数。

正确。因为,此时表示的是最外层function的对象

2、使用=>

都不会报错,因为该表达式没有作用域。  

四、增强表达赋值

1、字符串式赋

2、数组式赋值

3、函数式赋值

4、对象式赋值

五、类与对象 1、es5 2、es6  


最新回复(0)