javascript 变量
可以把变量看做存储数据的容器
- 变量必须以字母开头
- 变量也能以$和_符合开头(不过不推荐这么做)
- 变量名称对大小写敏感(y 和Y 是不同的变量)
全局变量
变量提升
变量提升:所有的全局变量的声明全部
会提升到JS 的前端声明处,
也就是说全局变量全部都是先声明的,
并且早于其他所有代码
- 但是变量的赋值位置不会改变
局部变量
- 局部变量就是在函数内部声明的变量
- 局部变量的作用域是当前函数的内部
- 在外部是无法访问局部变量的
//function f(){
// alert(v);
// var v = "qwe";
// alert(v); //qwe
//}
//f();
//alert(v);
全局变量和全局变量 变量重名问题
- 当局部和全局变量重名
- 局部变量的作用域会覆盖全局变量的作用域
如何在函数内部去访问同名的全局变量
window.
alert(window.)
块级作用域 P3.10.1
- JS中不存在块级作用域
- JS中的作用域是根据函数来划分的
var m = 5;
if(m == 5){
var m =10
}
匿名函数
匿名函数指的是没有函数名的函数
function(){
}
声明一个函数
var f = function(){
alert("我是匿名函数");
}
f();
- 匿名函数除了没有函数名以外,和普通函数没有任何区别
- 如果想在其他地方调用该函数,则应该声明一个变量,并将这个匿名函数赋值给这个变量
- 可以将这个变量名作为函数名来调用
传递参数,方法返回值等,
和普通函数是一样的
var p = function a(s,n){
return s + n;
}
文章没写完,不过正常不会这样写
- 函数表达式可以储存在变量当中,
- 变量也可以作为一个函数来使用
- 将匿名函数作为参数传递给其他函数
function fun1(fun){
if(typeof fun =="function"){
fun();
}
}
fun1(function(){
alert("这是一个匿名函数")
});
- 匿名函数经常用于处理某些一次性的内容
- 没必要单独列出一个函数出来。
- 现在还比较难理解
函数的递归调用
递归是指 在函数的内部调用当前函数
- 自己调用自己
- 使用递归的时候要满足以下条件,
- 否则非常用以出现死循环
- 一定要有结束条件
- 随着递归的进行,应该逐步靠近结束条
function jiecheng(num){
if(num == 1){
return 1;
}
return jiecheng(num - 1)*num;
}
alert("5的阶乘" + jiecheng(5));