隐式定义:直接给变量赋值。
<script type="text/javascript">
a="Hello JavaScript";
alert(a);
</script>
显式定义:使用var关键字定义变量。
<script type="text/javascript">
var a;
a=true;
alert(a);
</script>
允许定义多个变量,也可以在定义变量时为变量指定初始值。
var a,b,c;
var i,j=0,k=0;
类型转换
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<script type="text/javascript" >
var a="3.145";
var b=a+2;
var c=parseFloat(a)+2;
alert(b+"\n"+c);
</script>
</head>
<body>
</body>
</html>
对于减号运算符,因为字符串不支持减法运算,所以系统自动将字符串转换成数值。
对于加号运算符,因为字符串可以用加号作为连接运算符,所以系统自动将数值转换成字符串,并将两个字符串进行连接运算。
在函数里定义的变量称为局部变量,局部变量只在函数内有效。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<script type="text/javascript">
var test="全局变量";
function myFun()
{
age=20;
var isMale=true;
}
myFun();
alert(test+"\n"+age);
alert(isMale);
</script>
</head>
<body>
</body>
</html>
如果全局变量和局部变量使用相同的变量名,则局部变量将覆盖全局变量。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<script type="text/javascript">
var test="全局变量";
function checkScope()
{
var test="局部变量";
alert(test);
}
checkScope();
alert(test);
</script>
</head>
<body>
<div>疯狂HTML 5/css 3/asklmc</div>
</body>
</html>
JavaScript的变量没有块范围:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<script type="text/javascript">
function test(o)
{
var i=0;
if(typeof o=="object")
{
var j=5;
for(var k=0;k<10;k++)
{
document.write(k);
}
}
alert(k+"\n"+j);
}
test(document);
</script>
</head>
<body>
</body>
</html>
如果使用var定义变量,那么程序会强制定义一个新变量。如果前面已经定义了同名的全局变量,此时就是对已有的全局变量赋值。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<script type="text/javascript">
var x="全局变量";
</script>
</head>
<body>
<input type="button" value="局部变量"
onclick="var x='局部变量';alert('输出x局部变量的值:'+x);"/>
<input type="button" value="全局变量"
onclick="var x='局部变量';alert('输出x全局变量的值:'+x);"/>
</body>
</html>
当局部变量和全局变量同名时,局部变量会覆盖全局变量。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<script type="text/javascript">
var scope="全局变量";
function test()
{
document.writeln(scope+"<br >");
var scope="局部变量";
document.writeln(scope+"<br >");
}
test();
</script>
</head>
<body>
</body>
</html>
let变量
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<script type="text/javascript">
var name="yeeku"
function func()
{
console.log(name);
let name='fkit';
console.log(name);
}
func();
</script>
</head>
<body>
</body>
</html>