JavaScript方法
全局作用域 - js有一个默认的全局对象 - Window,我们所创建的全局变量就是绑定到window上的
var i = '今天是阳光明媚的一天';
alert(i);
alert(window.i);
function f(x) {
alert('是大的萨达');
}
alert(f());
function sum () {
alert('嘟嘟嘟嘟的');
}
alert(sum());
alert(window.sum());
window.alert('今天周四了');
var alert1 = window.alert;
window.alert = function () {
};
alert('张三');
window.alert = alert1;
alert('王二麻子');
名字空间
定义一个唯一的全局变量
var a = {};
// 如果定义其他变量
a.anme = '张三';
a.age = 19;
其他函数
a.sum = function () {
return 'sum';
}
局部作用域
for 中无法创建局部变量
function sum() {
for (var a = 0; a<100;a++) {
}
a += 100;
return a;
}
console.log(sum());
常量 - 从程序开始到结束,值都不变
var A = 3.1415926;
ES6 中,引入了新的创建常量的方式 - const
const B = 3.1415927;
解构赋值
解构赋值可以同时对一组变量进行赋值。
var array = ['小明','小华','小芳'];
按照传统的方式
var a = array[0];
var b = array[1];
var c = array[2];
用到解构赋值
var [a,b,c] = ['小明','小华','小芳'];
console.log('a = '+ a + 'b = ' + b + 'c = ' + c);
我们进行解构赋值的时候,要注意嵌套层次和位置保持完全一致
var array1 = ['java',['js','jQuery']];
var [x,[y,z]] = ['java',['js','jQuery']];
console.log('x='+x+'y= '+y + 'z = '+z);
如果使用解构赋值只对一个值赋值。
var array2 = ['小明','小华','小芳'];
var [,,o] = ['小明','小华','小芳'];
console.log('o =' + o);
如果从对象中取出若干属性,可以使用解构赋值
var person = {
name : '元芳',
age : 20,
sex : '不明',
school : '狄仁杰大学',
address: {
city: 'wenzhou',
iphone: 151515151515
}
};
var {name, age, sex} = person;
console.log('name = ' + name + ',' + 'age = ' + age + ',' + 'sex = ' + sex);
var {name, address: {city,iphone}} = person;
console.log('name' + name + 'city'+city + 'iphone'+iphone);
交换两个数的位置
var x = 10,y = 15;
[x,y] = [y,x];
console.log('x = ' + x + 'y = ' + y );
严格模式
'use strict';
方法 - 在一个对象中绑定函数, 就称为这个对象的方法;
'use strict';
var wujaile = {
name : '小明',
birth : '2000',
age : function () {
var y = new Date().getFullYear();
return y - this.birth;
}
};
console.log(wujaile.age);
console.log(wujaile.age());
var a1 = wujaile.age;
console.log('a1 = ' + a1());
this 关键字
function getAge() {
var y = new Date().getFullYear();
return y - this.birth;
}
var wujale = {
name : '小明',
birth : '2000',
age : getAge
};
console.log(wujale.age());
console.log(getAge());
var sum = wujale.age;
console.log(sum());
var wujiale = {
name : '小明',
birth: 2000,
age: function () {
var that = this; // 在我们的方法里去捕获this
function getAgeFormBirth() {
var y = new Date().getFullYear();
return y - this.birth;
}
return getAgeFormBirth();
}
};
console.log(wujiale.age());