js var定义域
js 中,定义的var变量其实是有作用域的,不同函数内部的同名变量互相独立,互不影响。
例如:
+ function sum() {
var x = 1;
x = x+1;
}
function sum1() {
var x=3;
}
- 在例子中,两个方法内的x的作用域只在方法内,所以两个方法的x并不会受到影响
js 中函数是可以嵌套的。内部函数可以调用外部函数定义的变量,但是反过来不行
* function sum2() {
var x = 1;
function s1() {
var y = x+1;
}
var z= y+1;
}
如果内部和外部定义了相同名字的变量
* function sum1() {
var x = 1;
function s1() {
var x = 'A';
console.log('x =' +x);
}
console.log(s1());
console.log('x = '+x);
}
console.log(sum1());
变量提升
function foo() {
var y;
var x = 'Hello,' + y;
console.log(x);
var y = 'baby';
}
foo();
js-map
- map - 属于一种新的数据类型
map - 是一组键值对的结构,具有快速查找的速度
定义map集合
var m = new Map([[‘小华’,95],[‘小明’,88],[‘李狗蛋’,99]]);
- map集合的基本应用
- var a = new Map();
- 添加
a.set(‘name’,‘小芳’);
a.set(‘sex’,‘女’);
a.set(‘age’,18); - 查找 – 返回true/false
console.log(a.has(‘age’)); - 删除
a.delete(‘sex’); - 修改
a.set(‘birth’,1990);
a.set(‘birth’,2000);
js-set
- set - 和Map相似,是一组key的集合,不存储value
定义set集合
- var a = new Set(); // 空set
var a1 = new Set([1,2,3]); // 有值得
特点,重复元素会被自动过滤
var a2 = new Set([1,2,2,3,3,4,4,5,5]);
console.log(a2);
显示结果:[1,2,3,4,5]
set集合的基本应用
var a = new Set([1,2,3]);
- 增加
- a.add(4);
- 删除
- a.delete(3);