1.变量
Javasctript对变量的定义并不需要声明变量的类型,通过赋值的形式,将各种类型的数据赋值给同一个变量。
a=100;//Number类型
a="honey";//String类型
a={name:jake};//Object类型
a=[1,2,3];//Array类型
2.变量的命名规则!
(1).变量命名必须以字母或是下标符号”_”或者”$”为开头。
(2).变量名长度不能超过255个字符。
(3).变量名中不允许使用空格。
(4).不用使用脚本语言中保留的关键字及保留符号作为变量名。
(5).变量名区分大小写。(javascript是区分大小写的语言)
3.变量的作用域
根据变量的作用范围可以分为 : 全局变量 和 局部变量
先看个小例子:
<script type="text/javascript">
var num = 30;
function fun(){
console.log(num);
a = 50;
}
fun();
console.log(a);
<script>
结果输出 :(你能猜到吗??)
30
50
上述代码中 num 与a 都是全局变量
全局变量:
(1). 在最外层声明的变量。
(2). 在函数体内部,但是没有声明var 的变量也是全局变量
局部变量:
在函数体内部的 声明的变量
(优先级的话 是局部变量的优先级 高于 全局变量的优先级)
再来个小例子:
var a= 10;
function fun(){
a = b =20;
}
fun();
console.log(a);
console.log(b);
输出结果 为 20 20
因为b并没有用var声明,b是全局变量
隐式的全局变量
在函数体内部,但是没有声明var 的变量也是全局变量。
4.变量提升
别急,先看个例子
var num = 20;
fun();
function fun(){
console.log(num);
var num = 50;
}
你猜这个将会 输出什么呢?
答案:undefined
原因: 这就是变量提升
在函数体内部,声明变量,会把该声明提升到函数体的最顶端。 只提升变量声明,不赋值。
函数fun()
function fun(){
console.log(num);
var num = 50;
}
相当于
function fun(){
var num;
console.log(num);
num = 50;
}
来个例子练习一下:
var a = 100;
f1();
function f1(){
var b=8;
console.log(a);
console.log(b);
var a = '129';
}
你猜结果是多少?
undefined
8
明白了吗!(^__^)