一 JavaScript概述
JavaScript是基于对象和事件驱动的脚本语言,主要应用在客户端。
特点:
1.交互性(它可以做的就是信息的动态交互)
2.安全性(它不允许直接访问本地硬盘)
3.跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关)。
特点:
1.交互性(它可以做的就是信息的动态交互)
2.安全性(它不允许直接访问本地硬盘)
3.跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关)。
变量
1.
var变量的命名与java相同,以
字母,下划线_ ,$美元符号开头.
2.
标识符:用于标识数据和表达式的符号,通常可以理解为在程序中自定义的名称,比如变量名、函数名。
跟Java是一样的,(26个英文字母大小写) + (十个数字) + ($) + (_).
跟Java是一样的,(26个英文字母大小写) + (十个数字) + ($) + (_).
3.javascript是按照行编译运行的,那么变量需要再定义之后才能引用。
4. var 关键字可以省略的,这样的变量为隐式声明变量,采用隐式声明变量都是全局变量,即使在函数内部。
使用 const定义常量 const FOO = 7;
如果再次为常量赋值,这个常量的值也不会改变
FOO =8,这个时候FOO还是7
5. 局部变量,全局变量。
局部变量就是在方法体内有效,对方法体外无效。
Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分)。
切记,是function块,而 for、while、if块并不是作用域的划分标准
例子1如下:变量作用范围
<script>
function test2(){
// i未赋值(并不是未声明!使用未声明的变量或函数全抛出致命错误而中断脚本执行)
alert ("未定义之前:"+i);
// 此时i的值是underfined
for(var i=0;i<3;i++){
alert(i); // i的值是 0、1、2, 当i为3时跳出循环
}
alert("循环后调用:"+i); // i的值是3,注意,此时已经在for 范围以外,但i的值仍然保留为3
while(true){
var j = 1;
break;
}
alert(j); // j的值是1,注意,此时已经在while scope以外,但j的值仍然保留为1
if(true){ var k = 1; }
alert(k); //k的值是1,注意,此时已经在if scope以外,但k的值仍然保留为1
}
例子2如下:Javascript在执行前会对整个脚本文件的声明部分做完整分析(包括局部变量),从而确定实变量的作用域。
<script>
var a =1;
function test(){
alert(a);
/*a为undefined! 这个a并不是全局变量,这是因为在function scope里已经声明了(函数体中定义了 var a;)
一个重名的局部变量,
所以全局变量a被覆盖了,这说明了Javascript在执行前会对整个脚本文件的定义部分做完整分析,
所以在函数test()执行前,
函数体中的变量a就被指向内部的局部变量.而不是指向外部的全局变量. 但这时a只有声明,
还没赋值,所以输出undefined。*/
a=4 ;
alert(a); //a为4,没悬念了吧? 这里的a还是局部变量哦!
var a; //局部变量a在这行声明
alert(a); //a还是为4,这是因为之前已把4赋给a了
}
test();
alert(a); //a为1,这里并不在function scope内,a的值为全局变量的值
</script>