-
所有 JavaScript 标识符对大小写敏感。
-
在 JavaScript 中,首字符必须是字母、下划线(-)或美元符号($)。
-
JavaScript把null、undefined、0、NaN和空字符串''视为false,其他值一概视为true。
- 变量作用域与解构赋值
function demo() {
var name // 局部变量
age = 123 // 全局变量
}
- 函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!
一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量
如果两个不同的函数各自申明了同一个变量,不同函数内部的同名变量互相独立,互不影响
JavaScript的函数在查找变量时从自身函数定义开始,从“内”向“外”查找。如果内部函数定义了与外部函数重名的变量,则内部函数的变量将“屏蔽”外部函数的变量。
在函数体内声明变量的时候,var声明在函数任何地方都会生效。 let只在当前区块生效。
function demo(){
for (let i = 0; i < 100; i++) {
}
// alert(i) 无效
}
- 解构赋值
// 如果浏览器支持解构赋值就不会报错:
var [x, y, z] = ['hello', 'JavaScript', 'ES6'];
var [ , , z] = ['hello', 'JavaScript', 'ES6'];
let [x, [y, z]] = ['hello', ['JavaScript', 'ES6']];
var person = {
name: '小明',
age: 20,
gender: 'male',
passport: 'G-12345678',
school: 'No.4 middle school'
};
var {name, age, passport} = person;
- Js 变量提升
先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部:
-
js闭包:
-
定义:
闭包就是能够读取其他函数内部变量的函数。
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。 -
它的最大用处有两个,
一个是前面提到的可以读取函数内部的变量,
另一个就是让这些变量的值始终保持在内存中。
-
网友评论