我是今年刚毕业的一只小菜鸟,在没有定学习目标的情况下盲目的学习了一点点 js 的知识。但对一些知识点不知怎么在实战上派上用场?好了,话都不多说,本意是在这记一下笔记,下面让我们来看看:
闭包
看了很多对闭包的理解的文章,自己的一点点总结:闭包可以从内部函数访问外部函数作用域,对闭包的理解还是很浅,抱歉。
function makeFunc() {
var name = "John";
function displayName(){
console.log(name);
}
return displayName
}
var make = makeFunc();
make(); // John
上面的例子,可以看出内部函数 displayName() 在被调用前被外部函数返回了。make 执行了 makeFunc() 时并创建 displayName() 函数实例的引用,而 displayName() 实例仍可访问到外部函数的变量,当 make 被调用,name仍可被访问,其值被打印出到控制台。
var 和 es6的let、const
在 ES6 之前,JavaScript 只有两种作用域: 全局变量 与 函数内的局部变量。
console.log(name) //
console.log(age) // Uncaught ReferenceError: sex is not defined
console.log(sex) // Uncaught ReferenceError: sex is not defined
var name = "John";
let age = 18
const sex = "男"
function foo(){
console.log(name) // undefind
console.log(age) // Uncaught ReferenceError: sex is not defined
console.log(sex) // Uncaught ReferenceError: sex is not defined
var name = "John";
let age = 18
const sex = "男"
}
foo()
var name = "John";
let age = 18
var age = 15 // Uncaught SyntaxError: Identifier 'age' has already been declared
const sex = "男"
sex = "女" // Uncaught TypeError: Assignment to constant variable.
从上面的例子总结出:
var、let、const的不同处
var声明不管是在函数还是全局内任何地方都会在其地方最顶上声明它。let和const声明则不会在最顶上声明,在声明它们的位置之前调用它们会报错。var声明的变量在任何代码块都有效,但let和const只能在命令所在的代码块内有效。- 用
var和let声明的变量可再赋值,const则不行,const相当于一个只读的常量,一旦声明,常量的值就不能改变。
好了,第一次笔记就先写到这个吧,第一次在掘金写文章,简洁到不能再简洁了,杂乱无章,有很多不足之处,请各位大佬们多多指教。最后问问各位前端大佬,该怎样去学习 js 和在实战中怎么去应用呢?