js的变量
-
变量提升
1.用var定义的变量会变量提升
2.定义的函数会变量提升
3.在函数体内,直接定义变量 num=100,在全局作用域下也可以访问
变量提升:用var定义变量,变量会提升到顶部,值为undefined console.log(num) var num = 100; var 变量提升 var num; console.log(num) num = 100; console.log(num) num = 100; // var num=100; //③全局变量,在任何位置可以访问 function Demo() { // var num = 100; //①局部变量 num = 100; //②定义的全局变量,在函数外部可以访问 } Demo() console.log(num) 函数也会提升 Demo() //100 function Demo() { num = 100; console.log(num) }
小驼峰:自定义函数
function getBookCount(){
}
function setName(){
//设置
}
function isEnglish(){
//判用is开头
}
function createCar(){
}
function canRead(){
//能不能
}
function hasBook(){
//判断有没有
}
大驼峰
class PeronAddress{
}
new PeronAddress()
构造函数
function Person(){
}
function demo(){
console.log(this);
}
//demo() //普通函数:this指向window
let p=new demo() //构造函数(实例化):this指向实例化对象
改变this指向
* call 立即执行
* apply 立即执行,参数放到一个数组里
* bind 不会立即执行
function demo(uname,age){
// console.log(this);
console.log(uname,age);
}
let obj={}
demo.call(obj,'张三',21) //改变this指向 并立即执行
let f=demo.bind(obj,'张三',21) //改变this指向,不立即执行
f() //执行新的函数
demo.apply(obj,['张三',21]) //改变this指向,并立即执行,参数放到数组里